Skip to content

Prove reader-fence process death and collector exclusion in external harness #113

Description

@flyingrobots

Problem and outcome

The 2026-09-30 audit of completed ROADMAP entries identified this obligation. Roadmap: T-19.1. Source: docs/audits/completed-roadmap-2026-09-30.md and the original task fields in ROADMAP.md on feature/roadmap-m4-tasks. Those original criteria remain authoritative.

Permanently prove kernel fence release after reader death and exclusion of new readers during collection.

Scope

Add subprocess cases to xtask or a dedicated external integration harness, outside src; use readiness channels to establish order and a killed process holding the real reader fence.

Acceptance checks

  • A live reader blocks exclusive collection.
  • reader death releases the lock without deleting or replacing reader.lock.
  • exclusive collection blocks a new reader until release.
  • no sleeps establish ordering.
  • no src module spawns processes.
  • removing shared-lock acquisition makes a law fail.

Prerequisites and relationship to existing work

PR #99 contains the reader-fence implementation. Integration is necessary for the literal roadmap definition of done.

These are evidence-backed prerequisite proposals, not a claim that GitHub already records dependency edges. Parent grouping and shared files do not themselves imply ordering.

Exclusions

No relaxation of the existing no-process-spawning source contract; no concurrent-writer design.

Merge boundary and definition of done

One coherent PR delivers this observable outcome and leaves the target branch building and passing relevant checks. Preserve exact-byte identity, canonical formats, refusal precision, bounded resource use, and documented recovery. No broken intermediate mainline state is acceptable. Use the pinned Rust toolchain; run fmt, Clippy with warnings denied, and appropriate debug/release failure-mode checks. Cite concrete evidence, update the roadmap/ledger only when the original criteria are met, and retain issue → PR → integration-commit traceability. Do not treat an unmerged local change as delivered.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions