Repository navigation
srv1 deploy plan: record Phase A delivered, activation unverified, defect open - #8040
Merged
Merged
Conversation
…e resume trigger The header said "DIAGNOSIS, no fix landed". Two PRs have since merged out of this diagnosis, so the header was actively misleading: a reader would conclude none of it was addressed, and a future agent would re-derive work that exists. Delivered, with merge SHAs verified as ancestors of main: Phase A (#7909, d409b75) binds one release revision at process launch, publishes revision and surface identity separately on /healthz, admits the candidate checkout before any host mutation, and compares readiness against the admitted candidate rather than a re-rendered expectation. #7990 (36dbd71) removed the ensure_is_converged declaration homonym and is namespace hygiene, not deploy correctness — recorded as such so it is not later miscounted as progress on this defect. What is NOT delivered is stated at the same volume, because the gap between "merged" and "live" is exactly where this lane's false greens came from. Phase A is in main but not established as live on srv1: deploy_dashboard_srv1 declares needs:[ci] and fires only on a main push, so a failing main ci skips it and a workflow_dispatch cannot activate it at all. The activation receipt is enumerated field by field, including the count of older queued deployments still eligible to run — because one successful identity-capable deploy is not durable activation while a pre-Phase-A job can still reinstall the old unit. Until that receipt exists, ReleaseRevisionAbsent is the honest reading of the live process. The original defect is recorded as still open. Phase A makes deployed identity observable; it does not serialize deployment, retain candidates, prevent rollback, or converge on the tip. Phase B is written as a quarry map rather than a rebase plan, naming #7802's exact head, the modules that survive (flock, lease, coordination, the witness matrix), the pieces that must dissolve rather than transplant (the receipt-authoritative revision model), the required production ordering, the wet acceptance gates, and the resume trigger. That is what a future agent needs to restart without replaying a transcript. Nothing here regenerates ROADMAP.md or DESIGN.md: both are generated artifacts and neither carries this lane. This doc is its registered home, bound through doc_graph_roots HandAuthoredDocBind to gunbc.ci_spec gunbc_ci_deploy_srv1_stage, and that bind's dissolution trigger correctly stays unmet — two of its four findings (the host-side lease, the diagnostic substitution) are still open.
…shes skipped, 0 ran The activation section assumed Phase A was waiting on a pre-Phase-A deploy queue to drain. Measurement says otherwise: across the last 40 main-push runs deploy_dashboard_srv1 was skipped 38 times and ran zero times, with no successes and no failures in the sample. The skipped records carry 0 steps and started_at == completed_at, which is a job-level if: evaluating false rather than a queued or cancelled job. Two candidate causes are eliminated by execution rather than by reading. A failing main ci is not it — two push runs on main with ci: success still skipped the deploy. The event and ref are not it either — the API reports event=push and head_branch=main for those runs, and the job condition is byte-identical at three separate commits and true on its face. The cause is deliberately NOT named. Guessing a root cause is the failure this document exists to prevent, and an eliminated candidate is worth more than a plausible story. What is recorded is the observation, the two eliminations, and the consequence: Phase A cannot activate by waiting, so diagnosing this skip is the first Phase B prerequisite, ahead of any code work.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Docs-only. Updates the registered home for this lane so the wind-down state is durable without replaying a transcript.
The header read
Status: DIAGNOSIS, no fix landed. Two PRs have merged out of this diagnosis since, so that line was actively misleading — a reader would conclude nothing was addressed and re-derive existing work.Delivered (merge SHAs verified as ancestors of main):
d409b75f7fc— release revision bound at process launch,revisionandsurface_bundle_identitypublished separately on/healthz, candidate checkout admitted before host mutation (including the ignored-path axis found in review), readiness compared against the admitted candidate.36dbd71a31d—ensure_is_convergedhomonym removed. Recorded explicitly as namespace hygiene, not deploy correctness, so it is not later miscounted as progress on this defect.Not delivered, stated at the same volume — the gap between merged and live is where this lane's false greens came from. Phase A is in main but not established live on srv1:
deploy_dashboard_srv1declaresneeds: [ci]and fires only on a main push, so a failing mainciskips it andworkflow_dispatchcannot activate it. The activation receipt is enumerated field by field, including the count of older queued deploys still eligible to run — one successful identity-capable deploy is not durable activation while a pre-Phase-A job can still reinstall the old unit. Until thenReleaseRevisionAbsentis the honest reading of the live process.Original defect recorded as open. Phase A makes deployed identity observable; it does not serialize deployment, retain candidates, prevent rollback, or converge on the tip.
Phase B written as a quarry map, not a rebase plan — #7802's exact head, what survives (flock, lease, coordination, the witness matrix), what must dissolve rather than transplant (the receipt-authoritative revision model), the required production ordering, the wet acceptance gates, and the resume trigger.
Deliberately does not touch ROADMAP.md or DESIGN.md: both are generated artifacts, neither carries this lane, and regenerating costs a full graph run. The
HandAuthoredDocBinddissolution trigger stays unmet — two of its four findings (host-side lease, diagnostic substitution) remain open.🤖 Generated with Claude Code