fix(allocator): pre-rank exclusions and candidates_json transport (Closes #776) #777

Merged
sysadmin merged 1 commits from fix/issue-776-allocator-pre-rank-exclusions into master 2026-07-20 22:33:06 -05:00
Owner

Summary

Fixes allocator MCP defects exposed by the Grok canary: missing fail-closed pre-rank exclusions and broken candidates_json string/list transport.

Changes

  • AC1/AC2: Typed exclude_issue_numbers on gitea_allocate_next_work; excluded numbers removed before ranking/selection/lease.
  • AC3: candidates_json accepts already-decoded lists and JSON strings; rejects malformed JSON, scalars, invalid records, and booleans-as-integers fail-closed.
  • AC4: Stable candidate_set_fingerprint on dry-run and apply; apply rejects material fingerprint drift.
  • AC5: Live claims re-evaluated in the allocation path; foreign owners never overridden; same-owner lease on an excluded issue returns blocked_by_excluded_own_lease with resume/release guidance.
  • AC6/AC7: Skipped accounting uses excluded_by_controller; all-excluded yields WAIT with no lease.
  • AC8/AC9: MCP entry-point tests for #617 exclusion; omit exclusions retains prior behavior.

Files

  • allocator_service.py
  • gitea_mcp_server.py
  • tests/test_allocator_pre_rank_exclusions.py

Tests

  • Focused allocator suite (tests/test_allocator_*.py and control-plane/dashboard): 140 passed
  • New tests/test_allocator_pre_rank_exclusions.py: all passed
  • Full suite: 3957 passed, 11 failed — failures reproduce identically on pristine base 52ded0ea… (not introduced by this PR)

Published head

  • d17f055e8646c38a2f473aa39b01bae7e0abf274
  • Tree differs from master (0570dd62… vs c3fa30c1…)

Closes #776

## Summary Fixes allocator MCP defects exposed by the Grok canary: missing fail-closed pre-rank exclusions and broken `candidates_json` string/list transport. ## Changes * **AC1/AC2:** Typed `exclude_issue_numbers` on `gitea_allocate_next_work`; excluded numbers removed **before** ranking/selection/lease. * **AC3:** `candidates_json` accepts already-decoded lists and JSON strings; rejects malformed JSON, scalars, invalid records, and booleans-as-integers fail-closed. * **AC4:** Stable `candidate_set_fingerprint` on dry-run and apply; apply rejects material fingerprint drift. * **AC5:** Live claims re-evaluated in the allocation path; foreign owners never overridden; same-owner lease on an excluded issue returns `blocked_by_excluded_own_lease` with resume/release guidance. * **AC6/AC7:** Skipped accounting uses `excluded_by_controller`; all-excluded yields WAIT with no lease. * **AC8/AC9:** MCP entry-point tests for #617 exclusion; omit exclusions retains prior behavior. ## Files * `allocator_service.py` * `gitea_mcp_server.py` * `tests/test_allocator_pre_rank_exclusions.py` ## Tests * Focused allocator suite (`tests/test_allocator_*.py` and control-plane/dashboard): **140 passed** * New `tests/test_allocator_pre_rank_exclusions.py`: **all passed** * Full suite: **3957 passed**, 11 failed — failures reproduce identically on pristine base `52ded0ea…` (not introduced by this PR) ## Published head * `d17f055e8646c38a2f473aa39b01bae7e0abf274` * Tree differs from master (`0570dd62…` vs `c3fa30c1…`) Closes #776
jcwalker3 added 1 commit 2026-07-20 21:41:44 -05:00
Expose exclude_issue_numbers on gitea_allocate_next_work, remove excluded
numbers before ranking, normalize decoded-list and JSON-string
candidates_json fail-closed, and return candidate-set fingerprints for
dry-run/apply CAS. Same-owner leases on excluded issues surface a
structured resume/release blocker.

Closes #776

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Author
Owner

CTH: Author Handoff

Canonical Issue State

STATE: author_complete_pr_open
WHO_IS_NEXT: reviewer
NEXT_ACTION: formal review of PR #777 at head d17f055e8646c38a2f473aa39b01bae7e0abf274; do not merge from author role
NEXT_PROMPT:

As prgs-reviewer, review PR #777 (Closes #776) at expected head d17f055e8646c38a2f473aa39b01bae7e0abf274 on Scaled-Tech-Consulting/Gitea-Tools (remote prgs). Validate allocator pre-rank exclusions, candidates_json transport, and AC1–AC9. Post CTH: Reviewer Handoff. Do not use author profile.

WHAT_HAPPENED: Implemented fail-closed allocator pre-rank exclusions and candidates_json transport normalization for Issue #776; pushed head d17f055e8646c38a2f473aa39b01bae7e0abf274; opened PR #777.
WHY: Grok canary proved native MCP lacked exclude_issue_numbers and coerced candidates_json incorrectly, allowing protected #617 to be leased.
RELATED_PRS: PR #777 closes Issue #776; prior terminal canary path was PR #775 / Issue #617 (closed; not reopened).
BLOCKERS: none
VALIDATION: focused allocator suite 140 passed; tests/test_allocator_pre_rank_exclusions.py all passed; full suite 3957 passed / 11 failed (same 11 failures on pristine base 52ded0ea — pre-existing).
LAST_UPDATED_BY: jcwalker3 / prgs-author

Published head: d17f055e86
Tree: 0570dd62c8 (differs from master c3fa30c183)
Branch: fix/issue-776-allocator-pre-rank-exclusions
Worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/issue-776-allocator-pre-rank-exclusions
Files: allocator_service.py, gitea_mcp_server.py, tests/test_allocator_pre_rank_exclusions.py

exact next role: prgs-reviewer

## CTH: Author Handoff ## Canonical Issue State STATE: author_complete_pr_open WHO_IS_NEXT: reviewer NEXT_ACTION: formal review of PR #777 at head d17f055e8646c38a2f473aa39b01bae7e0abf274; do not merge from author role NEXT_PROMPT: ```text As prgs-reviewer, review PR #777 (Closes #776) at expected head d17f055e8646c38a2f473aa39b01bae7e0abf274 on Scaled-Tech-Consulting/Gitea-Tools (remote prgs). Validate allocator pre-rank exclusions, candidates_json transport, and AC1–AC9. Post CTH: Reviewer Handoff. Do not use author profile. ``` WHAT_HAPPENED: Implemented fail-closed allocator pre-rank exclusions and candidates_json transport normalization for Issue #776; pushed head d17f055e8646c38a2f473aa39b01bae7e0abf274; opened PR #777. WHY: Grok canary proved native MCP lacked exclude_issue_numbers and coerced candidates_json incorrectly, allowing protected #617 to be leased. RELATED_PRS: PR #777 closes Issue #776; prior terminal canary path was PR #775 / Issue #617 (closed; not reopened). BLOCKERS: none VALIDATION: focused allocator suite 140 passed; tests/test_allocator_pre_rank_exclusions.py all passed; full suite 3957 passed / 11 failed (same 11 failures on pristine base 52ded0ea — pre-existing). LAST_UPDATED_BY: jcwalker3 / prgs-author Published head: d17f055e8646c38a2f473aa39b01bae7e0abf274 Tree: 0570dd62c848e31e7632fa7d7829c9fb0e832dcb (differs from master c3fa30c1837b1b479da941786d01e2ee636fdeca) Branch: fix/issue-776-allocator-pre-rank-exclusions Worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/issue-776-allocator-pre-rank-exclusions Files: allocator_service.py, gitea_mcp_server.py, tests/test_allocator_pre_rank_exclusions.py exact next role: prgs-reviewer
Owner

repo: Scaled-Tech-Consulting/Gitea-Tools
pr: #777
issue: #776
reviewer_identity: sysadmin
profile: prgs-reviewer
session_id: 23268-7972139ddcca
worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-pr-777-d17f055
phase: claimed
candidate_head: d17f055e86
target_branch: master
target_branch_sha: 52ded0ea71
last_activity: 2026-07-21T03:14:15Z
expires_at: 2026-07-21T03:24:15Z
blocker: none

<!-- mcp-review-lease:v1 --> repo: Scaled-Tech-Consulting/Gitea-Tools pr: #777 issue: #776 reviewer_identity: sysadmin profile: prgs-reviewer session_id: 23268-7972139ddcca worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-pr-777-d17f055 phase: claimed candidate_head: d17f055e8646c38a2f473aa39b01bae7e0abf274 target_branch: master target_branch_sha: 52ded0ea714b31468ba991bac61084e103b08dcb last_activity: 2026-07-21T03:14:15Z expires_at: 2026-07-21T03:24:15Z blocker: none
Owner

repo: Scaled-Tech-Consulting/Gitea-Tools
pr: #777
issue: #776
reviewer_identity: sysadmin
profile: prgs-reviewer
session_id: 23268-7972139ddcca
worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-pr-777-d17f055
phase: claimed
candidate_head: d17f055e86
target_branch: master
target_branch_sha: 52ded0ea71
last_activity: 2026-07-21T03:18:29Z
expires_at: 2026-07-21T03:28:29Z
blocker: none

<!-- mcp-review-lease:v1 --> repo: Scaled-Tech-Consulting/Gitea-Tools pr: #777 issue: #776 reviewer_identity: sysadmin profile: prgs-reviewer session_id: 23268-7972139ddcca worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-pr-777-d17f055 phase: claimed candidate_head: d17f055e8646c38a2f473aa39b01bae7e0abf274 target_branch: master target_branch_sha: 52ded0ea714b31468ba991bac61084e103b08dcb last_activity: 2026-07-21T03:18:29Z expires_at: 2026-07-21T03:28:29Z blocker: none
Owner

repo: Scaled-Tech-Consulting/Gitea-Tools
pr: #777
issue: #776
reviewer_identity: sysadmin
profile: prgs-reviewer
session_id: 23268-7972139ddcca
worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-pr-777-d17f055
phase: claimed
candidate_head: d17f055e86
target_branch: master
target_branch_sha: 52ded0ea71
last_activity: 2026-07-21T03:18:55Z
expires_at: 2026-07-21T03:28:55Z
blocker: none

<!-- mcp-review-lease:v1 --> repo: Scaled-Tech-Consulting/Gitea-Tools pr: #777 issue: #776 reviewer_identity: sysadmin profile: prgs-reviewer session_id: 23268-7972139ddcca worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-pr-777-d17f055 phase: claimed candidate_head: d17f055e8646c38a2f473aa39b01bae7e0abf274 target_branch: master target_branch_sha: 52ded0ea714b31468ba991bac61084e103b08dcb last_activity: 2026-07-21T03:18:55Z expires_at: 2026-07-21T03:28:55Z blocker: none
sysadmin approved these changes 2026-07-20 22:19:59 -05:00
sysadmin left a comment
Owner

Formal review body

Canonical PR State

STATE: reviewer_verdict_ready
WHO_IS_NEXT: reviewer
NEXT_ACTION: record APPROVE at head d17f055e86 via native MCP review mutation
NEXT_PROMPT:

Continue formal review submission for PR #777 at d17f055e8646c38a2f473aa39b01bae7e0abf274.

WHAT_HAPPENED: Completed independent AC1–AC9 review of PR #777 / Issue #776; preparing native APPROVE at pinned head.
WHY: Full base..head diff and independent validation support approval.
ISSUE: #776
HEAD_SHA: d17f055e86
REVIEW_STATUS: pending_native_approve
MERGE_READY: false
BLOCKERS: none
VALIDATION: tests/test_allocator_pre_rank_exclusions.py 24 passed; allocator suites 97 passed; full suite 3957 passed / 11 pre-existing failures on base 52ded0ea.
LAST_UPDATED_BY: sysadmin / prgs-reviewer

AC1–AC9 PASS. Scope limited to allocator_service.py, gitea_mcp_server.py, tests/test_allocator_pre_rank_exclusions.py.

## Formal review body ## Canonical PR State STATE: reviewer_verdict_ready WHO_IS_NEXT: reviewer NEXT_ACTION: record APPROVE at head d17f055e8646c38a2f473aa39b01bae7e0abf274 via native MCP review mutation NEXT_PROMPT: ```text Continue formal review submission for PR #777 at d17f055e8646c38a2f473aa39b01bae7e0abf274. ``` WHAT_HAPPENED: Completed independent AC1–AC9 review of PR #777 / Issue #776; preparing native APPROVE at pinned head. WHY: Full base..head diff and independent validation support approval. ISSUE: #776 HEAD_SHA: d17f055e8646c38a2f473aa39b01bae7e0abf274 REVIEW_STATUS: pending_native_approve MERGE_READY: false BLOCKERS: none VALIDATION: tests/test_allocator_pre_rank_exclusions.py 24 passed; allocator suites 97 passed; full suite 3957 passed / 11 pre-existing failures on base 52ded0ea. LAST_UPDATED_BY: sysadmin / prgs-reviewer AC1–AC9 PASS. Scope limited to allocator_service.py, gitea_mcp_server.py, tests/test_allocator_pre_rank_exclusions.py.
Owner

repo: Scaled-Tech-Consulting/Gitea-Tools
pr: #777
issue: #776
reviewer_identity: sysadmin
profile: prgs-reviewer
session_id: 23268-7972139ddcca
worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-pr-777-d17f055
phase: released
candidate_head: d17f055e86
target_branch: master
target_branch_sha: 52ded0ea71
last_activity: 2026-07-21T03:20:21Z
expires_at: 2026-07-21T03:30:21Z
blocker: manual-release

<!-- mcp-review-lease:v1 --> repo: Scaled-Tech-Consulting/Gitea-Tools pr: #777 issue: #776 reviewer_identity: sysadmin profile: prgs-reviewer session_id: 23268-7972139ddcca worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-pr-777-d17f055 phase: released candidate_head: d17f055e8646c38a2f473aa39b01bae7e0abf274 target_branch: master target_branch_sha: 52ded0ea714b31468ba991bac61084e103b08dcb last_activity: 2026-07-21T03:20:21Z expires_at: 2026-07-21T03:30:21Z blocker: manual-release
Owner

CTH: Reviewer Handoff

Canonical PR State

STATE: approved_at_current_head
WHO_IS_NEXT: merger
NEXT_ACTION: merge PR #777 at expected head d17f055e86 via prgs-merger if gates pass
NEXT_PROMPT:

As prgs-merger, merge PR #777 for Issue #776 at expected head d17f055e8646c38a2f473aa39b01bae7e0abf274 on Scaled-Tech-Consulting/Gitea-Tools (remote prgs) if mergeable and approval remains at current head. Post CTH: Merger Handoff after merge. Do not re-review unless head drifts.

WHAT_HAPPENED: Formal independent review submitted APPROVE via native gitea_submit_pr_review at head d17f055e8646c38a2f473aa39b01bae7e0abf274; reviewer lease released (comment 13525).
WHY: AC1–AC9 satisfied; full base..head scope clean; independent tests green; full-suite failures proven pre-existing on base 52ded0ea.
ISSUE: #776
HEAD_SHA: d17f055e86
REVIEW_STATUS: APPROVE
MERGE_READY: true
RELATED_PRS: PR #777 closes Issue #776
BLOCKERS: none
VALIDATION: test_allocator_pre_rank_exclusions 24 passed; allocator/control-plane/dashboard 97 passed; full suite 3957 passed / 11 failed (same 11 IDs on pristine base 52ded0ea). gitea_assess_pr_sync_status: approval_at_current_head=true, recommended_next_action=merge_now, approval_valid_for_merge=true.
LAST_UPDATED_BY: sysadmin / prgs-reviewer

NATIVE_REVIEW_PROOF: native MCP gitea_submit_pr_review performed=true submitted_verdict=APPROVED review_verdict_visible=true at head d17f055e86 by sysadmin

Readback: approval_at_current_head=true; stale_approval=false; reviewed_head_sha=d17f055e8646c38a2f473aa39b01bae7e0abf274; reviewer lease released comment_id=13525.

exact next role: prgs-merger

## CTH: Reviewer Handoff ## Canonical PR State STATE: approved_at_current_head WHO_IS_NEXT: merger NEXT_ACTION: merge PR #777 at expected head d17f055e8646c38a2f473aa39b01bae7e0abf274 via prgs-merger if gates pass NEXT_PROMPT: ```text As prgs-merger, merge PR #777 for Issue #776 at expected head d17f055e8646c38a2f473aa39b01bae7e0abf274 on Scaled-Tech-Consulting/Gitea-Tools (remote prgs) if mergeable and approval remains at current head. Post CTH: Merger Handoff after merge. Do not re-review unless head drifts. ``` WHAT_HAPPENED: Formal independent review submitted APPROVE via native gitea_submit_pr_review at head d17f055e8646c38a2f473aa39b01bae7e0abf274; reviewer lease released (comment 13525). WHY: AC1–AC9 satisfied; full base..head scope clean; independent tests green; full-suite failures proven pre-existing on base 52ded0ea. ISSUE: #776 HEAD_SHA: d17f055e8646c38a2f473aa39b01bae7e0abf274 REVIEW_STATUS: APPROVE MERGE_READY: true RELATED_PRS: PR #777 closes Issue #776 BLOCKERS: none VALIDATION: test_allocator_pre_rank_exclusions 24 passed; allocator/control-plane/dashboard 97 passed; full suite 3957 passed / 11 failed (same 11 IDs on pristine base 52ded0ea). gitea_assess_pr_sync_status: approval_at_current_head=true, recommended_next_action=merge_now, approval_valid_for_merge=true. LAST_UPDATED_BY: sysadmin / prgs-reviewer NATIVE_REVIEW_PROOF: native MCP gitea_submit_pr_review performed=true submitted_verdict=APPROVED review_verdict_visible=true at head d17f055e8646c38a2f473aa39b01bae7e0abf274 by sysadmin Readback: approval_at_current_head=true; stale_approval=false; reviewed_head_sha=d17f055e8646c38a2f473aa39b01bae7e0abf274; reviewer lease released comment_id=13525. exact next role: prgs-merger
Owner

repo: Scaled-Tech-Consulting/Gitea-Tools
pr: #777
issue: #776
reviewer_identity: sysadmin
profile: prgs-merger
session_id: 23266-39c3a20cb63b
worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/merge-pr-777-d17f055
phase: claimed
candidate_head: d17f055e86
target_branch: master
target_branch_sha: 52ded0ea71
last_activity: 2026-07-21T03:32:32Z
expires_at: 2026-07-21T03:42:32Z
blocker: none

<!-- mcp-review-lease:v1 --> repo: Scaled-Tech-Consulting/Gitea-Tools pr: #777 issue: #776 reviewer_identity: sysadmin profile: prgs-merger session_id: 23266-39c3a20cb63b worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/merge-pr-777-d17f055 phase: claimed candidate_head: d17f055e8646c38a2f473aa39b01bae7e0abf274 target_branch: master target_branch_sha: 52ded0ea714b31468ba991bac61084e103b08dcb last_activity: 2026-07-21T03:32:32Z expires_at: 2026-07-21T03:42:32Z blocker: none
sysadmin merged commit 1d11cbab0f into master 2026-07-20 22:33:06 -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-21T03:33:08.409776+00:00` - last terminal: `approve` on PR #777 - PR state: `closed` (merged=True) - merge_commit_sha: `1d11cbab0fdc529859bdace2bd01e20da22ff449` - 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.
Owner

repo: Scaled-Tech-Consulting/Gitea-Tools
pr: #777
issue: #776
reviewer_identity: sysadmin
profile: prgs-merger
session_id: 23266-39c3a20cb63b
worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/merge-pr-777-d17f055
phase: released
candidate_head: d17f055e86
target_branch: master
target_branch_sha: 52ded0ea71
last_activity: 2026-07-21T03:37:44Z
expires_at: 2026-07-21T03:47:44Z
blocker: post-merge-moot

<!-- mcp-review-lease:v1 --> repo: Scaled-Tech-Consulting/Gitea-Tools pr: #777 issue: #776 reviewer_identity: sysadmin profile: prgs-merger session_id: 23266-39c3a20cb63b worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/merge-pr-777-d17f055 phase: released candidate_head: d17f055e8646c38a2f473aa39b01bae7e0abf274 target_branch: master target_branch_sha: 52ded0ea714b31468ba991bac61084e103b08dcb last_activity: 2026-07-21T03:37:44Z expires_at: 2026-07-21T03:47:44Z blocker: post-merge-moot
Owner

CTH: Terminal Cleanup Ledger (reconciler)

Canonical Issue State

STATE: terminal_cleanup_complete
WHO_IS_NEXT: controller
NEXT_ACTION: optional separate bounded canary of the landed allocator exclusion path; do not re-review or re-merge PR #777
NEXT_PROMPT:

As controller, if desired, run a bounded canary of the newly landed allocator pre-rank exclusion path from master 1d11cbab0fdc529859bdace2bd01e20da22ff449 (exclude_issue_numbers / candidates_json). Do not re-open cleanup for PR #777 / Issue #776 unless live state shows residual mutation risk.

WHAT_HAPPENED: Post-merge terminal cleanup for merged PR #777 / closed Issue #776 completed under prgs-reconciler / sysadmin.
WHY: Merger handoff required reconciler-owned cleanup of moot merger lease, residual status:pr-open, session worktrees, and feature branch after merge commit landed on master.
RELATED_PRS: PR #777 merged at 1d11cbab0f (closes Issue #776); head d17f055e86
BLOCKERS: none for cleanup scope
VALIDATION: Gate Zero parity at 1d11cbab…; PR closed/merged with matching merge commit; Issue #776 closed; d17f055 ancestor of master; open-PR inventory complete (0 open); no open PR on feature branch; review 490 historical APPROVED at d17f055; merger lease released comment 13537; reviewer lease already released comment 13525; remote branch verified_absent; three worktrees absent/unregistered; local branch deleted via git branch -d; control checkout clean at 1d11cbab…
LAST_UPDATED_BY: sysadmin / prgs-reconciler

Gate Zero

  • Control checkout already at merge commit 1d11cbab0fdc529859bdace2bd01e20da22ff449 (ff-only parity; clean)
  • Reconciler namespace: gitea-reconciler / profile prgs-reconciler / identity sysadmin (verified)
  • Master parity: startup=current=local=live prgs/master = 1d11cbab… (in_parity=true)

Terminal verification

  • PR #777 closed/merged; merge_commit_sha=1d11cbab0fdc529859bdace2bd01e20da22ff449
  • Issue #776 closed
  • d17f055e8646c38a2f473aa39b01bae7e0abf274 ancestor of live master
  • Review 490 historical APPROVED at merged head d17f055…
  • Open PR inventory complete; no open PR uses fix/issue-776-allocator-pre-rank-exclusions

Lease cleanup

  • Merger lease session 23266-39c3a20cb63b / comment 13529 / head d17f055…: dry-run cleanup_allowed=true; apply posted terminal released marker comment 13537 (blocker: post-merge-moot)
  • Reviewer lease comment 13525: already phase released — inactive
  • Control-plane DB: no active lease for #776/#777
  • Author file lock residual: stale/non-live (pid 23265 dead; worktree missing; reclaim_allowed=true); not manually deleted

Labels

Author head/tree comparison

  • Head: d17f055e8646c38a2f473aa39b01bae7e0abf274
  • Tree: 0570dd62c848e31e7632fa7d7829c9fb0e832dcb identical to merged head and master trees
  • Exact ancestry / identical tree; no unique unpublished content

Worktree / branch actions (readback)

Artifact Action Readback
branches/review-pr-777-d17f055 non-force worktree remove ABSENT; unregistered
branches/merge-pr-777-d17f055 non-force worktree remove ABSENT; unregistered
branches/issue-776-allocator-pre-rank-exclusions non-force worktree remove after head/tree proof ABSENT; unregistered
local fix/issue-776-allocator-pre-rank-exclusions git branch -d after unattached+landed ABSENT
remote feature branch gitea_cleanup_merged_pr_branch exact confirmation verified_absent=true

Cleanup mutations

Merge mutations

  • none (merger already recorded gitea_merge_pr)

Preserved residual artifacts

  • Stale non-live author issue lock file for #776 (no manual lock edit/delete)
  • Unrelated worktrees/branches (#617/#775, #681, preserve refs, mcp-author-clean-ns, dirty/live-owned) untouched

Control checkout final

  • clean master at 1d11cbab0fdc529859bdace2bd01e20da22ff449
  • master == prgs/master

exact next role: controller

## CTH: Terminal Cleanup Ledger (reconciler) ## Canonical Issue State STATE: terminal_cleanup_complete WHO_IS_NEXT: controller NEXT_ACTION: optional separate bounded canary of the landed allocator exclusion path; do not re-review or re-merge PR #777 NEXT_PROMPT: ```text As controller, if desired, run a bounded canary of the newly landed allocator pre-rank exclusion path from master 1d11cbab0fdc529859bdace2bd01e20da22ff449 (exclude_issue_numbers / candidates_json). Do not re-open cleanup for PR #777 / Issue #776 unless live state shows residual mutation risk. ``` WHAT_HAPPENED: Post-merge terminal cleanup for merged PR #777 / closed Issue #776 completed under prgs-reconciler / sysadmin. WHY: Merger handoff required reconciler-owned cleanup of moot merger lease, residual status:pr-open, session worktrees, and feature branch after merge commit landed on master. RELATED_PRS: PR #777 merged at 1d11cbab0fdc529859bdace2bd01e20da22ff449 (closes Issue #776); head d17f055e8646c38a2f473aa39b01bae7e0abf274 BLOCKERS: none for cleanup scope VALIDATION: Gate Zero parity at 1d11cbab…; PR closed/merged with matching merge commit; Issue #776 closed; d17f055 ancestor of master; open-PR inventory complete (0 open); no open PR on feature branch; review 490 historical APPROVED at d17f055; merger lease released comment 13537; reviewer lease already released comment 13525; remote branch verified_absent; three worktrees absent/unregistered; local branch deleted via git branch -d; control checkout clean at 1d11cbab… LAST_UPDATED_BY: sysadmin / prgs-reconciler ### Gate Zero - Control checkout already at merge commit `1d11cbab0fdc529859bdace2bd01e20da22ff449` (ff-only parity; clean) - Reconciler namespace: `gitea-reconciler` / profile `prgs-reconciler` / identity `sysadmin` (verified) - Master parity: startup=current=local=live `prgs/master` = `1d11cbab…` (`in_parity=true`) ### Terminal verification - PR #777 closed/merged; merge_commit_sha=`1d11cbab0fdc529859bdace2bd01e20da22ff449` - Issue #776 closed - `d17f055e8646c38a2f473aa39b01bae7e0abf274` ancestor of live master - Review 490 historical APPROVED at merged head `d17f055…` - Open PR inventory complete; no open PR uses `fix/issue-776-allocator-pre-rank-exclusions` ### Lease cleanup - Merger lease session `23266-39c3a20cb63b` / comment `13529` / head `d17f055…`: dry-run cleanup_allowed=true; apply posted terminal released marker comment **13537** (blocker: post-merge-moot) - Reviewer lease comment `13525`: already phase released — inactive - Control-plane DB: no active lease for #776/#777 - Author file lock residual: stale/non-live (pid 23265 dead; worktree missing; reclaim_allowed=true); not manually deleted ### Labels - Removed residual `status:pr-open` from closed Issue #776 - Final Issue #776 labels: `anti-stomp`, `mcp-health`, `type:bug`, `workflow-hardening` ### Author head/tree comparison - Head: `d17f055e8646c38a2f473aa39b01bae7e0abf274` - Tree: `0570dd62c848e31e7632fa7d7829c9fb0e832dcb` identical to merged head and master trees - Exact ancestry / identical tree; no unique unpublished content ### Worktree / branch actions (readback) | Artifact | Action | Readback | |---|---|---| | `branches/review-pr-777-d17f055` | non-force worktree remove | ABSENT; unregistered | | `branches/merge-pr-777-d17f055` | non-force worktree remove | ABSENT; unregistered | | `branches/issue-776-allocator-pre-rank-exclusions` | non-force worktree remove after head/tree proof | ABSENT; unregistered | | local `fix/issue-776-allocator-pre-rank-exclusions` | `git branch -d` after unattached+landed | ABSENT | | remote feature branch | `gitea_cleanup_merged_pr_branch` exact confirmation | verified_absent=true | ### Cleanup mutations - `gitea_cleanup_post_merge_moot_lease` apply → comment 13537 - `gitea_set_issue_labels` on #776 - `gitea_cleanup_merged_pr_branch` on #777 - non-force worktree remove ×3; safe local `git branch -d` ### Merge mutations - none (merger already recorded `gitea_merge_pr`) ### Preserved residual artifacts - Stale non-live author issue lock file for #776 (no manual lock edit/delete) - Unrelated worktrees/branches (#617/#775, #681, preserve refs, mcp-author-clean-ns, dirty/live-owned) untouched ### Control checkout final - clean master at `1d11cbab0fdc529859bdace2bd01e20da22ff449` - master == prgs/master exact next role: controller
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#777