fix: macOS 26/27 Touch Bar detection + v2.0 roadmap (TOU-81…TOU-85)#35
fix: macOS 26/27 Touch Bar detection + v2.0 roadmap (TOU-81…TOU-85)#35ProduktEntdecker wants to merge 3 commits into
Conversation
…dmap - macOS 27 Golden Gate (WWDC 2026) drops Intel entirely; only MacBookPro17,1 and Mac14,7 Touch Bar Macs will run it - Documents P0 detection bugs: Mac14,7 missing from model lists, MacBookPro18,x wrongly included (2021 redesign removed Touch Bar) - Documents macOS 26 Tahoe Touch Bar breakage on M1/M2 and required handling (admin pkill, 'processes not running' failure state) - Prioritized P0/P1/P2 plan for a 1.5.1 hotfix and v2.0 https://claude.ai/code/session_01YLxFPysnSjEYj2bX6fmEps
|
Warning Review limit reached
More reviews will be available in 7 minutes and 38 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more credits in the billing tab to continue. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (3)
📝 WalkthroughWalkthroughDieses PR konsolidiert die Touch-Bar-Geräte-Erkennung auf eine zentrale, exakte Set-basierte Logik statt hardcodierter Modelllisten. Parallel wird macOS 13.0 Minimalversion erzwungen und ein neuer Fehlerfall für macOS-26-Tahoe-Ausfälle (Touch Bar durch OS deaktiviert) hinzugefügt. ChangesTouch-Bar-Kompatibilität und macOS 13+ Support
🎯 3 (Moderate) | ⏱️ ~25 minutes 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
…ure mode
TOU-81: Add Mac14,7 (13" M2 2022, the last Touch Bar Mac) to detection
TOU-82: Remove MacBookPro18,x — the 2021 redesign has no Touch Bar; also
exclude base 13" models (13,1/14,1) which have function keys
TOU-83: New touchBarDisabledByOS error — when the model has a Touch Bar
but no Touch Bar processes exist (macOS 26 Tahoe bug on M1/M2),
fail with guidance instead of falsely reporting success
TOU-84: Centralize the model list in MacBookModel as single source of
truth (exact-match identifiers); TouchBarManager consumes it
TOU-85: Align LSMinimumSystemVersion (11.0 -> 13.0) with the Package.swift
build target; update README requirements and model range
https://claude.ai/code/session_01YLxFPysnSjEYj2bX6fmEps
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@App/Sources/TouchBarManager.swift`:
- Around line 58-66: Die Testliste, die in testErrorEnumDescription() verwendet
wird (die statische errors: [TouchBarError] Array), enthält nicht den neuen Case
TouchBarError.touchBarDisabledByOS, weshalb dessen errorDescription nicht
geprüft wird; aktualisiere dieses Array indem du
TouchBarError.touchBarDisabledByOS hinzufügst, so dass
testErrorEnumDescription() alle TouchBarError-Cases einschließlich
touchBarDisabledByOS abdeckt und dessen errorDescription validiert.
In `@App/Sources/Utilities/MacBookModel.swift`:
- Line 35: The current check in MacBookModel.swift uses
identifier.contains("Mac14,7") which can yield false positives; update the
conditional that returns "MacBook Pro 13\" M2" to use a stricter match (e.g.,
exact equality or hasPrefix after trimming) similar to the hasTouchBar() logic —
locate the identifier check in the method that maps identifiers to names and
replace the contains(...) condition with either identifier == "Mac14,7" ||
identifier.hasPrefix("Mac14,7-") or identifier.trimmingCharacters(in:
.whitespacesAndNewlines).hasPrefix("Mac14,7") so only intended identifiers
match.
In `@README.md`:
- Line 31: Update the ambiguous admin-privileges sentence in the README Security
section: replace the current line "No administrator privileges required (macOS
26 Tahoe may prompt for admin once)" with a clarified statement that either (a)
restricts "No administrator privileges required" to macOS 13–25, e.g. "No
administrator privileges required on macOS 13–25", or (b) removes the absolute
claim and adds a separate note "macOS 26+ (Tahoe) may require admin actions
(e.g. sudo pkill TouchBarServer)." Ensure the change is made in the Security
section wording so readers see the platform-specific exception clearly.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: 2078fc8f-51cb-4f24-830d-9c42badc7427
📒 Files selected for processing (7)
App/Resources/Info.plistApp/Sources/TouchBarManager.swiftApp/Sources/Utilities/MacBookModel.swiftApp/Tests/MacBookModelTests.swiftApp/Tests/SharingManagerTests.swiftREADME.mdplans/v2.0-macos-compatibility-roadmap.md
- MacBookModel.series: strict Mac14,7 match instead of contains() to avoid false positives on other Mac14,x identifiers - README: scope the no-admin claim to macOS 13-25 in requirements and security sections (macOS 26+ may need one-time admin authorization) - TouchBarManagerTests: cover touchBarDisabledByOS in testErrorEnumDescription https://claude.ai/code/session_01YLxFPysnSjEYj2bX6fmEps
Summary
macOS 26 Tahoe / macOS 27 Golden Gate compatibility work. Contains the v2.0 roadmap document plus the P0 fixes from it. Linear issues: TOU-81…TOU-91 (this PR implements TOU-81–TOU-85).
Changes
plans/v2.0-macos-compatibility-roadmap.md— analysis of macOS 27 Golden Gate (Apple Silicon only) and the macOS 26 Tahoe Touch Bar breakage, with prioritized P0/P1/P2 plan.Mac14,7(13" M2 2022 — the last Touch Bar Mac, runs macOS 27) to model detection.MacBookPro18,x(2021 redesign has no Touch Bar); also exclude base 13" modelsMacBookPro13,1/14,1(function keys) that the previous prefix matching wrongly accepted.TouchBarError.touchBarDisabledByOS— when the model has a Touch Bar but no Touch Bar processes exist (Tahoe bug on M1/M2), fail with guidance instead of falsely reporting success.MacBookModel.touchBarModelIdentifiers(exact match, single source of truth); bothTouchBarManagerdetection paths now use it.LSMinimumSystemVersion11.0 → 13.0 (matches thePackage.swiftbuild target); README requirements updated to macOS 13 / models 2016–2022.Open items (separate issues)
https://claude.ai/code/session_01YLxFPysnSjEYj2bX6fmEps
Summary by CodeRabbit
Neue Funktionen
Fehlerbehebungen
Dokumentation