Skip to content

fix(mac): show the menu bar item with an AppKit status item - #66

Merged
502Proxy merged 2 commits into
mainfrom
fix/menu-bar-status-item
Oct 28, 2026
Merged

502Proxy merged 2 commits into
mainfrom
fix/menu-bar-status-item

Conversation

@502Proxy

Copy link
Copy Markdown
Owner

Closes #64

What changes and why?

Die App hing auf main beim Start. Der Stack vom Mac zeigt AppGraph.graphDidChange → scenesDidChange → Toolbar-Neuaufbau in Endlosschleife. Auf dem Mac bestätigt: probe/no-menubar (ohne MenuBarExtra) startet normal. Auch auf der CI hing schon eine rein statische MenuBarExtra-Szene.

  • Neu: App/MenuBarController.swift, ein NSStatusItem mit NSPopover statt der SwiftUI-Szene.
  • Das Popover zeigt weiter MenuBarContent, über die neue MenuBarPopoverView mit Darstellung (hell/dunkel) aus den Einstellungen.
  • Das Label (Symbol, Restminuten) folgt Kalender und fälligen Karten per withObservationTracking.
  • Ein-/Ausblenden folgt weiter der Einstellung menuBar.isShown (Einstellungen → Allgemein).
  • MenuBarExtra, MenuBarSummaryReader, MenuBarLabel und bringToFront entfallen.

Checklist

  • Linked issue, labels and milestone set
  • scripts/qa.sh passes locally (SwiftLint + tests): CI läuft
  • New logic has tests in StudyAppTests: MenuBarSummary ist getestet; der Controller ist reine AppKit-Verdrahtung
  • UI tried in the app (light and dark): bitte auf dem Mac starten und Symbol + Popover prüfen
  • Data model changes: keine
  • User-visible change: keine (gleiches Verhalten, App startet wieder)
  • Docs in docs/ updated where behaviour changed

Generated by Claude Code

SwiftUI's MenuBarExtra scene kept the app's scene graph changing at
launch, so the main window rebuilt its toolbar endlessly and the app
hung. MenuBarController now owns an NSStatusItem with a popover that
hosts the existing MenuBarContent; the label follows the calendar and
the due cards through observation tracking.
Refs #64

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TmmqmKmX8VDSfoPbzTS1ew
Closes #64

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TmmqmKmX8VDSfoPbzTS1ew
@502Proxy 502Proxy added this to the 1.12 milestone Oct 28, 2026 — with Claude
@502Proxy 502Proxy added the bug Something does not work as intended label Oct 28, 2026 — with Claude
@502Proxy
502Proxy merged commit d511c4b into main Oct 28, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something does not work as intended

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(mac): App hängt beim Start mit dem Menüleisten-Symbol

2 participants