[P1] Stabilize transient dirty-checkout verification #893

Open
opened 2026-07-24 21:37:06 -05:00 by jcwalker3 · 0 comments
Owner

Parent epic: #887
Priority: P1

Problem

One temporary M gitea_mcp_server.py observation permanently blocked a run even though the immediate diff was empty when re-read. The check samples once and latches. Related known defect: runtime_context scans unstaged changes only, so a staged-dirty checkout reads clean — the two failure directions must be fixed together or the fix trades one for the other.

Acceptance criteria

  • A transient dirty observation triggers bounded revalidation rather than an immediate permanent block.
  • Revalidation confirms HEAD, index state, worktree diff, and file metadata — not just the unstaged diff.
  • The run proceeds only after a stable clean sample window.
  • Persistent or reproducible modifications block immediately, with no revalidation grace.
  • Evidence supporting either outcome is recorded and attached to the run.
  • Protection for genuinely dirty control checkouts is not weakened; a regression proves a real dirty checkout still blocks.

Duplicate verdict

NOT a duplicate. #697 covers preflight ignoring untracked files (the opposite direction — under-detection). #867 covers detecting out-of-band mutations. Neither addresses a single transient observation latching a run into a permanent blocked state.

Parent epic: #887 Priority: P1 ## Problem One temporary `M gitea_mcp_server.py` observation permanently blocked a run even though the immediate diff was empty when re-read. The check samples once and latches. Related known defect: `runtime_context` scans unstaged changes only, so a staged-dirty checkout reads clean — the two failure directions must be fixed together or the fix trades one for the other. ## Acceptance criteria - A transient dirty observation triggers bounded revalidation rather than an immediate permanent block. - Revalidation confirms HEAD, index state, worktree diff, and file metadata — not just the unstaged diff. - The run proceeds only after a stable clean sample window. - Persistent or reproducible modifications block immediately, with no revalidation grace. - Evidence supporting either outcome is recorded and attached to the run. - Protection for genuinely dirty control checkouts is not weakened; a regression proves a real dirty checkout still blocks. ## Duplicate verdict NOT a duplicate. #697 covers preflight *ignoring untracked files* (the opposite direction — under-detection). #867 covers detecting out-of-band mutations. Neither addresses a single transient observation latching a run into a permanent blocked state.
jcwalker3 added the status:readyworkflow-hardeningtype:bugcontamination labels 2026-07-24 21:37:07 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Scaled-Tech-Consulting/Gitea-Tools#893