Skip to content

release: cut 1.13.4 with the fixed upgrade-proof launch probe - #266

Merged
sarthakagrawal927 merged 1 commit into
mainfrom
release/cut-1.13.4
Sep 6, 2026
Merged

sarthakagrawal927 merged 1 commit into
mainfrom
release/cut-1.13.4

Conversation

@sarthakagrawal927

Copy link
Copy Markdown
Member

Cuts v1.13.4 — the first tag that contains the #265 launch-probe fix.

Why a new version rather than re-running v1.13.3. release.yml passes source_ref: ${{ inputs.tag }} to the qualification workflow, so a workflow_dispatch against v1.13.3 checks out the tag as it was cut — which predates #265 — and would fail at the same Qualify isolated upgrade… step. v1.13.3 remains a draft with zero assets and is superseded by this cut.

Merging this bumps Shared.xcconfig, which triggers auto-release.yml: tag + draft release, explicit workflow_dispatch of release.yml, gh run watch --exit-status on the build, asset-manifest re-verification, and only then draft → published.

Refs #252, refs #253 — neither closes until assets are actually live.

v1.13.3 was cut before #265 landed. release.yml checks out `inputs.tag`
via `source_ref`, so re-dispatching v1.13.3 would run the pre-fix
qualify script and fail identically. 1.13.4 is the first tag that
contains the LaunchServices launch probe, so it is the first tag whose
release build can reach the upload job.

Refs #252, refs #253.
@sarthakagrawal927
sarthakagrawal927 merged commit 0f94109 into main Sep 6, 2026
16 of 17 checks passed
sarthakagrawal927 added a commit that referenced this pull request Sep 6, 2026
… both pipelines

PR #266 bumped only apps/macos/Config/Shared.xcconfig to 1.13.4, so the three
Rust crates, the "=<version>" pins between them, and Cargo.lock all stayed at
1.13.3. CI on main fails closed with:

  CodeVetter CLI qualification failed: CLI version mismatch:
    expected "codevetter 1.13.4", received "codevetter 1.13.3"

This is the third occurrence. 72b6b60 fixed the identical drift at 1.13.0 by
hand-bumping and cutting forward as 1.13.1. That patched the instance, not the
cause: the version still lived in four hand-edited places, so the next cut that
touched one of them reintroduced it.

Red CI is the lucky symptom. 72b6b60 explicitly recorded the dangerous one and
left it open: core:qualify-cli, which compares the built CLI's --version against
MARKETING_VERSION, runs only in ci.yml and never in the release qualification
path. A drifted cut could therefore sign, notarize, staple, and publish an app
whose bundled codevetter and codevetter-mcp companions reported the previous
version, with every release gate green.

scripts/sync-native-version.mjs makes MARKETING_VERSION the single source of
truth and derives everything else: CURRENT_PROJECT_VERSION (major*10000 +
minor*100 + patch, the encoding every release since 1.11.1 has used), the three
crate versions, the sibling "=<version>" pins, and the Cargo.lock entries. It
rewrites only what it owns -- the [package] version rather than every
dependency's version key, and pins keyed on a path = "../codevetter-*" sibling
so third-party exact pins like rmcp's "=2.2.0" are untouched. It fails closed on
a crate missing from the lockfile instead of silently skipping it.

pnpm version:check is wired into ci.yml, before lint, where it reports the bump
that caused the problem in about a second instead of the CLI symptom three
minutes in; and into native-production-qualification.yml before signing, which
closes the gap above so drift costs seconds rather than a notarization round
trip. 12 tests cover the encoding, the selective rewrites, drift detection, and
idempotence.

The crate bump in this commit is the script's own output, and is byte-identical
to what 72b6b60 did by hand.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
sarthakagrawal927 added a commit that referenced this pull request Sep 6, 2026
… both pipelines (#267)

PR #266 bumped only apps/macos/Config/Shared.xcconfig to 1.13.4, so the three
Rust crates, the "=<version>" pins between them, and Cargo.lock all stayed at
1.13.3. CI on main fails closed with:

  CodeVetter CLI qualification failed: CLI version mismatch:
    expected "codevetter 1.13.4", received "codevetter 1.13.3"

This is the third occurrence. 72b6b60 fixed the identical drift at 1.13.0 by
hand-bumping and cutting forward as 1.13.1. That patched the instance, not the
cause: the version still lived in four hand-edited places, so the next cut that
touched one of them reintroduced it.

Red CI is the lucky symptom. 72b6b60 explicitly recorded the dangerous one and
left it open: core:qualify-cli, which compares the built CLI's --version against
MARKETING_VERSION, runs only in ci.yml and never in the release qualification
path. A drifted cut could therefore sign, notarize, staple, and publish an app
whose bundled codevetter and codevetter-mcp companions reported the previous
version, with every release gate green.

scripts/sync-native-version.mjs makes MARKETING_VERSION the single source of
truth and derives everything else: CURRENT_PROJECT_VERSION (major*10000 +
minor*100 + patch, the encoding every release since 1.11.1 has used), the three
crate versions, the sibling "=<version>" pins, and the Cargo.lock entries. It
rewrites only what it owns -- the [package] version rather than every
dependency's version key, and pins keyed on a path = "../codevetter-*" sibling
so third-party exact pins like rmcp's "=2.2.0" are untouched. It fails closed on
a crate missing from the lockfile instead of silently skipping it.

pnpm version:check is wired into ci.yml, before lint, where it reports the bump
that caused the problem in about a second instead of the CLI symptom three
minutes in; and into native-production-qualification.yml before signing, which
closes the gap above so drift costs seconds rather than a notarization round
trip. 12 tests cover the encoding, the selective rewrites, drift detection, and
idempotence.

The crate bump in this commit is the script's own output, and is byte-identical
to what 72b6b60 did by hand.

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
@sarthakagrawal927
sarthakagrawal927 deleted the release/cut-1.13.4 branch September 25, 2026 04:28
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