Repository navigation
ci: stop the macOS native rows building the app twice, and run macOS server tests in their own job - #359
Merged
Conversation
Both macOS Native desktop rows hit their 240-minute limit on main after the background Git index lock step was added: the server's test build took 32 to 56 minutes there, and the run had no Rust cache. Move the three macOS server test steps (Git system configuration, index lock, host metrics) to a new job, server_tests_macos, which restores the Native desktop cache and never saves one. Raise the macOS x64 row to 300 minutes: its remaining steps needed about 260 minutes cold. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
The Intel figure is an estimate from a cancelled run, so leave more room under the 360-minute hosted limit. The contract test now looks at every step that runs on the macOS rows, and requires 330 minutes for x64. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Codex Review Summary: ✅ CompletedThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
The probe was an example of bibcode-desktop, so Cargo compiled the whole desktop and server graph a second time with the dev-dependency features before the bundle build compiled it again: 84 of the 215 minutes of the macOS arm64 row on 2026-11-13, and 81 of 228 on x64. The probe uses only objc2 and objc2-foundation, so it now lives in tools/objc-exception-probe with the objc2 features the desktop graph enables and runs under the shipped release profile. Locally it builds and passes in 16 seconds and aborts with CARGO_PROFILE_RELEASE_PANIC=abort. Both macOS rows get 330 minutes: arm64 used 215 of its 240 with a Rust cache, and the bundle build alone has taken 75 to 111 minutes. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
This was referenced Nov 13, 2026
mubeda
added a commit
that referenced
this pull request
Nov 14, 2026
Bump every version source to 0.16.0 and turn the Unreleased CHANGELOG section (PRs #349, #359, #365 and #369) into the v0.16.0 entry. Raise the Claude Code additive-hook ceiling to 2.1.323 after the live PreToolUse guard proof passed on that build, and move the above-ceiling test example to 2.1.324. Give the CI Test lookup contract test a 30-second limit: it runs bash and jq eleven times and timed out against the 5-second default under load. Verified locally: cargo check for the workspace, vp check, vp run typecheck, the full vp run -r --concurrency-limit 1 test graph in all nine packages, release:smoke, the updater regression sets, cargo test -p bibcode-desktop, and the macOS arm64 DMG signature and Finder icon check. CI: the Seeded Packaged Desktop Upgrade workflow from v0.8.0 passed on all seven lanes for this branch (macOS x64 on a rerun after its hosted runner lost its connection). Reviewed by Codex with no findings. Co-Authored-By: Claude Fable 5.2 <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.
What this changes
The two macOS native desktop rows ran out of time on
main(240 minutes each) after pull request 349. Two causes, both fixed here.Verify macOS release exception recoverybuilt an example ofbibcode-desktop. An example enables the dev-dependency features, so Cargo compiled the desktop and server graph once for the probe and again for the bundle. On 2026-11-13 the probe's build took 84 of the 215 minutes of the arm64 row and 81 of 228 on x64. The probe only usesobjc2andobjc2-foundation, so it now lives in its own crate,tools/objc-exception-probe, with theobjc2features the desktop graph enables, under the shipped release profile.Server tests - macOS arm64 / x64(150 minutes, restores the Rust cache, saves none).Both macOS native rows get 330 minutes. arm64 used 215 of its 240 with a Rust cache.
Why the slowdown happened
Pull request 301 (2026-11-05) turned on debug info for both optimized builds (
strip none,debug line-tables-only,split-debuginfo packed). On the same runner image and with a Rust cache hit, the two builds went from 43m 47s and 38m 23s ([optimized]) to 75m 55s and 73m 41s ([optimized + debuginfo]). The runner image, a cold cache and the Breakpad dump (26 to 41 seconds) were ruled out from the job logs.Evidence
CARGO_PROFILE_RELEASE_PANIC=abort(local)objc2features, probe and desktop graph (cargo tree -e features -i objc2)alloc, default, disable-encoding-assertions, exception, stdvp test run scriptsvp check,vp run typecheck,cargo fmt --all --check, Clippy on the new crate with warnings deniedTo confirm in this pull request's CI run: the probe step takes minutes, and each macOS native job has one long optimized build instead of two.
Not fixed here
dsymutilis not measured.Profiler coverage: none applies. The new binary is a CI-only tool, is not shipped, starts no process and registers no RPC.
Runbooks:
docs/testing/macos-desktop.mdupdated (probe command); the others were reviewed and remain accurate.🤖 Generated with Claude Code