Run ward release composite-action jobs on aos dev-base #757

Closed
opened 2026-07-09 03:45:01 +00:00 by coilyco-ops · 3 comments
Member

Update ward's release workflow so jobs that run shared agentic-os release actions use the aos dev-base image where Forgejo Actions supports an explicit job image.

Context:

  • Kai recently asked for image-based actions/jobs to move onto the aos dev-base image.
  • coilysiren/agentic-os/actions/create-release@main is a composite action, so it cannot choose its own image. It runs inside the workflow job environment.
  • Ward release run 1130 hung in the create-release step, likely because the composite action fell back to package-manager setup or an unbounded API call inside a minimal runner image.

Acceptance criteria:

  • Update .forgejo/workflows/release.yml so the release job that invokes actions/create-release runs in the aos dev-base image, if the local Forgejo runner supports the needed container: syntax for runs-on: docker jobs.
  • Apply the same job-image treatment to other ward release jobs that benefit from the shared dev-base toolchain, without disrupting jobs that intentionally install a specific Go or Docker/buildx version.
  • If Forgejo cannot express this image selection for the current runner shape, document the blocker in the workflow comments and keep the composite-action hardening issue as the portable fallback.
  • Keep release semantics unchanged: tag bump, release creation, binary publishing, tap/scoop bumps, and kdl package publishing still behave as before.
  • Add bounded timeouts around the release-create step or job where appropriate so a silent dependency/API stall does not hold the release lane indefinitely.

Related: coilyco-flight-deck/agentic-os#354.

Update ward's release workflow so jobs that run shared agentic-os release actions use the aos dev-base image where Forgejo Actions supports an explicit job image. Context: * Kai recently asked for image-based actions/jobs to move onto the aos dev-base image. * `coilysiren/agentic-os/actions/create-release@main` is a composite action, so it cannot choose its own image. It runs inside the workflow job environment. * Ward release run 1130 hung in the create-release step, likely because the composite action fell back to package-manager setup or an unbounded API call inside a minimal runner image. Acceptance criteria: * Update `.forgejo/workflows/release.yml` so the release job that invokes `actions/create-release` runs in the aos dev-base image, if the local Forgejo runner supports the needed `container:` syntax for `runs-on: docker` jobs. * Apply the same job-image treatment to other ward release jobs that benefit from the shared dev-base toolchain, without disrupting jobs that intentionally install a specific Go or Docker/buildx version. * If Forgejo cannot express this image selection for the current runner shape, document the blocker in the workflow comments and keep the composite-action hardening issue as the portable fallback. * Keep release semantics unchanged: tag bump, release creation, binary publishing, tap/scoop bumps, and kdl package publishing still behave as before. * Add bounded timeouts around the release-create step or job where appropriate so a silent dependency/API stall does not hold the release lane indefinitely. Related: coilyco-flight-deck/agentic-os#354.
Author
Member

🔒 Reserved by ward agent --harness codex — container engineer-codex-ward-757 on host kais-macbook-pro-2.local is carrying this issue (reserved 2026-07-09T03:45:23Z). 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#757 · branch issue-757 · harness codex · workflow pr
  • Run: engineer-codex-ward-757 · ward v0.470.0 · dispatched 2026-07-09T03:45:23Z
  • 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.470.0).

— Codex, via ward agent

<!-- ward-agent-reservation --> 🔒 Reserved by `ward agent --harness codex` — container `engineer-codex-ward-757` on host `kais-macbook-pro-2.local` is carrying this issue (reserved 2026-07-09T03:45:23Z). 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#757` · branch `issue-757` · harness `codex` · workflow `pr` - **Run:** `engineer-codex-ward-757` · ward `v0.470.0` · dispatched `2026-07-09T03:45:23Z` - **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.470.0). </details> <!-- ward-agent-signature --> — Codex, via `ward agent`
Author
Member

WARD-OUTCOME: done - release jobs now run on the aos dev-base image and the release lane has a bounded timeout.
Review: skipped intentionally because --skip-preflight / --no-preflight also skips review.

This was a straightforward workflow edit once the runner docs confirmed jobs.<id>.container.image support. The only friction was the minimal container missing YAML helpers locally, but the repo’s pre-commit hook covered syntax cleanly after it bootstrapped. Confidence is high; the only thing worth watching is whether Forgejo keeps honoring container: on this runner shape.

WARD-OUTCOME: done - release jobs now run on the aos dev-base image and the release lane has a bounded timeout. Review: skipped intentionally because --skip-preflight / --no-preflight also skips review. This was a straightforward workflow edit once the runner docs confirmed `jobs.<id>.container.image` support. The only friction was the minimal container missing YAML helpers locally, but the repo’s pre-commit hook covered syntax cleanly after it bootstrapped. Confidence is high; the only thing worth watching is whether Forgejo keeps honoring `container:` on this runner shape.
Author
Member

⚠️ Reopened: this run's work did not land on main

An ephemeral ward container (codex mode) dispatched for this issue finished but its work was not merged to main, so the reaper preserved it on a branch before teardown and reopened the issue (a closing reference for #757 never reached main). Recover from the salvage branch below.

  • Repo: coilyco-flight-deck/ward
  • Salvage branch: ward-salvage/ward-94dd7346
  • Pull request: not opened - PR creation failed: forgejo: parse created pull request: unexpected end of JSON input
  • Reason: run workflow does not land on main (--workflow pr/patch-only)
  • Container uptime at reap: 3m (age of the baked Forgejo PAT snapshot; a long-lived container is likelier to carry a rotated token)

Reap diagnostics

--- reap diagnostics ---
ward version:      v0.470.0
version source:    pinned via WARD_VERSION/--ward-version (v0.470.0)
HEAD:              5a0dbe51970d
origin/main:       7e095cf862fe
ancestry:          HEAD is NOT yet on origin/main - residual work remains to land
decision gate:     workflow does not land on main (--workflow pr/patch-only)
reason:            run workflow does not land on main (--workflow pr/patch-only)
provenance:        not read (workflow hold)
run-owned landed:  no
working tree:      clean
container uptime:  3m (baked Forgejo PAT age proxy)
--- end reap diagnostics ---

Recover

git fetch https://forgejo.coilysiren.me/coilyco-flight-deck/ward.git ward-salvage/ward-94dd7346
git checkout -b ward-salvage/ward-94dd7346 FETCH_HEAD

— Codex, via ward agent

## ⚠️ Reopened: this run's work did not land on `main` An ephemeral `ward container` (codex mode) dispatched for this issue finished but its work was **not merged to `main`**, so the reaper preserved it on a branch before teardown and reopened the issue (a closing reference for #757 never reached `main`). Recover from the salvage branch below. - **Repo:** `coilyco-flight-deck/ward` - **Salvage branch:** `ward-salvage/ward-94dd7346` - **Pull request:** not opened - PR creation failed: forgejo: parse created pull request: unexpected end of JSON input - **Reason:** run workflow does not land on main (--workflow pr/patch-only) - **Container uptime at reap:** 3m (age of the baked Forgejo PAT snapshot; a long-lived container is likelier to carry a rotated token) ## Reap diagnostics ``` --- reap diagnostics --- ward version: v0.470.0 version source: pinned via WARD_VERSION/--ward-version (v0.470.0) HEAD: 5a0dbe51970d origin/main: 7e095cf862fe ancestry: HEAD is NOT yet on origin/main - residual work remains to land decision gate: workflow does not land on main (--workflow pr/patch-only) reason: run workflow does not land on main (--workflow pr/patch-only) provenance: not read (workflow hold) run-owned landed: no working tree: clean container uptime: 3m (baked Forgejo PAT age proxy) --- end reap diagnostics --- ``` ## Recover ```bash git fetch https://forgejo.coilysiren.me/coilyco-flight-deck/ward.git ward-salvage/ward-94dd7346 git checkout -b ward-salvage/ward-94dd7346 FETCH_HEAD ``` <!-- 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#757
No description provided.