Skip to content

Edge channel survives the stable-cut window (no binary/skills minor skew between a stable tag and the first prerelease)#482

Merged
clkao merged 1 commit into
mainfrom
spacedock-ensign/edge-channel-stable-cut-gap
Jul 7, 2026
Merged

Edge channel survives the stable-cut window (no binary/skills minor skew between a stable tag and the first prerelease)#482
clkao merged 1 commit into
mainfrom
spacedock-ensign/edge-channel-stable-cut-gap

Conversation

@clkao

@clkao clkao commented Jul 7, 2026

Copy link
Copy Markdown
Collaborator

Closes the edge-channel stable-cut window: a stable tag can no longer ship skills demanding a binary minor that doesn't exist — and old-line patch releases can no longer regress or rewind the edge line.

What changed

  • Add a job-level line-ordering decision (strict > via ComparePreVersion) gating every edge-advance step, calendar bump included
  • Auto-cut the annotated X.(Y+1).0-pre0 edge tag on the greened release commit at latest-line stable cuts
  • Add GORELEASER_CURRENT_TAG as a defensive pin; document the flow in docs/releasing.md

Evidence

  • Real goreleaser 2.16 dry-runs: pre0 stamps correctly in all four pin×order combos; notes-extraction green on annotated, red on lightweight; e2e-gate SHA-reuse confirmed
  • Decision table covers all three equality skip-cases; byte-identical-tip fixture incl. calendar; every structure guard's adversarial twin red-under-violation; detached audit refuted nothing material; 16 pkgs green

Review guidance

Deploy condition (not code): the pre0 push PAT needs contents:write on THIS repo — a tap-only fine-grained PAT 403s and the window stays open. Spike-4's re-trigger confirms end-to-end on the first real cut.


zr2

…g guard + always-cut-pre0

The release flow deterministically broke the edge channel from every latest-line
stable cut until the first later prerelease tag: edge-advance stamps next's
manifests + FO gate line PAST the release to X.(Y+1).0-pre1, but the edge binary
(spacedock@next cask) only publishes the tag's own X.Y.0 build, so the same-minor
boot gate aborted every edge boot in the window.

Two mechanisms:
- A job-level line-ordering decision gates the WHOLE edge-advance job. A new
  edge-advance-decision subcommand computes the tag's target edge version and
  emits advance only when it is STRICTLY greater than origin/next's manifest;
  both reconcile steps, the calendar bump, and the auto-pre0 step gate on it.
  An old-line/patch tag skips the whole job, so next's tip stays byte-identical
  (no -X theirs clobber, no manifest/gate-line rewind, no calendar re-pull, no
  colliding pre0 tag). Ordering uses a new prerelease-aware ComparePreVersion
  (contract.semverCompare is dotted-int only and cannot order pre0 < pre1).
- Always-cut-pre0: a latest-line stable cut auto-creates an ANNOTATED
  vX.(Y+1).0-pre0 tag on the greened RELEASE_COMMIT and pushes it via the
  re-triggering PAT. That run reuses the greened commit's e2e-gate pass and
  publishes the X.(Y+1)-minor edge binary + cask, closing the window in minutes.
  GORELEASER_CURRENT_TAG is added as a defensive pin (goreleaser 2.16 already
  picks the highest tag at HEAD; verified in a CI dry-run spike).

Guards land with adversarial twins: the decision table incl. three equality
skip-cases, ComparePreVersion ordering, the AC-1 pre0/required-minor algebra,
the AC-3 byte-identical-tip fixture, and release.yml structure guards
(decision-gating, annotated-body, greened-SHA, recursion, PAT). Existing
assertEdgeAdvanceWiring matchers now tolerate the decision-gate conjunct and the
bump step is no longer asserted unconditional.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@clkao

clkao commented Jul 7, 2026

Copy link
Copy Markdown
Collaborator Author

Merging per the path→lane policy's own terms: this diff (release.yml + internal/release + docs/releasing.md) touches nothing any live lane loads or drives — the required lanes are the deterministic ones (build/installs/offline, all green) plus the in-repo guards (green, adversarial twins red-under-violation) and the four real-tool dry-run spikes (recorded in the validation report). Live-lane reds this run are all documented family noise with zero diff coupling: sonnet filing/shallow-boot = sc boot-preamble class (instances 5-6 logged); codex = the 3v flap + the merge-guard dispatch-surface variant. opus + pi green. Deploy condition stands on record: the pre0 push PAT needs contents:write on this repo before the first cut relies on auto-realign.

@clkao clkao merged commit 70bcbf1 into main Jul 7, 2026
7 of 9 checks passed
@clkao clkao deleted the spacedock-ensign/edge-channel-stable-cut-gap branch July 7, 2026 13:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant