Stabilize async broker visibility failure tests in the promote gate #1531

Closed
opened 2026-07-23 08:22:11 +00:00 by coilyco-ops · 4 comments
Owner

Failure

Forgejo Actions run 2387, job 0, attempt 2 failed in the go test step:

https://forgejo.coilysiren.me/coilyco-flight-deck/ward/actions/runs/2387/jobs/0/attempt/2

The failures are:

  • TestStartHostDispatchBrokerRequestReportsMissingEngineerVisibilityAsynchronously: the summary still said outcome: in-progress when the assertion expected outcome: failed-before-container.
  • TestStartHostDispatchBrokerRequestReportsCrossOwnerVisibilityCollisionAsynchronously: the summary did not yet contain the director-surface follow-up command.

Attempt 1 passed the same go test ./... command, and the pull-request test run for the commit was green. This is a timing race between the detached launch failure path and the test's immediate summary read, not a deterministic product regression.

The Telegram failure step also hit an SSL handshake timeout. That is secondary and did not cause the test failure.

Scope

  • Make the async broker failure tests synchronize on the durable terminal state they assert.
  • Prefer an explicit completion signal, polling helper with a bounded deadline, or another deterministic seam over a fixed sleep.
  • Preserve the production contract that broker launch requests detach promptly.
  • If the production path can expose an incomplete summary after the failure is otherwise observable, close that ordering gap and cover it.
  • Run the focused tests repeatedly, then the full Ward test gate.

Acceptance

  • Both named tests pass reliably under repeated execution.
  • The tests still prove failed-before-container and the follow-up command are persisted.
  • Broker detachment semantics are unchanged.
  • The full go test ./... gate is green.
## Failure Forgejo Actions run 2387, job 0, attempt 2 failed in the `go test` step: https://forgejo.coilysiren.me/coilyco-flight-deck/ward/actions/runs/2387/jobs/0/attempt/2 The failures are: - `TestStartHostDispatchBrokerRequestReportsMissingEngineerVisibilityAsynchronously`: the summary still said `outcome: in-progress` when the assertion expected `outcome: failed-before-container`. - `TestStartHostDispatchBrokerRequestReportsCrossOwnerVisibilityCollisionAsynchronously`: the summary did not yet contain the director-surface follow-up command. Attempt 1 passed the same `go test ./...` command, and the pull-request test run for the commit was green. This is a timing race between the detached launch failure path and the test's immediate summary read, not a deterministic product regression. The Telegram failure step also hit an SSL handshake timeout. That is secondary and did not cause the test failure. ## Scope - Make the async broker failure tests synchronize on the durable terminal state they assert. - Prefer an explicit completion signal, polling helper with a bounded deadline, or another deterministic seam over a fixed sleep. - Preserve the production contract that broker launch requests detach promptly. - If the production path can expose an incomplete summary after the failure is otherwise observable, close that ordering gap and cover it. - Run the focused tests repeatedly, then the full Ward test gate. ## Acceptance - Both named tests pass reliably under repeated execution. - The tests still prove `failed-before-container` and the follow-up command are persisted. - Broker detachment semantics are unchanged. - The full `go test ./...` gate is green.
Author
Owner

WARD-WORKFLOW: blocked 🛑

details

manual close/update snapshot at 2026-07-25T02:55:30Z is newer than the latest ward acknowledgement at 2026-07-25T02:48:16Z

This action is blocked until the feedback is visibly acknowledged.

— Codex, via ward agent

WARD-WORKFLOW: blocked 🛑 <details><summary>details</summary> manual close/update snapshot at 2026-07-25T02:55:30Z is newer than the latest ward acknowledgement at 2026-07-25T02:48:16Z This action is blocked until the feedback is visibly acknowledged. </details> <!-- ward-agent-signature --> — Codex, via `ward agent`
Author
Owner

WARD-WORKFLOW: #1556

details

Review gate intentionally skipped because of the temporary Ward default pending brokered QA.

workflow: pull-request-and-merge; review summary: skipped: temporary Ward default pending brokered QA

Felt straightforward once the async boundary was named. Confidence: high. Surprise: the native merge guard required a fresh workflow acknowledgement after PR creation. Follow-ups: none.

WARD-WORKFLOW: https://forgejo.coilysiren.me/coilyco-flight-deck/ward/pulls/1556 <details><summary>details</summary> Review gate intentionally skipped because of the temporary Ward default pending brokered QA. workflow: pull-request-and-merge; review summary: skipped: temporary Ward default pending brokered QA Felt straightforward once the async boundary was named. Confidence: high. Surprise: the native merge guard required a fresh workflow acknowledgement after PR creation. Follow-ups: none. </details>
Author
Owner

WARD-WORKFLOW: reservation-released

release details

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

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

Outcome summary: #1556

— 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/1556`. `ward container reap` released container `engineer-codex-ward-1531` (`--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/1556 </details> <!-- ward-agent-signature --> — Codex, via `ward agent`
Author
Owner

WARD-WORKFLOW: reservation-released

release details

Run never started. ward container reap released container engineer-codex-ward-1531 (--harness codex): it exited without launching the agent (smoke-test death, ward#222/#264/#595), so it did no work and the launch intent it took is retracted. Nothing is running on this issue. It needs re-dispatch. A ward agent director re-queues it automatically. A manual ward agent retry no longer needs --override-reservation.

— Codex, via ward agent

<!-- ward-agent-reservation-released --> <!-- ward-needs-redispatch --> WARD-WORKFLOW: reservation-released <details><summary>release details</summary> Run never started. `ward container reap` released container `engineer-codex-ward-1531` (`--harness codex`): it exited without launching the agent (smoke-test death, ward#222/#264/#595), so it did no work and the launch intent it took is retracted. Nothing is running on this issue. It needs re-dispatch. A `ward agent director` re-queues it automatically. A manual `ward agent` retry no longer needs `--override-reservation`. </details> <!-- ward-agent-signature --> — Codex, via `ward agent`
Commenting is not possible because the repository is archived.
No milestone
No project
No assignees
1 participant
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#1531
No description provided.