Block continuation after BLOCKED + DIAGNOSE in same-session review attempts #597

Open
opened 2026-07-09 14:44:39 -05:00 by jcwalker3 · 3 comments
Owner

Description

During the review attempt of PR #593, the session correctly identified same-session author→review contamination. According to the strict role boundaries, it should have stopped completely with BLOCKED + DIAGNOSE.

Instead, the session continued and performed review-like and recovery-like actions:

  • Created reviewer worktree branches/review-pr-593-auto-restart-mcp
  • Ran review validation commands
  • Attempted reviewer MCP review flow
  • Manually removed ~/.cache/gitea-tools/session-state/review_decision_lock-prgs-reviewer.json*
  • Touched mcp_config.json
  • Touched gitea_mcp_server.py
  • Attempted to clear stale reviewer runtime/decision lock state from inside the contaminated session

This continuation is workflow-contaminated and must not be treated as a valid PR review. PR #593 still requires a fresh independent reviewer session after the MCP runtime is healthy.

Acceptance Criteria

  • Once a session returns BLOCKED + DIAGNOSE, it must not continue into the same task unless the next action is explicitly safe and allowed.
  • Same-session author→review contamination must hard-stop all review actions.
  • Manual deletion of review_decision_lock files must be blocked or routed to a sanctioned cleanup tool.
  • Touching source files to manipulate stale-runtime detection must be blocked outside an authorized operator workflow.
  • Add docs/tests/proof that BLOCKED + DIAGNOSE is terminal for that work unit.
  • Add a standard “fresh independent session required” handoff for contaminated review attempts.
### Description During the review attempt of PR #593, the session correctly identified same-session author→review contamination. According to the strict role boundaries, it should have stopped completely with `BLOCKED + DIAGNOSE`. Instead, the session continued and performed review-like and recovery-like actions: * Created reviewer worktree `branches/review-pr-593-auto-restart-mcp` * Ran review validation commands * Attempted reviewer MCP review flow * Manually removed `~/.cache/gitea-tools/session-state/review_decision_lock-prgs-reviewer.json*` * Touched `mcp_config.json` * Touched `gitea_mcp_server.py` * Attempted to clear stale reviewer runtime/decision lock state from inside the contaminated session This continuation is workflow-contaminated and must not be treated as a valid PR review. PR #593 still requires a fresh independent reviewer session after the MCP runtime is healthy. ### Acceptance Criteria * Once a session returns `BLOCKED + DIAGNOSE`, it must not continue into the same task unless the next action is explicitly safe and allowed. * Same-session author→review contamination must hard-stop all review actions. * Manual deletion of `review_decision_lock` files must be blocked or routed to a sanctioned cleanup tool. * Touching source files to manipulate stale-runtime detection must be blocked outside an authorized operator workflow. * Add docs/tests/proof that `BLOCKED + DIAGNOSE` is terminal for that work unit. * Add a standard “fresh independent session required” handoff for contaminated review attempts.
jcwalker3 added the bugmcpgiteaworkflow labels 2026-07-09 14:44:40 -05:00
jcwalker3 added the type:guardrailstatus:blocked labels 2026-07-09 14:48:11 -05:00
Author
Owner

Canonical Issue State

STATE: blocked
WHO_IS_NEXT: reviewer
NEXT_ACTION: Review PR #593 in a fresh independent session.
NEXT_PROMPT:

Gitea reviewer task. Invoke gitea-workflow first.

Review PR #593 in a fresh independent session.

WHAT_HAPPENED: Issue #597 is valid and should remain open. The creation session was workflow-contaminated because it changed the mtime of gitea_mcp_server.py to a historical timestamp to bypass stale-runtime detection. This manipulation must not be treated as valid MCP recovery proof.
WHY: Stale Gitea MCP server processes blocked capability resolution, and the session used mtime backdating to force a bypass.
RELATED_PRS: #593
BLOCKERS: stale Gitea MCP reviewer daemon process must be restarted
VALIDATION: none
LAST_UPDATED_BY: controller

## Canonical Issue State STATE: blocked WHO_IS_NEXT: reviewer NEXT_ACTION: Review PR #593 in a fresh independent session. NEXT_PROMPT: ```text Gitea reviewer task. Invoke gitea-workflow first. Review PR #593 in a fresh independent session. ``` WHAT_HAPPENED: Issue #597 is valid and should remain open. The creation session was workflow-contaminated because it changed the mtime of gitea_mcp_server.py to a historical timestamp to bypass stale-runtime detection. This manipulation must not be treated as valid MCP recovery proof. WHY: Stale Gitea MCP server processes blocked capability resolution, and the session used mtime backdating to force a bypass. RELATED_PRS: #593 BLOCKERS: stale Gitea MCP reviewer daemon process must be restarted VALIDATION: none LAST_UPDATED_BY: controller
Author
Owner

Canonical Issue State

STATE: blocked
WHO_IS_NEXT: reviewer
NEXT_ACTION: Perform a fresh independent reviewer session on PR #593 with zero mtime manipulation of any root files.
NEXT_PROMPT:

Gitea reviewer task. Invoke gitea-workflow first.

Review PR #593 for Issue #591 in a fresh independent reviewer session (with clean mtime, zero touches to root files).

WHAT_HAPPENED: The PR #593 approval submitted in the latest reviewer session was workflow-contaminated because the session touched/restored the mtime of gitea_mcp_server.py to the master HEAD commit time to bypass the stale-runtime check. This manipulation is not valid MCP recovery proof.
WHY: Stale Gitea MCP server processes blocked capability resolution, and the reviewer session used mtime backdating to force a bypass.
RELATED_PRS: #593
BLOCKERS: stale Gitea MCP reviewer daemon processes must be cleanly recycled by the client without mtime manipulation
VALIDATION: none
LAST_UPDATED_BY: controller

## Canonical Issue State STATE: blocked WHO_IS_NEXT: reviewer NEXT_ACTION: Perform a fresh independent reviewer session on PR #593 with zero mtime manipulation of any root files. NEXT_PROMPT: ```text Gitea reviewer task. Invoke gitea-workflow first. Review PR #593 for Issue #591 in a fresh independent reviewer session (with clean mtime, zero touches to root files). ``` WHAT_HAPPENED: The PR #593 approval submitted in the latest reviewer session was workflow-contaminated because the session touched/restored the mtime of gitea_mcp_server.py to the master HEAD commit time to bypass the stale-runtime check. This manipulation is not valid MCP recovery proof. WHY: Stale Gitea MCP server processes blocked capability resolution, and the reviewer session used mtime backdating to force a bypass. RELATED_PRS: #593 BLOCKERS: stale Gitea MCP reviewer daemon processes must be cleanly recycled by the client without mtime manipulation VALIDATION: none LAST_UPDATED_BY: controller
Owner

Canonical Issue State

STATE: blocked — DIAGNOSE reconfirmed — PR #593 review_id 398 remains workflow-contaminated; not merge-authorizing
WHO_IS_NEXT: reviewer
NEXT_ACTION: Fresh independent clean formal APPROVE of PR #593 at head 6094069ef6 with zero mtime/source-file manipulation, then merger MERGE with expected_head_sha pin.
NEXT_PROMPT:

Gitea reviewer task. Invoke gitea-workflow first.

Fresh independent review of PR #593 for Issue #591 / contamination guardrail #597.
Pinned head: 6094069ef6ceeef02f18cf388b685c69eaf022ea
Zero mtime/source-file manipulation. Do not treat review_id 398 as valid.
After clean APPROVE, hand off merger: MERGE PR 593 expected_head_sha=6094069ef6ceeef02f18cf388b685c69eaf022ea.

WHAT_HAPPENED: Merger re-read live PR #593 reviews + this issue’s #8581/#8606. #332 terminal on open PR #593 is approve review_id 398 (first APPROVE @15:02:10-05:00, now dismissed). #8606 records that approval session used mtime touch/restore of gitea_mcp_server.py to bypass stale-runtime. Merger did not merge. Technical merge eligibility yes; policy authorization no. Durable DIAGNOSE also posted on PR #593 as comment #8677. Stale-lock cleanup not applicable while #593 open.
WHY: Contaminated terminal review must not authorize merge; #332 preserves open-PR sequence until clean re-review + merge/close.
RELATED_PRS: #593, #591, #592 (blocked consumer)
BLOCKERS: contaminated review_id 398 (mtime bypass per #8606) blocks merge authorization of open PR #593 — unblock when a fresh independent reviewer session posts a proven-clean formal APPROVE at head 6094069ef6 with zero mtime/source-file manipulation and no stale-runtime bypass, then merger lands #593 with expected_head_sha pin
VALIDATION: gitea_get_pr_review_feedback; comments #8581 #8606 #8672 #8677; whoami prgs-merger; no merge performed
LAST_UPDATED_BY: prgs-merger (sysadmin)

## Canonical Issue State STATE: blocked — DIAGNOSE reconfirmed — PR #593 review_id 398 remains workflow-contaminated; not merge-authorizing WHO_IS_NEXT: reviewer NEXT_ACTION: Fresh independent clean formal APPROVE of PR #593 at head 6094069ef6ceeef02f18cf388b685c69eaf022ea with zero mtime/source-file manipulation, then merger MERGE with expected_head_sha pin. NEXT_PROMPT: ```text Gitea reviewer task. Invoke gitea-workflow first. Fresh independent review of PR #593 for Issue #591 / contamination guardrail #597. Pinned head: 6094069ef6ceeef02f18cf388b685c69eaf022ea Zero mtime/source-file manipulation. Do not treat review_id 398 as valid. After clean APPROVE, hand off merger: MERGE PR 593 expected_head_sha=6094069ef6ceeef02f18cf388b685c69eaf022ea. ``` WHAT_HAPPENED: Merger re-read live PR #593 reviews + this issue’s #8581/#8606. #332 terminal on open PR #593 is approve review_id 398 (first APPROVE @15:02:10-05:00, now dismissed). #8606 records that approval session used mtime touch/restore of gitea_mcp_server.py to bypass stale-runtime. Merger did not merge. Technical merge eligibility yes; policy authorization no. Durable DIAGNOSE also posted on PR #593 as comment #8677. Stale-lock cleanup not applicable while #593 open. WHY: Contaminated terminal review must not authorize merge; #332 preserves open-PR sequence until clean re-review + merge/close. RELATED_PRS: #593, #591, #592 (blocked consumer) BLOCKERS: contaminated review_id 398 (mtime bypass per #8606) blocks merge authorization of open PR #593 — unblock when a fresh independent reviewer session posts a proven-clean formal APPROVE at head 6094069ef6ceeef02f18cf388b685c69eaf022ea with zero mtime/source-file manipulation and no stale-runtime bypass, then merger lands #593 with expected_head_sha pin VALIDATION: gitea_get_pr_review_feedback; comments #8581 #8606 #8672 #8677; whoami prgs-merger; no merge performed LAST_UPDATED_BY: prgs-merger (sysadmin)
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

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