Gate release retagging on draft image availability #572

Closed
opened 2026-07-15 09:01:05 +00:00 by coilyco-ops · 2 comments
Member

Release head d1ca18e7e53ed1918f0f0571f374a53985a21ed9 promoted successfully, but release run 1402 failed while draft publishing was still in progress.

Evidence:

  • release branch moved to d1ca18e7e53ed1918f0f0571f374a53985a21ed9.
  • Promote run 1400 succeeded.
  • dev-base-publish.yml run 1401 was still running, blocked behind publish-core, when release.yml run 1402 failed.
  • release.yml run 1402 passed plan-release, then every retag tier failed: retag-core, retag-lang-node, retag-lang-go, retag-lang-dotnet, retag-ops, retag-agent, and retag-full.
  • The final release job was skipped.
  • The representative failing step is ./actions/publish-dev-base-tier in retag-core job index 1.

This appears to be a race between draft image publishing and release retagging. The recovery path for the current release may be to rerun release.yml after dev-base-publish.yml finishes, but the workflow should not be able to fail this way.

Acceptance:

  • release.yml only retags after the required draft image tags are available, or it waits/retries per tier until they exist.
  • A missing draft image produces isolated tier retry behavior instead of failing all retag jobs immediately.
  • Workflow-shape or script tests cover the ordering/wait behavior.
  • PR CI is green.
Release head `d1ca18e7e53ed1918f0f0571f374a53985a21ed9` promoted successfully, but release run `1402` failed while draft publishing was still in progress. Evidence: * `release` branch moved to `d1ca18e7e53ed1918f0f0571f374a53985a21ed9`. * Promote run `1400` succeeded. * `dev-base-publish.yml` run `1401` was still running, blocked behind `publish-core`, when `release.yml` run `1402` failed. * `release.yml` run `1402` passed `plan-release`, then every retag tier failed: `retag-core`, `retag-lang-node`, `retag-lang-go`, `retag-lang-dotnet`, `retag-ops`, `retag-agent`, and `retag-full`. * The final `release` job was skipped. * The representative failing step is `./actions/publish-dev-base-tier` in `retag-core` job index 1. This appears to be a race between draft image publishing and release retagging. The recovery path for the current release may be to rerun `release.yml` after `dev-base-publish.yml` finishes, but the workflow should not be able to fail this way. Acceptance: * `release.yml` only retags after the required draft image tags are available, or it waits/retries per tier until they exist. * A missing draft image produces isolated tier retry behavior instead of failing all retag jobs immediately. * Workflow-shape or script tests cover the ordering/wait behavior. * PR CI is green.
Author
Member

WARDED_WORKFLOW: reservation-held

reservation details

Holder: launch intent for container engineer-codex-agentic-os-572 on host kais-macbook-pro-2.local.

Accepted by ward agent --harness codex (reserved 2026-07-15T09:01:21Z). 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/agentic-os#572 · branch issue-572 · harness codex · workflow pull-request-and-merge
  • Run: engineer-codex-agentic-os-572 · ward v0.697.0 · dispatched 2026-07-15T09:01:17Z
  • 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.697.0).

— Codex, via ward agent

<!-- ward-agent-reservation --> WARDED_WORKFLOW: reservation-held <details><summary>reservation details</summary> Holder: launch intent for container `engineer-codex-agentic-os-572` on host `kais-macbook-pro-2.local`. Accepted by `ward agent --harness codex` (reserved 2026-07-15T09:01:21Z). 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/agentic-os#572` · branch `issue-572` · harness `codex` · workflow `pull-request-and-merge` - **Run:** `engineer-codex-agentic-os-572` · ward `v0.697.0` · dispatched `2026-07-15T09:01:17Z` - **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.697.0). </details> </details> <!-- ward-agent-signature --> — Codex, via `ward agent`
Author
Member

WARDED_WORKFLOW: #574

details workflow: pull-request-and-merge; review summary: skipped because the temporary ward default pending brokered QA made the in-container review gate intentionally skipped retrospective: the retag helper stayed small, but the source-probe stub had to be updated before the new wait path would stop hanging the test confidence: high surprises: the old retag test needed its draft-image probe mocked once the wait loop landed follow-ups: none
WARDED_WORKFLOW: https://forgejo.coilysiren.me/coilyco-flight-deck/agentic-os/pulls/574 <details><summary>details</summary> workflow: pull-request-and-merge; review summary: skipped because the temporary ward default pending brokered QA made the in-container review gate intentionally skipped retrospective: the retag helper stayed small, but the source-probe stub had to be updated before the new wait path would stop hanging the test confidence: high surprises: the old retag test needed its draft-image probe mocked once the wait loop landed follow-ups: none </details> <!-- ward-agent-signature -->
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/agentic-os#572
No description provided.