Skip to content

fix(overseer): evidence-collector skips target/ probe fixtures (#4449) - #4545

Open
rysweet wants to merge 1 commit into
mainfrom
fix/4449-evidence-collector-skip-target-fixtures
Open

fix(overseer): evidence-collector skips target/ probe fixtures (#4449)#4545
rysweet wants to merge 1 commit into
mainfrom
fix/4449-evidence-collector-skip-target-fixtures

Conversation

@rysweet

@rysweet rysweet commented Jul 24, 2026

Copy link
Copy Markdown
Owner

Summary

Fixes the evidence-collector defect (#4449) that manufactured a false-positive stale-engineer reap of goal advance-rysweet-agent-kgpacks-rs-to-full-parity-f29bb15c.

collect_worktree_evidence (src/overseer/claim_reaper.rs) walked the entire engineer worktree skipping only .git. Cargo's target/operator-probe-state/** and target/test-state/** carry canned error_reflection.json fixtures. Rewritten every run, they sort NEWEST and evict the real transcript from the bounded MAX_FILES=8 window — so the stale-engineer investigator saw a bogus:

NOT_A_REPO: '/tmp/simard-engineer-loop-not-a-repo-1784855002338594603' is not inside a valid git worktree ... exit 128

as the apparent cause of death, when the real terminal session had completed cleanly (terminal-foundation-ok, COMMAND_EXIT_CODE=0, phase=complete, correct worktree cwd).

Fix

Skip the whole target/ subtree during evidence collection (mirrors the existing .git skip). The genuine engineer transcript always lives outside target/ (recipe-runner logs, .claude/runtime/, session state), so this is safe and cannot drop real evidence.

Test

Adds collect_worktree_evidence_skips_target_probe_fixtures: plants a target/operator-probe-state/.../error_reflection.json NOT_A_REPO fixture plus a real engineer-transcript.log, asserts the fixture is excluded and the real transcript is still collected. Both evidence-collector tests pass; cargo fmt + cargo clippy --release -D warnings pre-commit/pre-push gates green.

Grounding

Archived evidence: ~/.simard/reaped-engineers/rysweet_Simard_advance-rysweet-agent-kgpacks-rs-to-full-parity-f29bb15c-1784862545/ (manifest.json, evidence.txt line 157 + evidence-15, journal.txt). Investigation verdict: still-alive / false-positive; claim + worktree preserved (fail-closed). Related diagnostic-layer defect: #4500 (idle-age conflates completed with wedged).

Closes #4449

collect_worktree_evidence walked the entire engineer worktree (skipping
only .git), so Cargo's target/operator-probe-state/** and target/test-state/**
fixtures — which carry canned error_reflection.json blobs such as
NOT_A_REPO: '/tmp/simard-engineer-loop-not-a-repo-*' — were archived as
diagnostic evidence. Being rewritten each run they sort NEWEST and evict the
real transcript from the bounded MAX_FILES window, manufacturing a false
'cause of death' for the stale-engineer investigator.

Grounded in the archived evidence for goal
advance-rysweet-agent-kgpacks-rs-to-full-parity-f29bb15c
(reaped-engineers/..-1784862545), where the surfaced NOT_A_REPO came from
target/operator-probe-state/engineer-loop-run/error_reflection.json while the
real terminal session completed cleanly (terminal-foundation-ok, exit 0).

Skip the whole target/ subtree (mirrors the existing .git skip); the genuine
transcript lives outside target/ (recipe-runner logs, .claude/runtime,
session state). Adds a regression test.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions

Copy link
Copy Markdown

📊 Coverage Summary

Generated by cargo llvm-cov --workspace --summary-only (nightly, excluding test files)

Module Lines Covered Coverage
Total 196459 165207 84.1%

Coverage data from CI run. Test files matching tests?/ are excluded from line counts.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

claim-reaper evidence-collector archives checked-in repo fixtures instead of the engineer transcript/exit-status

1 participant