{
  "changes": [
    "broker.rs: reap_zombie_root now returns explicit Absent/Killed/Recycled outcomes. Different recorded/observed births skip signalling and enter existing bounded de-table/stamp-clear cleanup; missing/Unproven identity still refuses. Recycled breadcrumb includes endpoint, session, PID, recorded_birth, and observed_birth.",
    "Replaced wrong refusal regression with zombie_reap_recycled_pid_detables_clears_stamps_and_allows_next_spawn. Real PTY fixture alters only recorded birth, exercises actual AlreadyLive forced de-table, checks stale stamps cleared before deliberately failed PTY creation, then successfully spawns replacement and checks original live identity survives both transitions. Existing identity-boundary table also asserts mismatch never calls kill.",
    "Updated directly contradictory ADR-0041, KNOWN-HAZARDS, and REQ-BROKER-ZOMBIE-IDENTITY prose. Historical PID-KILL-CENSUS explicitly describes main ff4b405d, so intentionally unchanged."
  ],
  "files": [
    ".worktrees/285-zombie/crates/spt-daemon/src/broker.rs",
    ".worktrees/285-zombie/docs/adr/0041-endpoint-lifecycle-truth.md",
    ".worktrees/285-zombie/docs/KNOWN-HAZARDS.md",
    ".worktrees/285-zombie/traceable-reqs.toml"
  ],
  "verification": "No tests/builds/formatters/linters/commits run, as assigned. Main must execute validation.",
  "commands_from_worktree": [
    "cargo test -p spt-daemon --lib broker::tests::zombie_reap_recycled_pid_detables_clears_stamps_and_allows_next_spawn -- --exact --nocapture",
    "cargo test -p spt-daemon --lib zombie_reap_ -- --nocapture"
  ],
  "limitations": [
    "Convergence regression is Windows/Linux-only because other Unix platforms have no birth oracle. It models recycled identity by changing saved birth, not forcing actual OS PID recycling; uses existing real PTY/socket/home fixtures and the real five-second cleanup deadline.",
    "[INFERENCE] On 9d1dcf90 the standalone replacement regression fails at stale-row removal: mismatch returns before cleanup. Red/green execution remains Main-owned.",
    "Linux-only existing zombie_reap_collects_an_exited_child_without_signalling remains intact, preserving non-signalling waitpid coverage."
  ]
}