Fix main CI bootstrap asset download in tests #869

Closed
opened 2026-07-09 21:10:40 +00:00 by coilyco-ops · 2 comments
Member

Main is red after merging #868. The latest test run is run 1359 on main at b79a8bf048.

Failure:

This appears to come from the Go container bootstrap staging path introduced by the entrypoint.sh port. Unit tests now hit live Forgejo release assets for the current tag, which does not exist yet during push CI.

Acceptance:

  • Make the affected tests hermetic. Unit tests must not contact Forgejo releases/latest or download release assets.
  • Stub or inject the bootstrap binary staging/download path in tests, or make the test path use a local fixture.
  • Preserve real runtime behavior for container bootstrap binary staging.
  • Run ward exec test and ward exec lint.
  • Land the fix to main and verify the next main test run is green.

Refs: actions run 1359, job test, attempt 1.

Main is red after merging #868. The latest test run is run 1359 on main at b79a8bf048. Failure: - TestRunAgentAdvisorFreeformStaysLocal fails while trying to download https://forgejo.coilysiren.me/coilyco-flight-deck/ward/releases/download/v0.533.0/ward-linux-amd64 - TestWriteContainerAssetsStagesUnderHome fails the same way - Error: ward container: download Go bootstrap binary ... unexpected status 404 Not Found This appears to come from the Go container bootstrap staging path introduced by the entrypoint.sh port. Unit tests now hit live Forgejo release assets for the current tag, which does not exist yet during push CI. Acceptance: - Make the affected tests hermetic. Unit tests must not contact Forgejo releases/latest or download release assets. - Stub or inject the bootstrap binary staging/download path in tests, or make the test path use a local fixture. - Preserve real runtime behavior for container bootstrap binary staging. - Run ward exec test and ward exec lint. - Land the fix to main and verify the next main test run is green. Refs: actions run 1359, job test, attempt 1.
Author
Member

WARD-RESERVATION: held 🔒

reservation details

Holder: container engineer-codex-ward-869 on host kais-macbook-pro-2.local.

Reserved by ward agent --harness codex (reserved 2026-07-09T21:10:47Z). Concurrent ward agent runs are blocked until it finishes or the reservation goes stale (1h TTL). --force 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#869 · branch issue-869 · harness codex · workflow direct-to-main
  • Run: engineer-codex-ward-869 · ward v0.522.0 · dispatched 2026-07-09T21:10:47Z
  • 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.522.0).

— Codex, via ward agent

<!-- ward-agent-reservation --> WARD-RESERVATION: held 🔒 <details><summary>reservation details</summary> Holder: container `engineer-codex-ward-869` on host `kais-macbook-pro-2.local`. Reserved by `ward agent --harness codex` (reserved 2026-07-09T21:10:47Z). Concurrent `ward agent` runs are blocked until it finishes or the reservation goes stale (1h TTL). `--force` 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#869` · branch `issue-869` · harness `codex` · workflow `direct-to-main` - **Run:** `engineer-codex-ward-869` · ward `v0.522.0` · dispatched `2026-07-09T21:10:47Z` - **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.522.0). </details> </details> <!-- ward-agent-signature --> — Codex, via `ward agent`
Author
Member

WARD-OUTCOME: done

details workflow: direct-to-main; review summary: review gate skipped by ~/.ward/config.yaml default

retrospective: the fix felt narrow and stable. I stubbed the bootstrap staging seam in tests only, kept runtime download/build behavior intact, and verified both ward exec test and ward exec lint on the landed main tip.

confidence: high

surprises: none after tracing the shared writeContainerAssets path.

follow-ups: none

WARD-OUTCOME: done <details><summary>details</summary> workflow: direct-to-main; review summary: review gate skipped by ~/.ward/config.yaml default retrospective: the fix felt narrow and stable. I stubbed the bootstrap staging seam in tests only, kept runtime download/build behavior intact, and verified both `ward exec test` and `ward exec lint` on the landed `main` tip. confidence: high surprises: none after tracing the shared `writeContainerAssets` path. follow-ups: none </details>
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#869
No description provided.