Exclude closed issues from director dispatch proposals #1381

Closed
opened 2026-07-15 10:12:56 +00:00 by coilyco-ops · 3 comments
Member

Problem

During the milestone 9 director heartbeat on 2026-07-15, ward agent director --burndown --repo coilyco-flight-deck/ward --dry-run proposed dispatching issues that are already closed. Examples in the dry-run output included #1346, #1342, #1344, and #1347, each shown as queued or safe-to-redispatch even though ward ops forgejo issue view reports them closed.

This makes the burndown queue noisy and risks wasting engineer slots if a director follows the proposal without independently checking each issue state.

Acceptance

  • Director backlog/dry-run output excludes closed issues from queued and safe-to-redispatch headless dispatch proposals.
  • Add regression coverage for a closed issue that still has stale reservation or cleanup metadata.
  • Keep real open stale reservations visible with their current remediation state.
  • Verify ward agent director --burndown --repo coilyco-flight-deck/ward --dry-run no longer proposes closed issues as dispatchable.

Related observed closed examples: #1346, #1342, #1344, #1347.

## Problem During the milestone 9 director heartbeat on 2026-07-15, `ward agent director --burndown --repo coilyco-flight-deck/ward --dry-run` proposed dispatching issues that are already closed. Examples in the dry-run output included #1346, #1342, #1344, and #1347, each shown as queued or safe-to-redispatch even though `ward ops forgejo issue view` reports them closed. This makes the burndown queue noisy and risks wasting engineer slots if a director follows the proposal without independently checking each issue state. ## Acceptance - Director backlog/dry-run output excludes closed issues from queued and safe-to-redispatch headless dispatch proposals. - Add regression coverage for a closed issue that still has stale reservation or cleanup metadata. - Keep real open stale reservations visible with their current remediation state. - Verify `ward agent director --burndown --repo coilyco-flight-deck/ward --dry-run` no longer proposes closed issues as dispatchable. Related observed closed examples: #1346, #1342, #1344, #1347.
Author
Member

WARDED_WORKFLOW: reservation-held

reservation details

Holder: launch intent for container engineer-codex-ward-1381 on host kais-macbook-pro-2.local.

Accepted by ward agent --harness codex (reserved 2026-07-15T10:22:04Z). Concurrent ward agent runs are blocked until this intent becomes visible or the intent is released. The stale-intent fallback is still TTL-bounded (3h TTL). --override-reservation overrides.

Do not comment on or edit this issue to steer the run while it is reserved. The engineer seeded the body once at launch and never re-reads it, so a comment or edit reaches only human readers, never the running engineer. A correction goes to a new issue, dispatched fresh. That is the only channel that reaches a run in flight. Where the forge supports it, ward locks this conversation to make that a road-block rather than a convention (ward#494).

run seed context — what this run is carrying (ward#609)
  • Resolved: coilyco-flight-deck/ward#1381 · branch issue-1381 · harness codex · workflow pull-request-and-merge
  • Run: engineer-codex-ward-1381 · ward v0.710.0 · dispatched 2026-07-15T10:21:58Z
  • Comment thread: 0 included in the pre-flight read, 0 stripped (ward's own automated comments).

Static container doctrine and seed boilerplate are identical every run and omitted here (they ride ward v0.710.0).

— Codex, via ward agent

<!-- ward-agent-reservation --> WARDED_WORKFLOW: reservation-held <details><summary>reservation details</summary> Holder: launch intent for container `engineer-codex-ward-1381` on host `kais-macbook-pro-2.local`. Accepted by `ward agent --harness codex` (reserved 2026-07-15T10:22:04Z). Concurrent `ward agent` runs are blocked until this intent becomes visible or the intent is released. The stale-intent fallback is still TTL-bounded (3h TTL). `--override-reservation` overrides. **Do not comment on or edit this issue to steer the run while it is reserved.** The engineer seeded the body once at launch and never re-reads it, so a comment or edit reaches only human readers, never the running engineer. A correction goes to a **new issue, dispatched fresh**. That is the only channel that reaches a run in flight. Where the forge supports it, ward locks this conversation to make that a road-block rather than a convention (ward#494). <details><summary>run seed context — what this run is carrying (ward#609)</summary> - **Resolved:** `coilyco-flight-deck/ward#1381` · branch `issue-1381` · harness `codex` · workflow `pull-request-and-merge` - **Run:** `engineer-codex-ward-1381` · ward `v0.710.0` · dispatched `2026-07-15T10:21:58Z` - **Comment thread:** 0 included in the pre-flight read, 0 stripped (ward's own automated comments). Static container doctrine and seed boilerplate are identical every run and omitted here (they ride ward v0.710.0). </details> </details> <!-- ward-agent-signature --> — Codex, via `ward agent`
Author
Member

WARDED_WORKFLOW: #1386

details

workflow: pull-request-and-merge; review summary: skipped (review gate intentionally skipped because the temporary ward default is pending brokered QA)

implemented closed-issue suppression in the director refresh path, plus regression coverage for stale closed metadata and a dry-run rendering check.

retrospective: the fix stayed narrow; the only surprise was that the repo needed its mirrored defaults asset synced locally before go test could compile.

confidence: high.

surprises: Forgejo briefly reported the PR as pending even after branch push; it settled green without branch changes.

follow-ups: none.

WARDED_WORKFLOW: https://forgejo.coilysiren.me/coilyco-flight-deck/ward/pulls/1386 <details><summary>details</summary> workflow: pull-request-and-merge; review summary: skipped (review gate intentionally skipped because the temporary ward default is pending brokered QA) implemented closed-issue suppression in the director refresh path, plus regression coverage for stale closed metadata and a dry-run rendering check. retrospective: the fix stayed narrow; the only surprise was that the repo needed its mirrored defaults asset synced locally before `go test` could compile. confidence: high. surprises: Forgejo briefly reported the PR as pending even after branch push; it settled green without branch changes. follow-ups: none. </details>
Author
Member

QA follow-up: PASS. PR #1386 merged at eb699a8cfc. PR test run 8465 succeeded; promote 8467 succeeded; release 8469 succeeded.

Evidence checked:

  • Closed headless issues in queued or safe-to-redispatch states are re-read from the tracker and demoted to blocked with issue-closed outcome text before dispatch proposals are rendered.
  • Open stale reservations remain dispatchable, and fresh reservations remain waiting-reaper, so the fix does not hide real open work.
  • TestBacklogRefreshClosedIssueStates covers closed stale reservation metadata and open/fresh reservation preservation.
  • TestBacklogPrintPlannedSkipsBlockedClosedIssue covers dry-run dispatch preview suppression.
  • Command smoke test from current source, isolated HOME, and a scratch config bundle returned successfully and did not include the observed closed examples #1346, #1342, #1344, or #1347 in the captured dry-run output.

The issue criteria are met; no follow-up issue needed.

QA follow-up: PASS. PR #1386 merged at eb699a8cfcbad67a29f9596ec8fe6dbbf10fa27f. PR test run 8465 succeeded; promote 8467 succeeded; release 8469 succeeded. Evidence checked: - Closed headless issues in `queued` or `safe-to-redispatch` states are re-read from the tracker and demoted to `blocked` with `issue-closed` outcome text before dispatch proposals are rendered. - Open stale reservations remain dispatchable, and fresh reservations remain `waiting-reaper`, so the fix does not hide real open work. - `TestBacklogRefreshClosedIssueStates` covers closed stale reservation metadata and open/fresh reservation preservation. - `TestBacklogPrintPlannedSkipsBlockedClosedIssue` covers dry-run dispatch preview suppression. - Command smoke test from current source, isolated HOME, and a scratch config bundle returned successfully and did not include the observed closed examples `#1346`, `#1342`, `#1344`, or `#1347` in the captured dry-run output. The issue criteria are met; no follow-up issue needed.
Sign in to join this conversation.
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#1381
No description provided.