Releases are blocked: a dotnet image-push flake skips the release job, so no tag and no ward-specs bundle (stuck at v0.248.0) #490
Labels
No labels
burndown-2026-06
coherence-core
consult
headless
interactive
P0
P1
P2
P3
P4
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
coilyco-flight-deck/agentic-os#490
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
aos is not releasing right now
Latest tag is
v0.248.0. Main's HEAD (c75de6b) is untagged and unreleased.v0.249.0was computed but never created.Run 1127 (
release.yml, push torelease) failed inpublish-dev-base, step "Build and push (multi-arch)":The real defect: the tag is gated behind the image push
The job graph hard-chains them:
plan-releasecomputes the tag.publish-dev-base-needs: plan-release.release-needs: [plan-release, publish-dev-base].So
release, the job that creates the git tag, cuts the Forgejo release, and publishes the ward-specs bundle as a pinned, checksummed release asset, is skipped whenever the image publish fails. Those artifacts are cheap and deterministic. The thing gating them is the single most fragile step in the repo: a 7-tier, 2-arch container build-and-push (core,lang-node,lang-go,lang-dotnet,ops,agent,full) running under a 120-minute timeout with no retry. One transient registry blob error from the largest tier (dotnet) silently costs the release.This is backwards. An image-registry flake should cost a re-push of an image, not the version tag and the spec bundle that ward consumes.
Ask
1. Decouple the release artifacts from the image publish. Let
releaseproceed onplan-releasealone, so the tag, the Forgejo release, and the ward-specs bundle asset land regardless of whether an image tier flaked. Publishing images is a consequence of the tag, not a precondition for it. If some ordering must be preserved (for example the release notes want to reference pullable image tags), invert it: publish images after the tag, and let that job fail independently and loudly.2. Retry the image push. A multi-GB multi-arch push to a self-hosted registry will flake. Add bounded retries around the push in
scripts/dev-base-build.py(or the workflow step), per tier, so a single bad blob write does not fail the run. Prefer retrying only the failed tier over rebuilding all seven.3. Fail loudly, not silently. The Telegram alert exists but this still reached a state where main sat unreleased and nothing obviously surfaced it. Confirm the alert actually fired for run 1127. If it did not, fix that too, because a blocked release pipeline that nobody notices is how
v0.248.0becomes stale.4. Land the missing release. Once fixed, get
c75de6b(or whatever main is by then) tagged and released so the dev-base family and the ward-specs bundle are published from current main.Contributing factor worth checking
kai-server is at 87% disk (63 GB free of 515 GB). The Forgejo package registry stores these blobs, and the dev-base family is large and multi-arch.
error writing layer blob: unknownis consistent with storage pressure. Check whether the registry is up against a quota or the disk is squeezing it, and whether old dev-base tags are being retained forever. If every release keeps 7 tiers x 2 arches indefinitely, add a retention policy - that is a slow-motion outage otherwise.Context: this pipeline is new and has been red repeatedly
The last several main commits are all release-pipeline surgery, and main went fully red twice during it (runs 7426-7428 and 7435-7437 had
ci.yml,promote.yml, andmirror-to-github.ymlall three failing on the same push). It is green on ci/promote/mirror now, butrelease.ymlis still broken. Treat hardening this pipeline as the goal, not just clearing the one red run.Done condition
release.ymlis green on a push torelease, main's HEAD carries a version tag, the ward-specs bundle asset is published for it, and a forced failure of one image tier no longer prevents the tag and bundle from landing.WARD-RESERVATION: held 🔒
reservation details
Holder: container
engineer-claude-agentic-os-490on hostKAI-DESKTOP-TOWER.Reserved by
ward agent --harness claude(reserved 2026-07-13T04:07:47Z). Concurrentward agentruns are blocked until it finishes or the reservation goes stale (3h TTL).--override-reservationoverrides.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)
coilyco-flight-deck/agentic-os#490· branchissue-490· harnessclaude· workflowpull-request-and-mergeengineer-claude-agentic-os-490· wardv0.633.0· dispatched2026-07-13T04:07:47ZStatic container doctrine and seed boilerplate are identical every run and omitted here (they ride ward v0.633.0).
— Claude (she/her), via
ward agentClarification for the record (does not change the asks): the release cadence is healthy, not stale. v0.244 through v0.248 all landed 2026-07-10 to 2026-07-12, and v0.248.0 is roughly an hour old. aos publishes from the
releasebranch (promote.yml moves main torelease, release.yml triggers on push torelease), so "main is untagged" in the body is incidental -releaseandmainare both atc75de6b(ahead=0, behind=0), and the tag is cut onrelease.So this is one fresh failed release, not a chronically broken pipeline. Run 1127 on the
releasebranch lost v0.249.0 to a single transienterror writing layer blobon the dotnet tier. The three commits since v0.248.0 (c3b07e3,0354ab3,c75de6b) are the currently-unreleased ones.That sharpens the diagnosis rather than softening it: a pipeline that released five times in three days and then dropped a release to one flaky blob write is precisely the case for decoupling
releasefrompublish-dev-baseand retrying the push per tier. Fix the coupling and the retry, not a phantom staleness problem.