Exclude closed completed issues from active dispatch-health failures #1576

Closed
opened 2026-07-28 02:45:16 +00:00 by coilyco-ops · 2 comments
Member

Outcome

ward agent dispatch-health must report current actionable lifecycle state. A closed issue with historical blocked or salvage markers must not remain an active failure after repository and tracker evidence show the work is complete.

Parent goal: #1574

Reproduction

On 2026-07-27, the goal run closed these completed issues with commit-level evidence:

Both issues had landed WARD-WORKFLOW: done records followed by false salvage or blocked records after their commits were already on main.

A fresh command after closure returned:

dispatch-health: queued=2 ... failed=3 running=0 ...
coilyco-flight-deck/ward#1443 -> blocked (issue is closed)
coilyco-flight-deck/ward#1526 -> blocked (issue is closed)

The command observes that each issue is closed, but it still promotes those records into the active failed count and signal.

Required behavior

  • Ward must exclude closed completed issues from active queued, failed, held, submitted, merge-ready, running, and cleanup-needed health counts.
  • Ward may retain historical terminal evidence in an explicitly historical field or diagnostic view, but that history must not trigger the active failed signal.
  • Ward must reconcile a stale blocked or salvage marker against live issue state before it aggregates health.
  • Ward must preserve real failures for open issues and closed-unmerged pull requests that still require recovery.
  • The director queue and dispatch-health surfaces must describe the same current lifecycle state for an issue, even when they expose different overall scopes.

Acceptance criteria

  • A closed issue with an older blocked marker and a newer or older done marker contributes zero active failures.
  • A closed issue whose commit already landed contributes zero active failures even when a false salvage comment is newest.
  • An open issue with the same blocked history remains failed or blocked.
  • A closed-unmerged pull request that requires recovery remains visible in the appropriate recovery state.
  • Re-running dispatch-health after closing the completed fixtures removes the active failed signal without deleting historical comments.
  • Ward's repository-declared vet, lint, test, and pre-commit validation passes.
  • Current Ward dispatch-health no longer reports #1443 or #1526 as active failures.

docs/FEATURES.md does not need a bugfix-only update.

Codex, via advisor surface

## Outcome `ward agent dispatch-health` must report current actionable lifecycle state. A closed issue with historical blocked or salvage markers must not remain an active failure after repository and tracker evidence show the work is complete. Parent goal: https://forgejo.coilysiren.me/coilyco-flight-deck/ward/issues/1574 ## Reproduction On 2026-07-27, the goal run closed these completed issues with commit-level evidence: * https://forgejo.coilysiren.me/coilyco-flight-deck/ward/issues/1443 * https://forgejo.coilysiren.me/coilyco-flight-deck/ward/issues/1526 Both issues had landed `WARD-WORKFLOW: done` records followed by false salvage or blocked records after their commits were already on `main`. A fresh command after closure returned: ```text dispatch-health: queued=2 ... failed=3 running=0 ... coilyco-flight-deck/ward#1443 -> blocked (issue is closed) coilyco-flight-deck/ward#1526 -> blocked (issue is closed) ``` The command observes that each issue is closed, but it still promotes those records into the active failed count and signal. ## Required behavior * Ward must exclude closed completed issues from active queued, failed, held, submitted, merge-ready, running, and cleanup-needed health counts. * Ward may retain historical terminal evidence in an explicitly historical field or diagnostic view, but that history must not trigger the active `failed` signal. * Ward must reconcile a stale blocked or salvage marker against live issue state before it aggregates health. * Ward must preserve real failures for open issues and closed-unmerged pull requests that still require recovery. * The director queue and dispatch-health surfaces must describe the same current lifecycle state for an issue, even when they expose different overall scopes. ## Acceptance criteria * A closed issue with an older blocked marker and a newer or older done marker contributes zero active failures. * A closed issue whose commit already landed contributes zero active failures even when a false salvage comment is newest. * An open issue with the same blocked history remains failed or blocked. * A closed-unmerged pull request that requires recovery remains visible in the appropriate recovery state. * Re-running dispatch-health after closing the completed fixtures removes the active failed signal without deleting historical comments. * Ward's repository-declared vet, lint, test, and pre-commit validation passes. * Current Ward dispatch-health no longer reports https://forgejo.coilysiren.me/coilyco-flight-deck/ward/issues/1443 or https://forgejo.coilysiren.me/coilyco-flight-deck/ward/issues/1526 as active failures. `docs/FEATURES.md` does not need a bugfix-only update. <!-- ward-agent-signature --> Codex, via advisor surface
Author
Member

WARD-WORKFLOW: #1579

details

workflow: pull-request; review summary: skipped (in-container review gate intentionally skipped because temporary ward default pending brokered QA)
implemented: dispatch-health now filters closed-complete issue refs out of active counts after checking live issue state
retrospective: the live filter was the clean fix; the only wrinkle was the container exporting WARD_HOST_GOOS=windows
confidence: high
surprises: WARD_HOST_GOOS had to be forced to linux for the repo test suite
follow-ups: none

WARD-WORKFLOW: https://forgejo.coilysiren.me/coilyco-flight-deck/ward/pulls/1579 <details><summary>details</summary> workflow: pull-request; review summary: skipped (in-container review gate intentionally skipped because temporary ward default pending brokered QA) implemented: dispatch-health now filters closed-complete issue refs out of active counts after checking live issue state retrospective: the live filter was the clean fix; the only wrinkle was the container exporting WARD_HOST_GOOS=windows confidence: high surprises: WARD_HOST_GOOS had to be forced to linux for the repo test suite follow-ups: none </details> <!-- ward-agent-signature -->
Author
Member

WARD-WORKFLOW: reservation-released

release details

Run finished with WARD-WORKFLOW: https://forgejo.coilysiren.me/coilyco-flight-deck/ward/pulls/1579.

ward container reap released container engineer-codex-ward-1576 (--harness codex): the terminal outcome supersedes the reservation, so a later redispatch no longer needs --override-reservation.

Outcome summary: #1579

— Codex, via ward agent

<!-- ward-agent-reservation-released --> WARD-WORKFLOW: reservation-released <details><summary>release details</summary> Run finished with `WARD-WORKFLOW: https://forgejo.coilysiren.me/coilyco-flight-deck/ward/pulls/1579`. `ward container reap` released container `engineer-codex-ward-1576` (`--harness codex`): the terminal outcome supersedes the reservation, so a later redispatch no longer needs `--override-reservation`. **Outcome summary:** https://forgejo.coilysiren.me/coilyco-flight-deck/ward/pulls/1579 </details> <!-- ward-agent-signature --> — Codex, via `ward agent`
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
coilyco-flight-deck/ward#1576
No description provided.