Make stop --print honest for ghost launch records #1200

Closed
opened 2026-07-13 21:47:02 +00:00 by coilyco-ops · 2 comments
Member

Make ward agent stop --print distinguish ghost launch records from stoppable engineers.

Problem:

  • During the 2026-07-13 stale prelaunch incident, ward agent stop --print reported that several ghost records were stoppable:
    • coilyco-flight-deck/ward#1188
    • coilyco-flight-deck/ward#1195
    • coilyco-flight-deck/ward#1191
  • The real stop calls immediately failed with no running engineer container matches ... - nothing to stop.
  • That makes --print a false affordance. It confirms the operator can act, then the action fails.

Required behavior:

  • ward agent stop --print should use the same stoppability criteria as ward agent stop, not only the same label/ref resolution.
  • If a ref resolves only to a broker/prelaunch/ghost record and no running container, --print should say that explicitly:
    • not stoppable through ward agent stop
    • no running container exists
    • use the stale reservation cleanup path / reap / future stale-prelaunch override instead
  • If the target is a visible running container, --print should keep reporting the exact stop target.

Acceptance:

  • Tests cover a visible running engineer, a stale prelaunch record with no container, and an unknown ref.
  • --print and actual stop agree on whether the target is stoppable.
  • Docs/help text no longer imply that resolving a label is enough to stop a ghost launch record.

Related:

  • #1191 - dispatch architecture reflow
  • #1196 - override flags must recover stale prelaunch blockers
  • #1198 - manual stale reservation cleanup docs
Make `ward agent stop --print` distinguish ghost launch records from stoppable engineers. Problem: - During the 2026-07-13 stale prelaunch incident, `ward agent stop --print` reported that several ghost records were stoppable: - `coilyco-flight-deck/ward#1188` - `coilyco-flight-deck/ward#1195` - `coilyco-flight-deck/ward#1191` - The real stop calls immediately failed with `no running engineer container matches ... - nothing to stop`. - That makes `--print` a false affordance. It confirms the operator can act, then the action fails. Required behavior: - `ward agent stop --print` should use the same stoppability criteria as `ward agent stop`, not only the same label/ref resolution. - If a ref resolves only to a broker/prelaunch/ghost record and no running container, `--print` should say that explicitly: - not stoppable through `ward agent stop` - no running container exists - use the stale reservation cleanup path / reap / future stale-prelaunch override instead - If the target is a visible running container, `--print` should keep reporting the exact stop target. Acceptance: - Tests cover a visible running engineer, a stale prelaunch record with no container, and an unknown ref. - `--print` and actual `stop` agree on whether the target is stoppable. - Docs/help text no longer imply that resolving a label is enough to stop a ghost launch record. Related: - #1191 - dispatch architecture reflow - #1196 - override flags must recover stale prelaunch blockers - #1198 - manual stale reservation cleanup docs
Author
Member

WARD-OUTCOME: #1216

details

workflow: pull-request-and-merge; review summary: skipped - in-container review gate intentionally skipped because the temporary ward default pending brokered QA.

The implementation felt direct once the shared stop verdict helper was located. The main surprise was the docs/FEATURES.md size cap, so I had to trim inventory wording to keep the pre-commit gate green.

Confidence is high. Tests covered a visible running engineer, a ghost reservation with no container, and an unknown ref, and the PR checks are green.

Follow-ups: none.

WARD-OUTCOME: https://forgejo.coilysiren.me/coilyco-flight-deck/ward/pulls/1216 <details><summary>details</summary> workflow: pull-request-and-merge; review summary: skipped - in-container review gate intentionally skipped because the temporary ward default pending brokered QA. The implementation felt direct once the shared stop verdict helper was located. The main surprise was the `docs/FEATURES.md` size cap, so I had to trim inventory wording to keep the pre-commit gate green. Confidence is high. Tests covered a visible running engineer, a ghost reservation with no container, and an unknown ref, and the PR checks are green. Follow-ups: none. </details>
Author
Member

WARDED_WORKFLOW repair-request

PR 1216 is blocked by director review: #1216 (comment)

Repair scope:

  • Keep the existing PR branch issue-1200 and update PR 1216, do not open a duplicate PR.
  • Rebase or merge current main into the branch. PR 1216 is green but currently mergeable=false because main advanced after PR 1214 merged.
  • Preserve the current implementation and tests unless the rebase exposes a real conflict.
  • Re-run the ward test command and update PR 1216 when green and mergeable.
WARDED_WORKFLOW repair-request PR 1216 is blocked by director review: https://forgejo.coilysiren.me/coilyco-flight-deck/ward/pulls/1216#issuecomment-32530 Repair scope: - Keep the existing PR branch `issue-1200` and update PR 1216, do not open a duplicate PR. - Rebase or merge current `main` into the branch. PR 1216 is green but currently `mergeable=false` because main advanced after PR 1214 merged. - Preserve the current implementation and tests unless the rebase exposes a real conflict. - Re-run the ward test command and update PR 1216 when green and mergeable.
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#1200
No description provided.