Repository navigation
release: cut 1.13.4 with the fixed upgrade-proof launch probe - #266
Merged
Merged
Conversation
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.
This was referenced Sep 6, 2026
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>
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.
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.ymlpassessource_ref: ${{ inputs.tag }}to the qualification workflow, so aworkflow_dispatchagainstv1.13.3checks out the tag as it was cut — which predates #265 — and would fail at the same Qualify isolated upgrade… step.v1.13.3remains a draft with zero assets and is superseded by this cut.Merging this bumps
Shared.xcconfig, which triggersauto-release.yml: tag + draft release, explicitworkflow_dispatchofrelease.yml,gh run watch --exit-statuson the build, asset-manifest re-verification, and only then draft → published.Refs #252, refs #253 — neither closes until assets are actually live.