Skip to content

fix(macos): add account actions and isolate native keyboard input - #4499

Merged
tyler-dane merged 21 commits into
mainfrom
fix/macos-account-actions
Oct 17, 2026
Merged

tyler-dane merged 21 commits into
mainfrom
fix/macos-account-actions

Conversation

@tyler-dane

@tyler-dane tyler-dane commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

Fixes #4498

What and why

Settings and the command palette now offer Export data and confirmed Log out. Export saves user-created events stored on this Mac as JSON through the native save panel, excludes sample events and synced caches, uses a local-date filename, and supports quiet cancellation and retry. Logout preserves drafts on cancel and discards unsaved event changes after explicit confirmation. It waits for event mutations to finish before ending the session.

Keep signed-out behavior consistent with the existing repository policy: remembered accounts remain remote and show login; profiles without remembered authentication return to local mode. Clear refetchable account caches, undo history, searches, and account-specific settings on session changes while preserving local event records. Persist cache ownership using the stable session UID, so a different or unknown account cannot reuse an earlier account's cache after restart. The existing profile request refreshes identity, and a failed offline profile lookup retains the front-token UID. Late event, calendar, profile, billing, booking, and search responses cannot restore prior-session UI data.

Native panels and editable text own typing, navigation, copy/paste, undo and redo. Settings and overlays stop calendar shortcuts from creating events behind them. E exports and O logs out from Accounts; digits 1/2/3 navigate available sections, including Command+digits from text fields. Account actions stay visible in a footer, and Settings fits small windows instead of clipping its controls.

Verify

All CompassData tests pass. Regression coverage includes export filtering/cancellation/retry/local date, confirmed and cancelled logout, cache ownership, local-data retention, stale event/profile/billing/booking responses, and offline session identity. The focused native Settings isolation and export save-panel interaction tests pass. Type-check, lint, knip, Swift contracts and desktop export checks pass.

VERDICT: PASS

Full bun run verify --strict passes on the reconciled head 2e84fcb: Swift package tests (including CompassUI), Xcode native tests (34 interactions), type-check, lint, and knip. Swift contracts and desktop export checks also passed. The main merge resolves real keyboard-router and anonymous-calendar bootstrap conflicts while preserving both features.

Self-review and simplify pass keep platform save-panel UI separate from storage, and keep request revisions with the stores that own their responses. Remote cache clearing does not remove locally stored event records.

tyler-dane and others added 20 commits October 16, 2026 07:09
Co-authored-by: Tyler Dane <tyler-dane@users.noreply.github.com>
Co-authored-by: Tyler Dane <tyler-dane@users.noreply.github.com>
Co-authored-by: Tyler Dane <tyler-dane@users.noreply.github.com>
Co-authored-by: Tyler Dane <tyler-dane@users.noreply.github.com>
Co-authored-by: Tyler Dane <tyler-dane@users.noreply.github.com>
@tyler-dane
tyler-dane marked this pull request as ready for review October 16, 2026 23:28
@tyler-dane
tyler-dane enabled auto-merge October 16, 2026 23:28
@tyler-dane tyler-dane added the agent-automerge Agent-loop finished; merge-guard may squash-merge label Oct 16, 2026
@tyler-dane
tyler-dane added this pull request to the merge queue Oct 16, 2026
Merged via the queue into main with commit 4cc7349 Oct 17, 2026
27 checks passed
@tyler-dane
tyler-dane deleted the fix/macos-account-actions branch October 17, 2026 00:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agent-automerge Agent-loop finished; merge-guard may squash-merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(macos): add account actions and isolate native keyboard input

2 participants