fix: accept canonical reviewer lease preflight order (Closes #763) #764

Merged
sysadmin merged 1 commits from fix/issue-763-reviewer-lease-preflight-order into master 2026-07-19 17:53:00 -05:00
Owner

Summary

  • Accept the documented review_pr capability as the single directed predecessor for gitea_acquire_reviewer_pr_lease.
  • Keep missing, denied, stale, wrong-task, wrong-profile, dirty-workspace, workflow-proof, lease-exclusivity, and head-pinning gates fail closed.
  • Add focused regression coverage for the PR #762 reproduction and reviewer/merger separation.

Closes #763

Files changed

  • gitea_mcp_server.py
  • task_capability_map.py
  • tests/test_issue_763_reviewer_lease_preflight_order.py

Validation

  • Reproduction before fix: 2 failed, 2 passed; both failures were review_pr -> acquire_reviewer_pr_lease task mismatch.
  • Focused regression: python3 -m pytest tests/test_issue_763_reviewer_lease_preflight_order.py tests/test_preflight_read_survival.py tests/test_resolve_task_capability.py tests/test_review_workflow_load.py tests/test_merger_lease_acquire.py tests/test_reviewer_pr_lease.py tests/test_anti_stomp_preflight.py -q — 127 passed, 16 subtests passed.
  • Full suite: python3 -m pytest -q --tb=line — 3684 passed, 6 skipped, 431 subtests, 2 failures.
  • Authorized-base comparison at 8a851eb87e63fc236d8897ed67f67cbe295bc3ae, using the identical full-suite command — 3672 passed, 6 skipped, 431 subtests, the identical 2 out-of-scope failure signatures (test_removed_worktree_recovers_before_probe, test_tool_posts_comment_and_closes_superseded_pr_issue). The 12-pass delta is the new #763 regression file.
  • git diff --check — passed.

Risk

Low and fail-closed: the compatibility edge is one-way and reviewer-specific. It does not authorize review submission, merger lease acquisition, approval, request-changes, or merge. Denied identity/profile results are explicitly non-consumable, and reviewer lease acquisition now participates in workflow-load proof checks.

Worktree and head

  • Worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/fix-issue-763-reviewer-lease-preflight-order
  • Branch: fix/issue-763-reviewer-lease-preflight-order
  • Commit: 6b568d8805fe62e343e3edb2689c42030931b6f5
  • Base: master at 8a851eb87e63fc236d8897ed67f67cbe295bc3ae

Known limitations

PR #762 remains unreviewed and blocked. It must wait for this fix to land, master to advance, MCP daemons to restart, and a fresh independent prgs-reviewer session to rerun the canonical reviewer workflow.

## Summary - Accept the documented `review_pr` capability as the single directed predecessor for `gitea_acquire_reviewer_pr_lease`. - Keep missing, denied, stale, wrong-task, wrong-profile, dirty-workspace, workflow-proof, lease-exclusivity, and head-pinning gates fail closed. - Add focused regression coverage for the PR #762 reproduction and reviewer/merger separation. Closes #763 ## Files changed - `gitea_mcp_server.py` - `task_capability_map.py` - `tests/test_issue_763_reviewer_lease_preflight_order.py` ## Validation - Reproduction before fix: 2 failed, 2 passed; both failures were `review_pr` -> `acquire_reviewer_pr_lease` task mismatch. - Focused regression: `python3 -m pytest tests/test_issue_763_reviewer_lease_preflight_order.py tests/test_preflight_read_survival.py tests/test_resolve_task_capability.py tests/test_review_workflow_load.py tests/test_merger_lease_acquire.py tests/test_reviewer_pr_lease.py tests/test_anti_stomp_preflight.py -q` — 127 passed, 16 subtests passed. - Full suite: `python3 -m pytest -q --tb=line` — 3684 passed, 6 skipped, 431 subtests, 2 failures. - Authorized-base comparison at `8a851eb87e63fc236d8897ed67f67cbe295bc3ae`, using the identical full-suite command — 3672 passed, 6 skipped, 431 subtests, the identical 2 out-of-scope failure signatures (`test_removed_worktree_recovers_before_probe`, `test_tool_posts_comment_and_closes_superseded_pr_issue`). The 12-pass delta is the new #763 regression file. - `git diff --check` — passed. ## Risk Low and fail-closed: the compatibility edge is one-way and reviewer-specific. It does not authorize review submission, merger lease acquisition, approval, request-changes, or merge. Denied identity/profile results are explicitly non-consumable, and reviewer lease acquisition now participates in workflow-load proof checks. ## Worktree and head - Worktree: `/Users/jasonwalker/Development/Gitea-Tools/branches/fix-issue-763-reviewer-lease-preflight-order` - Branch: `fix/issue-763-reviewer-lease-preflight-order` - Commit: `6b568d8805fe62e343e3edb2689c42030931b6f5` - Base: `master` at `8a851eb87e63fc236d8897ed67f67cbe295bc3ae` ## Known limitations PR #762 remains unreviewed and blocked. It must wait for this fix to land, master to advance, MCP daemons to restart, and a fresh independent `prgs-reviewer` session to rerun the canonical reviewer workflow.
jcwalker3 added 1 commit 2026-07-19 17:28:43 -05:00
Author
Owner

[CONTROLLER HANDOFF] PR #764 / Issue #763 — CTH Author Handoff

CTH: Author Handoff

Status: implementation_complete_pending_independent_review
Next owner: reviewer
Current blocker: none
Decision: Publish the narrow #763 fix at commit 6b568d8805 and end the author phase.
Proof: PR #764 points to the pushed commit; focused tests passed; the two full-suite failures reproduce unchanged at authorized base 8a851eb87e.
Next action: A fresh independent prgs-reviewer session reviews PR #764 at the pinned head.
Prompt for next session: Review PR #764 for issue #763 as an independent prgs-reviewer; pin head 6b568d8805 before any mutation and do not review PR #762.

Purpose:
This comment is the operational author handoff for the next independent reviewer session.

Identity/profile:

  • Active profile: prgs-author
  • Authenticated identity: jcwalker3
  • Role: author
  • Self-review / role-conflict proof: no author review or merger action was performed on PR #764 or PR #762.

Target:

Work performed:

  • Added the one-way review_pr to acquire_reviewer_pr_lease preflight transition.
  • Preserved identity, profile, workflow-load, workspace, lease, and head-pin gates.
  • Added twelve regression tests for success and fail-closed paths.
  • PR #762 remains unreviewed and must wait until the #763 fix lands, master advances, and MCP daemons restart.

Files touched or reviewed:

  • task_capability_map.py — narrow directed transition mapping.
  • gitea_mcp_server.py — alias-aware preflight purity and fail-closed capability state.
  • tests/test_issue_763_reviewer_lease_preflight_order.py — regression coverage.

Validation:

  • New regression file: 12 passed.
  • Focused safety set: 127 passed, 16 subtests.
  • Full task tree: 3684 passed, 6 skipped, 431 subtests, with 2 failures.
  • Authorized-base comparison: 3672 passed, 6 skipped, 431 subtests, with the same 2 failures.
  • git diff --check: passed.

Server-side mutation ledger:

  • Existing issue #763 durable lock acquired once for the authorized branch and worktree.
  • Commit 6b568d8805 pushed to prgs.
  • Exactly one fix PR exists: PR #764.
  • The single native PR #762 cross-reference attempt was denied before posting; no server-side state changed on PR #762.
  • No review or merge mutation was performed.

Local-only changes:

  • Source and regression-test changes are committed in the authorized worktree.
  • A clean detached authorized-base comparison worktree remains because cleanup was prohibited.

Blockers:

  • None for publication. Independent review remains required.

Controller prompt for next session:

Use a fresh prgs-reviewer session to review PR #764 for issue #763 at pinned head 6b568d8805fe62e343e3edb2689c42030931b6f5. Preserve reviewer/merger separation. Do not review PR #762; it must wait until PR #764 lands, master advances, and MCP daemons restart.

Canonical Issue State

STATE: implementation_complete_pending_independent_review
WHO_IS_NEXT: reviewer
NEXT_ACTION: Start a fresh prgs-reviewer session and review PR #764 at the pinned head while leaving PR #762 untouched.
NEXT_PROMPT: Use prgs-reviewer to review PR #764 for issue #763 at head 6b568d8805fe62e343e3edb2689c42030931b6f5; do not review PR #762.
WHAT_HAPPENED: The author implemented, tested, committed, pushed, and opened PR #764 for issue #763.
WHY: The documented reviewer preflight capability and reviewer-lease acquisition names were compared as unequal raw task strings.
RELATED_PRS: PR #764 is the fix; PR #762 remains unreviewed pending this fix, master advancement, and MCP daemon restart.
BLOCKERS: none
VALIDATION: 12 regression tests and 127 focused tests passed; the same two full-suite failures reproduced at the authorized base.
LAST_UPDATED_BY: jcwalker3 using prgs-author

[CONTROLLER HANDOFF] PR #764 / Issue #763 — CTH Author Handoff ## CTH: Author Handoff Status: implementation_complete_pending_independent_review Next owner: reviewer Current blocker: none Decision: Publish the narrow #763 fix at commit 6b568d8805fe62e343e3edb2689c42030931b6f5 and end the author phase. Proof: PR #764 points to the pushed commit; focused tests passed; the two full-suite failures reproduce unchanged at authorized base 8a851eb87e63fc236d8897ed67f67cbe295bc3ae. Next action: A fresh independent prgs-reviewer session reviews PR #764 at the pinned head. Prompt for next session: Review PR #764 for issue #763 as an independent prgs-reviewer; pin head 6b568d8805fe62e343e3edb2689c42030931b6f5 before any mutation and do not review PR #762. Purpose: This comment is the operational author handoff for the next independent reviewer session. Identity/profile: - Active profile: prgs-author - Authenticated identity: jcwalker3 - Role: author - Self-review / role-conflict proof: no author review or merger action was performed on PR #764 or PR #762. Target: - Repo: Scaled-Tech-Consulting/Gitea-Tools - Issue: #763 - PR: #764 - Branch: fix/issue-763-reviewer-lease-preflight-order - Pinned head SHA: 6b568d8805fe62e343e3edb2689c42030931b6f5 - Worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/fix-issue-763-reviewer-lease-preflight-order Work performed: - Added the one-way review_pr to acquire_reviewer_pr_lease preflight transition. - Preserved identity, profile, workflow-load, workspace, lease, and head-pin gates. - Added twelve regression tests for success and fail-closed paths. - PR #762 remains unreviewed and must wait until the #763 fix lands, master advances, and MCP daemons restart. Files touched or reviewed: - task_capability_map.py — narrow directed transition mapping. - gitea_mcp_server.py — alias-aware preflight purity and fail-closed capability state. - tests/test_issue_763_reviewer_lease_preflight_order.py — regression coverage. Validation: - New regression file: 12 passed. - Focused safety set: 127 passed, 16 subtests. - Full task tree: 3684 passed, 6 skipped, 431 subtests, with 2 failures. - Authorized-base comparison: 3672 passed, 6 skipped, 431 subtests, with the same 2 failures. - git diff --check: passed. Server-side mutation ledger: - Existing issue #763 durable lock acquired once for the authorized branch and worktree. - Commit 6b568d8805fe62e343e3edb2689c42030931b6f5 pushed to prgs. - Exactly one fix PR exists: PR #764. - The single native PR #762 cross-reference attempt was denied before posting; no server-side state changed on PR #762. - No review or merge mutation was performed. Local-only changes: - Source and regression-test changes are committed in the authorized worktree. - A clean detached authorized-base comparison worktree remains because cleanup was prohibited. Blockers: - None for publication. Independent review remains required. Controller prompt for next session: ```text Use a fresh prgs-reviewer session to review PR #764 for issue #763 at pinned head 6b568d8805fe62e343e3edb2689c42030931b6f5. Preserve reviewer/merger separation. Do not review PR #762; it must wait until PR #764 lands, master advances, and MCP daemons restart. ``` ## Canonical Issue State STATE: implementation_complete_pending_independent_review WHO_IS_NEXT: reviewer NEXT_ACTION: Start a fresh prgs-reviewer session and review PR #764 at the pinned head while leaving PR #762 untouched. NEXT_PROMPT: Use prgs-reviewer to review PR #764 for issue #763 at head 6b568d8805fe62e343e3edb2689c42030931b6f5; do not review PR #762. WHAT_HAPPENED: The author implemented, tested, committed, pushed, and opened PR #764 for issue #763. WHY: The documented reviewer preflight capability and reviewer-lease acquisition names were compared as unequal raw task strings. RELATED_PRS: PR #764 is the fix; PR #762 remains unreviewed pending this fix, master advancement, and MCP daemon restart. BLOCKERS: none VALIDATION: 12 regression tests and 127 focused tests passed; the same two full-suite failures reproduced at the authorized base. LAST_UPDATED_BY: jcwalker3 using prgs-author
Author
Owner

[THREAD STATE LEDGER] PR #764 / Issue #763 — implementation complete; independent review is next

What is true now:

  • PR state: PR #764 is open at the pinned head.
  • Issue state: issue #763 is status:pr-open.
  • Current head SHA: 6b568d8805
  • Server-side decision state: no Gitea review decision exists on PR #764; merge not performed.
  • Local verdict/state: author implementation and tests are complete; no review verdict was prepared locally.
  • Latest known validation: 12 regression tests and 127 focused tests passed; the same two full-suite failures reproduce at authorized base 8a851eb87e.

What changed:

  • PR #764 now carries the narrow #763 fix at the pinned head.
  • The PR #762 cross-reference comment was denied before posting, so no server-side state changed there.

What is blocked:

  • Blocker classification: no blocker
  • PR #762 must wait until PR #764 lands, master advances, and MCP daemons restart.

Who/what acts next:

  • Next actor: independent reviewer using prgs-reviewer.
  • Required action: review PR #764 at the pinned head and record a native verdict through the reviewer workflow.
  • Do not do: do not use prgs-author for review or merge; do not review PR #762; do not mutate issue #605.
  • Resume from: PR #764 head 6b568d8805.

Canonical Issue State

STATE: implementation_complete_pending_independent_review
WHO_IS_NEXT: reviewer
NEXT_ACTION: Start a fresh prgs-reviewer session and review PR #764 at the pinned head while leaving PR #762 untouched.
NEXT_PROMPT: Use prgs-reviewer to review PR #764 for issue #763 at head 6b568d8805fe62e343e3edb2689c42030931b6f5; do not review PR #762.
WHAT_HAPPENED: PR #764 contains the authored #763 fix and its regression tests.
WHY: Independent review is the required next lifecycle phase after author publication.
RELATED_PRS: PR #764 is the fix; PR #762 remains unreviewed pending this fix, master advancement, and MCP daemon restart.
BLOCKERS: none
VALIDATION: 12 regression tests and 127 focused tests passed; the same two full-suite failures reproduced at the authorized base.
LAST_UPDATED_BY: jcwalker3 using prgs-author

[THREAD STATE LEDGER] PR #764 / Issue #763 — implementation complete; independent review is next What is true now: - PR state: PR #764 is open at the pinned head. - Issue state: issue #763 is status:pr-open. - Current head SHA: 6b568d8805fe62e343e3edb2689c42030931b6f5 - Server-side decision state: no Gitea review decision exists on PR #764; merge not performed. - Local verdict/state: author implementation and tests are complete; no review verdict was prepared locally. - Latest known validation: 12 regression tests and 127 focused tests passed; the same two full-suite failures reproduce at authorized base 8a851eb87e63fc236d8897ed67f67cbe295bc3ae. What changed: - PR #764 now carries the narrow #763 fix at the pinned head. - The PR #762 cross-reference comment was denied before posting, so no server-side state changed there. What is blocked: - Blocker classification: no blocker - PR #762 must wait until PR #764 lands, master advances, and MCP daemons restart. Who/what acts next: - Next actor: independent reviewer using prgs-reviewer. - Required action: review PR #764 at the pinned head and record a native verdict through the reviewer workflow. - Do not do: do not use prgs-author for review or merge; do not review PR #762; do not mutate issue #605. - Resume from: PR #764 head 6b568d8805fe62e343e3edb2689c42030931b6f5. ## Canonical Issue State STATE: implementation_complete_pending_independent_review WHO_IS_NEXT: reviewer NEXT_ACTION: Start a fresh prgs-reviewer session and review PR #764 at the pinned head while leaving PR #762 untouched. NEXT_PROMPT: Use prgs-reviewer to review PR #764 for issue #763 at head 6b568d8805fe62e343e3edb2689c42030931b6f5; do not review PR #762. WHAT_HAPPENED: PR #764 contains the authored #763 fix and its regression tests. WHY: Independent review is the required next lifecycle phase after author publication. RELATED_PRS: PR #764 is the fix; PR #762 remains unreviewed pending this fix, master advancement, and MCP daemon restart. BLOCKERS: none VALIDATION: 12 regression tests and 127 focused tests passed; the same two full-suite failures reproduced at the authorized base. LAST_UPDATED_BY: jcwalker3 using prgs-author
Owner

repo: Scaled-Tech-Consulting/Gitea-Tools
pr: #764
issue: #763
reviewer_identity: sysadmin
profile: prgs-reviewer
session_id: 90676-b26ce3073627
worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-pr-764-bootstrap-lease
phase: claimed
candidate_head: 6b568d8805
target_branch: master
target_branch_sha: 8a851eb87e
last_activity: 2026-07-19T22:39:57Z
expires_at: 2026-07-19T22:49:57Z
blocker: none

<!-- mcp-review-lease:v1 --> repo: Scaled-Tech-Consulting/Gitea-Tools pr: #764 issue: #763 reviewer_identity: sysadmin profile: prgs-reviewer session_id: 90676-b26ce3073627 worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-pr-764-bootstrap-lease phase: claimed candidate_head: 6b568d8805fe62e343e3edb2689c42030931b6f5 target_branch: master target_branch_sha: 8a851eb87e63fc236d8897ed67f67cbe295bc3ae last_activity: 2026-07-19T22:39:57Z expires_at: 2026-07-19T22:49:57Z blocker: none
sysadmin approved these changes 2026-07-19 17:43:47 -05:00
sysadmin left a comment
Owner

Independent Review — PR #764 / Issue #763

Reviewed head SHA: 6b568d8805fe62e343e3edb2689c42030931b6f5
Reviewer: sysadmin / prgs-reviewer (identity_match=true)
Author: jcwalker3 (distinct; author-safety passed)
Base: master @ 8a851eb87e63fc236d8897ed67f67cbe295bc3ae

Root-cause assessment

The live pre-fix master compares the resolved preflight task string against the mutation task with raw equality. The documented workflow resolves review_pr then acquires the reviewer lease (acquire_reviewer_pr_lease), so the strings differ and purity fails closed incorrectly. That matches the #762 bootstrap deadlock diagnosis.

Safety-gate assessment

  • One-way mapping: _PREFLIGHT_TASK_TRANSITIONS is exactly {("review_pr", "acquire_reviewer_pr_lease")} — directed, narrow, reviewer-specific.
  • Alias-aware purity: preflight_task_matches + _canonical_preflight_task normalize declared gitea_ aliases without inventing open-ended synonyms.
  • Fail-closed invalidation: denied/stale resolver results clear capability proof; identity_match failures invalidate whoami + capability state.
  • Workflow-load proof: acquire_reviewer_pr_lease / gitea_acquire_reviewer_pr_lease now participate in anti-stomp workflow-hash checks and resolver workflow_load_proof.
  • Not widened: reverse transition (acquire → review_pr), merger lease from review_pr, and unrelated tasks remain rejected.
  • Identity/profile, dirty workspace, lease exclusivity, head pinning: still enforced (regression coverage + live lease bind on this session).
  • Scope: only the three intended files (gitea_mcp_server.py, task_capability_map.py, tests/test_issue_763_reviewer_lease_preflight_order.py).

Tests run (worktree branches/review-pr-764-bootstrap-lease)

Suite Result
tests/test_issue_763_reviewer_lease_preflight_order.py 12 passed
Focused safety set (763 + preflight + resolve + workflow-load + merger/reviewer lease + anti-stomp) 127 passed, 16 subtests
Full suite pytest -q --tb=line 3684 passed, 6 skipped, 431 subtests, 2 failed
Authorized-base same two tests @ 8a851eb identical 2 failures (pre-existing, out of scope)
git diff --check clean

Pre-existing failures (not introduced by this PR):

  1. test_removed_worktree_recovers_before_probe
  2. test_tool_posts_comment_and_closes_superseded_pr_issue

Findings

none

Decision

APPROVE at pinned head 6b568d8805fe62e343e3edb2689c42030931b6f5.

No merge performed. PR #762 was not reviewed or mutated.

Next phase: fresh prgs-merger session to merge PR #764, then restart MCP daemons so live reviewer runtimes load the fix.

Canonical PR State

STATE: approved_pending_merge
WHO_IS_NEXT: merger
NEXT_ACTION: Start a fresh prgs-merger session and merge PR #764 at the approved pinned head after standard merger preflight.
NEXT_PROMPT:

Use a fresh prgs-merger session to merge PR #764 for issue #763 at approved head 6b568d8805fe62e343e3edb2689c42030931b6f5 on remote prgs. Identity/profile must be merger (not reviewer/author). Do not review PR #762. After merge lands, restart MCP daemons so reviewer runtimes load the #763 fix.

WHAT_HAPPENED: Independent prgs-reviewer (sysadmin) approved PR #764 at the pinned head after bootstrap raw-capability lease acquisition, full-diff review, and validation.
WHY: The #763 fix correctly maps documented review_pr capability one-way to acquire_reviewer_pr_lease while keeping safety gates fail-closed; tests and scope check out.
ISSUE: #763
HEAD_SHA: 6b568d8805
REVIEW_STATUS: APPROVED
MERGE_READY: true
BLOCKERS: none
VALIDATION: 12/12 #763 regressions; 127 focused + 16 subtests; full suite 3684 passed / 6 skipped / 2 pre-existing failures matching authorized base 8a851eb
NATIVE_REVIEW_PROOF: transport=native_mcp; entrypoint=mcp_server; token_fingerprint=a139de609a518c0a; pid=90676; profile=prgs-reviewer; identity=sysadmin
LAST_UPDATED_BY: sysadmin using prgs-reviewer

## Independent Review — PR #764 / Issue #763 **Reviewed head SHA:** `6b568d8805fe62e343e3edb2689c42030931b6f5` **Reviewer:** sysadmin / prgs-reviewer (identity_match=true) **Author:** jcwalker3 (distinct; author-safety passed) **Base:** master @ `8a851eb87e63fc236d8897ed67f67cbe295bc3ae` ### Root-cause assessment The live pre-fix master compares the resolved preflight task string against the mutation task with raw equality. The documented workflow resolves `review_pr` then acquires the reviewer lease (`acquire_reviewer_pr_lease`), so the strings differ and purity fails closed incorrectly. That matches the #762 bootstrap deadlock diagnosis. ### Safety-gate assessment - **One-way mapping:** `_PREFLIGHT_TASK_TRANSITIONS` is exactly `{("review_pr", "acquire_reviewer_pr_lease")}` — directed, narrow, reviewer-specific. - **Alias-aware purity:** `preflight_task_matches` + `_canonical_preflight_task` normalize declared `gitea_` aliases without inventing open-ended synonyms. - **Fail-closed invalidation:** denied/stale resolver results clear capability proof; identity_match failures invalidate whoami + capability state. - **Workflow-load proof:** `acquire_reviewer_pr_lease` / `gitea_acquire_reviewer_pr_lease` now participate in anti-stomp workflow-hash checks and resolver workflow_load_proof. - **Not widened:** reverse transition (`acquire → review_pr`), merger lease from `review_pr`, and unrelated tasks remain rejected. - **Identity/profile, dirty workspace, lease exclusivity, head pinning:** still enforced (regression coverage + live lease bind on this session). - **Scope:** only the three intended files (`gitea_mcp_server.py`, `task_capability_map.py`, `tests/test_issue_763_reviewer_lease_preflight_order.py`). ### Tests run (worktree `branches/review-pr-764-bootstrap-lease`) | Suite | Result | |-------|--------| | `tests/test_issue_763_reviewer_lease_preflight_order.py` | **12 passed** | | Focused safety set (763 + preflight + resolve + workflow-load + merger/reviewer lease + anti-stomp) | **127 passed, 16 subtests** | | Full suite `pytest -q --tb=line` | **3684 passed, 6 skipped, 431 subtests, 2 failed** | | Authorized-base same two tests @ `8a851eb` | **identical 2 failures** (pre-existing, out of scope) | | `git diff --check` | clean | Pre-existing failures (not introduced by this PR): 1. `test_removed_worktree_recovers_before_probe` 2. `test_tool_posts_comment_and_closes_superseded_pr_issue` ### Findings none ### Decision **APPROVE** at pinned head `6b568d8805fe62e343e3edb2689c42030931b6f5`. No merge performed. PR #762 was not reviewed or mutated. **Next phase:** fresh `prgs-merger` session to merge PR #764, then restart MCP daemons so live reviewer runtimes load the fix. ## Canonical PR State STATE: approved_pending_merge WHO_IS_NEXT: merger NEXT_ACTION: Start a fresh prgs-merger session and merge PR #764 at the approved pinned head after standard merger preflight. NEXT_PROMPT: ```text Use a fresh prgs-merger session to merge PR #764 for issue #763 at approved head 6b568d8805fe62e343e3edb2689c42030931b6f5 on remote prgs. Identity/profile must be merger (not reviewer/author). Do not review PR #762. After merge lands, restart MCP daemons so reviewer runtimes load the #763 fix. ``` WHAT_HAPPENED: Independent prgs-reviewer (sysadmin) approved PR #764 at the pinned head after bootstrap raw-capability lease acquisition, full-diff review, and validation. WHY: The #763 fix correctly maps documented review_pr capability one-way to acquire_reviewer_pr_lease while keeping safety gates fail-closed; tests and scope check out. ISSUE: #763 HEAD_SHA: 6b568d8805fe62e343e3edb2689c42030931b6f5 REVIEW_STATUS: APPROVED MERGE_READY: true BLOCKERS: none VALIDATION: 12/12 #763 regressions; 127 focused + 16 subtests; full suite 3684 passed / 6 skipped / 2 pre-existing failures matching authorized base 8a851eb NATIVE_REVIEW_PROOF: transport=native_mcp; entrypoint=mcp_server; token_fingerprint=a139de609a518c0a; pid=90676; profile=prgs-reviewer; identity=sysadmin LAST_UPDATED_BY: sysadmin using prgs-reviewer
Owner

repo: Scaled-Tech-Consulting/Gitea-Tools
pr: #764
issue: #763
reviewer_identity: sysadmin
profile: prgs-merger
session_id: 5647-e369115711d5
worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/merge-pr-764-6b568d8
phase: claimed
candidate_head: 6b568d8805
target_branch: master
target_branch_sha: 8a851eb87e
last_activity: 2026-07-19T22:52:06Z
expires_at: 2026-07-19T23:02:06Z
blocker: none

<!-- mcp-review-lease:v1 --> repo: Scaled-Tech-Consulting/Gitea-Tools pr: #764 issue: #763 reviewer_identity: sysadmin profile: prgs-merger session_id: 5647-e369115711d5 worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/merge-pr-764-6b568d8 phase: claimed candidate_head: 6b568d8805fe62e343e3edb2689c42030931b6f5 target_branch: master target_branch_sha: 8a851eb87e63fc236d8897ed67f67cbe295bc3ae last_activity: 2026-07-19T22:52:06Z expires_at: 2026-07-19T23:02:06Z blocker: none
sysadmin merged commit b7a5284b98 into master 2026-07-19 17:53:00 -05:00
Owner

Stale #332 review-decision lock cleanup (#594)

Status: APPLIED

Manual deletion of session-state files is not the workflow.
This path only clears a lock when the referenced PR is merged/closed.

## Stale #332 review-decision lock cleanup (#594) Status: **APPLIED** - actor: `sysadmin` - profile: `prgs-merger` - timestamp: `2026-07-19T22:53:01.551757+00:00` - last terminal: `approve` on PR #764 - PR state: `closed` (merged=True) - merge_commit_sha: `b7a5284b984d1d810123a23fe7adb7eb5ba6eb99` - prior live_mutations_count: `1` - prior profile_identity: `prgs-reviewer` Manual deletion of session-state files is **not** the workflow. This path only clears a lock when the referenced PR is merged/closed.
Sign in to join this conversation.
No Reviewers
No labels
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

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