Replace retry-only ward:release publish repair with daemon-independent aliasing #1459

Closed
opened 2026-07-15 13:53:06 +00:00 by coilyco-ops · 2 comments
Member

Problem

PR #1458 for #1454 does not repair the actual promote failure from run 8610 / UI run #2303. The observed failure was not a transient registry push hiccup; the job container could not reach Docker at all:

Login Succeeded
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

The current #1458 patch only wraps the same docker login / docker pull / docker tag / docker push / docker manifest inspect sequence in three retries. If the runner context still lacks a Docker daemon socket, those retries will deterministically fail and forgejo.coilysiren.me/coilyco-flight-deck/ward:release will remain unpublished.

Acceptance

  • Replace the retry-only repair with a daemon-independent alias publish path, or explicitly move the alias publish step to a runner context where Docker is available.
  • Preserve the release workflow check that fails if ward:release is missing.
  • Prove the fix by getting the post-merge promote path green and confirming docker manifest inspect forgejo.coilysiren.me/coilyco-flight-deck/ward:release succeeds.
  • Confirm the subsequent release.yml run passes through alias verification.
  • Do not rely on retrying a missing Docker daemon as the repair.

Related: #1454, #1458, #1455, #1447, run 8610 / #2303.

## Problem PR #1458 for #1454 does not repair the actual promote failure from run 8610 / UI run #2303. The observed failure was not a transient registry push hiccup; the job container could not reach Docker at all: ```text Login Succeeded Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? ``` The current #1458 patch only wraps the same `docker login` / `docker pull` / `docker tag` / `docker push` / `docker manifest inspect` sequence in three retries. If the runner context still lacks a Docker daemon socket, those retries will deterministically fail and `forgejo.coilysiren.me/coilyco-flight-deck/ward:release` will remain unpublished. ## Acceptance - Replace the retry-only repair with a daemon-independent alias publish path, or explicitly move the alias publish step to a runner context where Docker is available. - Preserve the release workflow check that fails if `ward:release` is missing. - Prove the fix by getting the post-merge promote path green and confirming `docker manifest inspect forgejo.coilysiren.me/coilyco-flight-deck/ward:release` succeeds. - Confirm the subsequent `release.yml` run passes through alias verification. - Do not rely on retrying a missing Docker daemon as the repair. Related: #1454, #1458, #1455, #1447, run 8610 / #2303.
Author
Member

WARDED_WORKFLOW: reservation-held

reservation details

Holder: launch intent for container engineer-codex-ward-1459 on host kais-macbook-pro-2.local.

Accepted by ward agent --harness codex (reserved 2026-07-15T13:53:37Z). 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/ward#1459 · branch issue-1459 · harness codex · workflow pull-request-and-merge
  • Run: engineer-codex-ward-1459 · ward v0.710.0 · dispatched 2026-07-15T13:53:30Z
  • 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.710.0).

— Codex, via ward agent

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

WARDED_WORKFLOW: #1461

details

workflow: pull-request-and-merge; review summary: review gate intentionally skipped because the temporary ward default pending brokered QA
retrospective: the fix felt direct once the registry-copy path replaced the daemon-bound alias publish step
confidence: high
surprises: the Forgejo merge API accepted the squash merge cleanly after checks went green
follow-ups: none

WARDED_WORKFLOW: https://forgejo.coilysiren.me/coilyco-flight-deck/ward/pulls/1461 <details><summary>details</summary> workflow: pull-request-and-merge; review summary: review gate intentionally skipped because the temporary ward default pending brokered QA retrospective: the fix felt direct once the registry-copy path replaced the daemon-bound alias publish step confidence: high surprises: the Forgejo merge API accepted the squash merge cleanly after checks went green 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#1459
No description provided.