Repository navigation
ci: build macOS releases on macos-26 runners, realign traffic-light insets - #57
Merged
Merged
Conversation
macOS 26 renders its new, larger traffic-light window buttons only for apps whose Mach-O LC_BUILD_VERSION records the macOS 26 SDK. macos-14 runners ship at most Xcode 16 (macOS 15 SDK), so release builds were linked against sdk 15.x and AppKit fell back to the legacy small traffic lights on macOS 26 machines. macos-26 runners are GA since 2026-02-26 and ship Xcode 26; binaries built there record sdk 26.x and get the new chrome automatically. The x64 build keeps cross-compiling from the arm64 runner as before, and macos-14 images are deprecated 2026-07-06 and retire 2026-11-02, so this also moves off a dying image ahead of the brownouts. Co-Authored-By: kimi
Measured on macOS 26.5 with an sdk-26.5-linked build: the new traffic light group is 14pt buttons spanning a 60pt-wide group, ending at x=72pt with the existing (12, 18) placement. - Nudge traffic_light_position down 1pt so the 14pt buttons are exactly centered in the 52px top strip (center y = 26pt). - Widen the sidebar and settings TRAFFIC_LIGHT_INSET from 74 to 80 so branding clears the wider group with ~8pt to spare. - Widen the collapsed-sidebar chat header inset from 36 to 40 for the same reason. Verified with before/after screenshots of the expanded sidebar, collapsed sidebar, and settings surfaces; non-macOS insets unchanged. Co-Authored-By: kimi
This was referenced Oct 9, 2026
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.
Problem
Release builds installed on macOS 26 show the legacy small traffic-light window buttons instead of the new larger ones.
Root cause: macOS 26 renders the new (Liquid Glass) traffic lights only for apps whose Mach-O
LC_BUILD_VERSIONrecords the macOS 26 SDK. The release workflow built onmacos-14runners, which ship at most Xcode 16 (macOS 15 SDK), so released binaries recordsdk 15.xand AppKit renders them in compatibility mode with the old small buttons. Verified locally: the same source built with Xcode 26.5 recordssdk 26.5and gets the new buttons.Changes
CI (
release.yml,ci.yml) — macOS jobs move frommacos-14tomacos-26:macos-26is GA since 2026-02-26 and ships Xcode 26, so release binaries link the macOS 26 SDK and get the new chrome automatically.--target x86_64-apple-darwin), same as before; the Xcode 26 SDK still supports x86_64.UI insets — measured the new traffic-light geometry on macOS 26.5 (14pt buttons, 60pt-wide group ending at x=72pt with the existing placement) and adjusted the four constants tuned for the old 12pt buttons:
crates/app/src/main.rs:traffic_light_positiony 18 → 19, so the 14pt buttons sit exactly centered in the 52px top strip.crates/ui/src/sidebar.rs/settings_page.rs:TRAFFIC_LIGHT_INSET74 → 80, keeping ~8pt clearance for the branding next to the wider group.crates/ui/src/chat.rs: collapsed-sidebar header inset 36 → 40 for the same reason.Verification
cargo build --release --locked(LTO thin + strip, same as CI):otool -lshowsLC_BUILD_VERSION sdk 26.5.release.ymlmacOS packaging steps locally (Info.plist lint,dittozip,hdiutilDMG) — all pass.cargo fmt --all --checkandcargo checkpass.Notes
macos-latestintentionally not used: the label only finished migrating to macOS 26 around 2026-07-15 and will drift again; pinningmacos-26keeps the linked SDK deterministic.Co-Authored-By: kimi