Skip to content

Keep running in the menu bar with launch at login, quit review and completion notices - #62

Merged
sarthakagrawal927 merged 1 commit into
mainfrom
agent/menu-lifecycle-20261009
Oct 9, 2026
Merged

sarthakagrawal927 merged 1 commit into
mainfrom
agent/menu-lifecycle-20261009

Conversation

@sarthakagrawal927

Copy link
Copy Markdown
Member

Owner-approved port of the Sept 26 menu-bar/lifecycle UX (source: archive/codex/daddy-appcast-core-20260926), using ContextDaddy's adopted design from Significant-Hobbies/contextdaddy#20 as the reference so the Daddy apps match:

  • Closing the window keeps the app running in the menu bar (applicationShouldTerminateAfterLastWindowClosed → false).
  • Quit review: quitting during real long-running work shows the native Keep Running / Quit Anyway alert (DaddyQuitReview, shared verbatim with ContextDaddy).
  • Opt-in Launch at Login via SMAppService.mainApp, reflecting the system state after each change (failure and requires-approval states are shown).
  • Opt-in completion notices that post only when no app window is visible, and only after macOS grants notification access.
  • DaddyVisualCore.swift is copied verbatim from ContextDaddy; theme colors now read DaddyPalette (same values). DaddyLifecycle.swift carries the login-item and notice helpers.
  • The appcast part of the archive is not ported; the shared appcast contract replaced it.

Active work in StorageDaddy: a scan (activeScanVersion), reviewed cleanup/staging (busy), a snapshot save (snapshotBusy) or a conversation export (conversationArchive.busy). The quit review runs before the existing App Health close path. The completion notice fires for finished scans, except the automatic rescan after cleanup. The new native menu (.menu style, ContextDaddy direction A) shows the scan status (no scan / in progress / last scan / cancelled / needs attention) and offers Open, Cancel Scan (while scanning), Settings, Check for Updates, the two toggles and Quit. The main scene is now Window(id: "main") so Open reuses the one window.

Validation (local, macOS 26): swift test passes: 201 XCTest plus 41 + 12 swift-testing tests, including 5 new MenuLifecycleTests. swift build -c release and the sparkle unittest also pass. No native screen verification was run. Nothing was signed, packaged or released.

🤖 Generated with Claude Code

…mpletion notices

Port the Sept 26 Daddy menu lifecycle to current main, matching ContextDaddy's
adopted design (#20): closing the window keeps the app running, quitting during
real long-running work asks first (Keep Running / Quit Anyway), and the menu
offers opt-in Launch at Login and completion notices that post only when no
app window is visible. Shares ContextDaddy's DaddyVisualCore verbatim plus a
copied DaddyLifecycle source. The superseded appcast work is not ported.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@sarthakagrawal927
sarthakagrawal927 merged commit 293674a into main Oct 9, 2026
2 checks passed
@sarthakagrawal927
sarthakagrawal927 deleted the agent/menu-lifecycle-20261009 branch October 9, 2026 03:06
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