You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
t18648: Approved external parent-task issues never auto-close after children complete... #34281
Approved external parent-task issues never auto-close after children complete (stale approval blocks terminal close)
Brief workflow contract
Brief Workflow
This issue body is composed under .agents/workflows/brief.md. Newly queued auto-dispatch work must pass its Dispatch Readiness Contract (brief schema v2): complete write surface, hazards and compatibility, executable verification mapped to affected surfaces, and positive plus negative/regression acceptance criteria.
Interactive session claimed by @marcusquinn in aidevops-bugfix-parent-close-stale-external-approval on Mac.
Pulse dispatch blocked via status:claimed + self-assignment.
aidevops.sh v3.39.0 plugin for OpenCode v1.18.35 with claude-opus-5-5 spent 3h 27m and 336,556 tokens on this with the user in an interactive session.
Repository owner locked as resolved and limited conversation to collaborators on Oct 10, 2026
changed the title [-]t18648: Approved external parent-task issues never auto-close after children complete (stale approval blocks terminal close)[/-][+]t18648: Approved external parent-task issues never auto-close after children complete...[/+]on Oct 10, 2026
Reopening: PR #34282 fix is unreachable in the production loop
After #34282 merged and was deployed (setup.sh --non-interactive, deployed module contains _PIR_PARENT_TRUST_STALE_APPROVED_CLOSE), #34180 and #34125 still stayed open. The pulse log kept printing on every cycle:
Root cause: in .agents/scripts/pulse-issue-reconcile.sh_pir_reconcile_issue_stages, Stage 0b (_action_reconcile_external_issue_gate) returns 0 for STALE_APPROVAL, and the router return 0s before Stage 4. The stale-approved close basis added in #34282 lives in Stage 4 (_pir_parent_mutation_is_allowed ... close), so the scheduled single pass never reached it. The #34282 regression test called the Stage 4 helpers directly, not the router, so it missed this.
Follow-up fix: Stage 0b routes only an unmutated STALE_APPROVALparent-task issue (no NMR or persistent label) straight to Stage 4, skipping Stages 1–3. Stage 4 still re-reads live state per mutation. Close requires graph-backed children; nudges, phase filing, escalations and backfills stay blocked unless VERIFIED.
Verification: bash .agents/scripts/tests/test-pulse-issue-reconcile.sh includes test_stage0b_routes_stale_approved_parent_to_stage4, which drives the real _pir_reconcile_issue_stages body. It fails without the routing change (stale-parent:[]) and passes with it. Acceptance: after deploy, the pulse log shows Reconcile parent-task: closed #34180 / #34125 ... trust=stale-approved-terminal-close.
Activity
marcusquinn commentedon Oct 10, 2026
aidevops.sh v3.39.0 plugin for OpenCode v1.18.35 with claude-opus-5-5 spent 3h 27m and 336,556 tokens on this with the user in an interactive session.
[-]t18648: Approved external parent-task issues never auto-close after children complete (stale approval blocks terminal close)[/-][+]t18648: Approved external parent-task issues never auto-close after children complete...[/+]marcusquinn commentedon Oct 10, 2026
Reopening: PR #34282 fix is unreachable in the production loop
After #34282 merged and was deployed (
setup.sh --non-interactive, deployed module contains_PIR_PARENT_TRUST_STALE_APPROVED_CLOSE), #34180 and #34125 still stayed open. The pulse log kept printing on every cycle:Root cause: in
.agents/scripts/pulse-issue-reconcile.sh_pir_reconcile_issue_stages, Stage 0b (_action_reconcile_external_issue_gate) returns 0 forSTALE_APPROVAL, and the routerreturn 0s before Stage 4. The stale-approved close basis added in #34282 lives in Stage 4 (_pir_parent_mutation_is_allowed ... close), so the scheduled single pass never reached it. The #34282 regression test called the Stage 4 helpers directly, not the router, so it missed this.Follow-up fix: Stage 0b routes only an unmutated
STALE_APPROVALparent-taskissue (no NMR or persistent label) straight to Stage 4, skipping Stages 1–3. Stage 4 still re-reads live state per mutation. Close requires graph-backed children; nudges, phase filing, escalations and backfills stay blocked unless VERIFIED.Verification:
bash .agents/scripts/tests/test-pulse-issue-reconcile.shincludestest_stage0b_routes_stale_approved_parent_to_stage4, which drives the real_pir_reconcile_issue_stagesbody. It fails without the routing change (stale-parent:[]) and passes with it. Acceptance: after deploy, the pulse log showsReconcile parent-task: closed #34180/#34125 ... trust=stale-approved-terminal-close.aidevops.sh v3.39.0 plugin for OpenCode v1.18.35 with claude-opus-5-5
marcusquinn commentedon Oct 10, 2026
aidevops.sh v3.39.0 plugin for OpenCode v1.18.35 with claude-opus-5-5 spent 4h 2m and 426,594 tokens on this with the user in an interactive session.
github-actions commentedon Oct 10, 2026
Completed via PR #34284. Task t18648 merged to main.
aidevops.sh vunknown automated scan.