Skip to content

fix: macOS 26/27 Touch Bar detection + v2.0 roadmap (TOU-81…TOU-85)#35

Open
ProduktEntdecker wants to merge 3 commits into
mainfrom
claude/macos-compat-v2-priorities-xlsjvk
Open

fix: macOS 26/27 Touch Bar detection + v2.0 roadmap (TOU-81…TOU-85)#35
ProduktEntdecker wants to merge 3 commits into
mainfrom
claude/macos-compat-v2-priorities-xlsjvk

Conversation

@ProduktEntdecker

@ProduktEntdecker ProduktEntdecker commented Jun 11, 2026

Copy link
Copy Markdown
Owner

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

  • Roadmap: 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.
  • TOU-81: Add Mac14,7 (13" M2 2022 — the last Touch Bar Mac, runs macOS 27) to model detection.
  • TOU-82: Remove MacBookPro18,x (2021 redesign has no Touch Bar); also exclude base 13" models MacBookPro13,1/14,1 (function keys) that the previous prefix matching wrongly accepted.
  • TOU-83: New 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.
  • TOU-84: Model list centralized in MacBookModel.touchBarModelIdentifiers (exact match, single source of truth); both TouchBarManager detection paths now use it.
  • TOU-85: LSMinimumSystemVersion 11.0 → 13.0 (matches the Package.swift build target); README requirements updated to macOS 13 / models 2016–2022.
  • Tests updated: Mac14,7 positive cases, MacBookPro18,x / 13,1 / 14,1 negative cases, suffix/whitespace edge cases.

Open items (separate issues)

  • Guided-recovery UI polish for the Tahoe state and OS-aware messaging (TOU-83/TOU-87).
  • Manual verification on macOS 26/27 beta hardware (TOU-85) — cannot be done in CI.

https://claude.ai/code/session_01YLxFPysnSjEYj2bX6fmEps

Summary by CodeRabbit

  • Neue Funktionen

    • Verbesserte Unterstützung für Touch-Bar-Probleme bei macOS Tahoe und späteren Versionen.
  • Fehlerbehebungen

    • Präzisere Erkennung von Touch-Bar-fähigen MacBook-Modellen, einschließlich M2-Varianten.
  • Dokumentation

    • Aktualisierte Systemanforderungen: macOS 13+ erforderlich (zuvor macOS 11+).
    • Erweiterte Liste unterstützter MacBook Pro Modelle (2016–2022).

…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
@coderabbitai

coderabbitai Bot commented Jun 11, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@ProduktEntdecker, we couldn't start this review because you've reached your PR review rate limit.

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 @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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 configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 596c3ab2-fce7-48d0-8591-f3227469764c

📥 Commits

Reviewing files that changed from the base of the PR and between 4d52f22 and 497d743.

📒 Files selected for processing (3)
  • App/Sources/Utilities/MacBookModel.swift
  • App/Tests/TouchBarManagerTests.swift
  • README.md
📝 Walkthrough

Walkthrough

Dieses 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.

Changes

Touch-Bar-Kompatibilität und macOS 13+ Support

Layer / File(s) Summary
Zentrale Modell-Erkennungslogik
App/Sources/Utilities/MacBookModel.swift
MacBookModel führt zentrale touchBarModelIdentifiers-Konstante ein. hasTouchBar() nutzt exakte Set-Prüfung mit Whitespace-Trimmen und Suffix-Pattern-Matching statt bisheriger Substring-Logik.
OS-Fehlerbehandlung und Neuerkennung
App/Sources/TouchBarManager.swift
TouchBarError erhält neuen Case touchBarDisabledByOS. Initial- und Verfügbarkeitsprüfung nutzen zentrale MacBookModel.hasTouchBar(). restartTouchBar() bricht mit frühem Exit ab, wenn Modell Touch Bar anzeigt aber keine Prozesse laufen.
Test-Abdeckung für Modelle und Edge-Cases
App/Tests/MacBookModelTests.swift, App/Tests/SharingManagerTests.swift
Tests für M2 (Mac14,7) und 2021er Redesign-Modelle hinzugefügt, falsche M1-Pro/Max-Annahmen entfernt. Suffix- und Whitespace-Handling validiert. SharingManagerTests auf neue Modelle angepasst.
Plattform-Anforderungen und Dokumentation
App/Resources/Info.plist, README.md, plans/v2.0-macos-compatibility-roadmap.md
LSMinimumSystemVersion auf 13.0 erhöht. README dokumentiert macOS 13.0+ und 2016–2022 MacBook-Pro-Support. Neue Roadmap mappt macOS-26-Tahoe-Problem und Maßnahmen-Prioritäten.

🎯 3 (Moderate) | ⏱️ ~25 minutes

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 35.29% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed Der PR-Titel beschreibt die Hauptänderungen präzise: macOS 26/27 Touch Bar Erkennung und die v2.0 Roadmap mit Bezug zu den umgesetzten Tickets (TOU-81…TOU-85).
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/macos-compat-v2-priorities-xlsjvk

Comment @coderabbitai help to get the list of available commands and usage tips.

…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
@ProduktEntdecker ProduktEntdecker changed the title docs: v2.0 roadmap — macOS 26/27 compatibility analysis and priorities fix: macOS 26/27 Touch Bar detection + v2.0 roadmap (TOU-81…TOU-85) Jun 11, 2026
@ProduktEntdecker ProduktEntdecker marked this pull request as ready for review June 11, 2026 20:37

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

📥 Commits

Reviewing files that changed from the base of the PR and between 8500efc and 4d52f22.

📒 Files selected for processing (7)
  • App/Resources/Info.plist
  • App/Sources/TouchBarManager.swift
  • App/Sources/Utilities/MacBookModel.swift
  • App/Tests/MacBookModelTests.swift
  • App/Tests/SharingManagerTests.swift
  • README.md
  • plans/v2.0-macos-compatibility-roadmap.md

Comment thread App/Sources/TouchBarManager.swift
Comment thread App/Sources/Utilities/MacBookModel.swift Outdated
Comment thread README.md Outdated
- 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
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.

2 participants