Skip to content

ci: build macOS releases on macos-26 runners, realign traffic-light insets - #57

Merged
Tryanks merged 2 commits into
mainfrom
ci/macos-26-traffic-lights
Jul 17, 2026
Merged

Tryanks merged 2 commits into
mainfrom
ci/macos-26-traffic-lights

Conversation

@Tryanks

@Tryanks Tryanks commented Jul 17, 2026

Copy link
Copy Markdown
Owner

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_VERSION records the macOS 26 SDK. The release workflow built on macos-14 runners, which ship at most Xcode 16 (macOS 15 SDK), so released binaries record sdk 15.x and AppKit renders them in compatibility mode with the old small buttons. Verified locally: the same source built with Xcode 26.5 records sdk 26.5 and gets the new buttons.

Changes

CI (release.yml, ci.yml) — macOS jobs move from macos-14 to macos-26:

  • macos-26 is GA since 2026-02-26 and ships Xcode 26, so release binaries link the macOS 26 SDK and get the new chrome automatically.
  • The x64 build keeps cross-compiling from the arm64 runner (--target x86_64-apple-darwin), same as before; the Xcode 26 SDK still supports x86_64.
  • Also moves off an image that is deprecated as of 2026-07-06 and retires 2026-11-02 (brownouts start October).

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_position y 18 → 19, so the 14pt buttons sit exactly centered in the 52px top strip.
  • crates/ui/src/sidebar.rs / settings_page.rs: TRAFFIC_LIGHT_INSET 74 → 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.
  • Non-macOS inset values unchanged.

Verification

  • cargo build --release --locked (LTO thin + strip, same as CI): otool -l shows LC_BUILD_VERSION sdk 26.5.
  • Dry-ran the release.yml macOS packaging steps locally (Info.plist lint, ditto zip, hdiutil DMG) — all pass.
  • Visual check with before/after screenshots of the expanded sidebar, collapsed sidebar, and settings page: branding/title clear the new light group by ~8pt and the group is vertically centered in the top strip.
  • cargo fmt --all --check and cargo check pass.

Notes

  • macos-latest intentionally not used: the label only finished migrating to macOS 26 around 2026-07-15 and will drift again; pinning macos-26 keeps the linked SDK deterministic.
  • On pre-26 macOS the 1pt position nudge and 6pt wider inset are visually harmless (slightly more breathing room next to the old smaller buttons).

Co-Authored-By: kimi

Tryanks added 2 commits July 17, 2026 22:39
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
@Tryanks
Tryanks merged commit f06a492 into main Jul 17, 2026
3 checks passed
@Tryanks
Tryanks deleted the ci/macos-26-traffic-lights branch July 17, 2026 14:51
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