rzen
b0ffff1aa1
The app learns Appearance — Auto, Light, Dark from the View menu and a toolbar pull-down
...
View ▸ Appearance (11-command-nexus.md): three radio-exclusive rows,
app-wide, persisted, needing no window in front — the View menu's new
last group. AppearanceStore owns the override's rules (absent key =
Auto, lenient reads degrade to Auto, remove-at-default) with an
injectable apply seam so test hosts never touch NSApp; the one real
apply hands NSApp.appearance its answer in applicationDidFinishLaunching,
the global side effect KanbanApp.init must not carry. The board toolbar
gains its first .picker item — an NSMenuToolbarItem whose rows re-fetch
their spec fresh, checkmark read at menu-open like every other menu row —
and Appearance joins the search field as the second default item,
centered beside it (03-board-ui.md ▸ Toolbar, ratified 2026-08-07).
Claude-Session: https://claude.ai/code/session_014PtZdPwqZuqEDLc6wZMtEy
2026-08-07 12:55:45 -04:00
..
2026-07-30 21:30:22 -04:00
2026-08-01 07:43:45 -04:00
2026-08-07 12:55:45 -04:00
2026-08-01 09:12:49 -04:00
2026-07-30 17:46:32 -04:00
2026-08-06 18:44:12 -04:00
2026-08-06 18:44:12 -04:00
2026-08-06 18:44:12 -04:00
2026-08-07 10:15:03 -04:00
2026-08-01 10:52:02 -04:00
2026-08-07 10:15:03 -04:00
2026-07-28 07:20:14 -04:00
2026-08-06 17:53:23 -04:00
2026-08-06 18:44:12 -04:00
2026-08-01 11:38:25 -04:00
2026-08-01 09:53:26 -04:00
2026-07-29 13:02:57 -04:00
2026-07-30 17:46:32 -04:00
2026-08-07 11:22:02 -04:00
2026-08-06 18:44:12 -04:00
2026-08-01 09:53:26 -04:00
2026-08-01 11:38:25 -04:00
2026-07-30 17:46:32 -04:00
2026-08-01 07:43:45 -04:00
2026-08-07 11:22:02 -04:00
2026-07-28 09:59:18 -04:00
2026-07-31 18:35:07 -04:00
2026-08-06 18:44:12 -04:00
2026-07-28 17:47:56 -04:00
2026-07-29 12:34:55 -04:00
2026-07-30 20:19:52 -04:00
2026-07-31 19:39:50 -04:00
2026-07-31 20:23:45 -04:00
2026-08-07 10:15:03 -04:00
2026-08-07 10:15:03 -04:00
2026-07-31 18:35:07 -04:00
2026-07-30 17:46:32 -04:00
2026-08-01 12:07:12 -04:00
2026-07-31 18:35:07 -04:00
2026-07-31 18:35:07 -04:00
2026-07-27 07:47:11 -04:00
2026-08-06 22:05:48 -04:00
2026-07-31 19:39:50 -04:00
2026-07-30 20:19:52 -04:00
2026-07-30 21:30:22 -04:00
2026-07-31 18:35:07 -04:00
2026-07-30 20:19:52 -04:00
2026-08-01 07:43:45 -04:00
2026-08-06 17:10:09 -04:00
2026-08-07 10:15:03 -04:00
2026-07-29 10:20:16 -04:00
2026-07-26 20:41:48 -04:00
2026-08-01 20:22:42 -04:00
2026-08-07 11:22:02 -04:00
2026-07-29 13:02:57 -04:00
2026-08-07 11:22:26 -04:00
2026-08-01 08:07:54 -04:00
2026-08-07 11:22:02 -04:00
2026-07-29 18:19:52 -04:00
2026-07-31 18:35:07 -04:00
2026-07-28 17:47:56 -04:00
2026-08-07 10:15:03 -04:00
2026-07-28 15:55:40 -04:00
2026-08-07 10:15:03 -04:00
2026-08-06 16:57:20 -04:00
2026-08-01 07:43:45 -04:00
2026-08-06 17:53:23 -04:00
2026-07-29 15:45:48 -04:00
2026-08-07 12:55:45 -04:00
2026-08-06 18:44:12 -04:00
2026-07-31 18:35:07 -04:00
2026-08-01 08:28:53 -04:00
2026-08-07 10:15:03 -04:00
2026-07-26 15:00:31 -04:00
2026-08-01 19:14:11 -04:00
2026-07-27 15:38:34 -04:00
2026-08-01 19:33:33 -04:00
2026-07-29 15:45:48 -04:00
2026-08-01 07:43:45 -04:00
2026-07-28 10:46:02 -04:00
2026-08-03 13:24:53 -04:00
2026-07-28 08:11:59 -04:00
2026-07-28 17:47:56 -04:00
2026-07-27 13:48:50 -04:00
2026-07-30 17:04:30 -04:00
2026-08-07 11:22:16 -04:00
2026-07-27 20:10:24 -04:00
2026-08-01 07:43:45 -04:00
2026-08-01 07:43:45 -04:00
2026-08-07 11:22:02 -04:00
2026-07-29 12:34:55 -04:00
2026-07-30 17:46:32 -04:00
2026-07-31 18:35:07 -04:00
2026-07-31 18:35:07 -04:00
2026-07-28 17:47:56 -04:00
2026-08-07 10:15:03 -04:00
2026-08-06 21:18:35 -04:00
2026-07-28 17:47:56 -04:00
2026-08-01 07:43:45 -04:00
2026-07-30 18:14:58 -04:00
2026-08-07 12:55:45 -04:00
2026-07-28 17:47:56 -04:00
2026-07-31 18:35:07 -04:00
2026-08-01 07:43:45 -04:00
2026-07-31 18:35:07 -04:00
2026-08-01 09:12:49 -04:00
2026-08-07 10:15:03 -04:00
2026-08-01 18:28:33 -04:00
2026-08-07 11:22:36 -04:00
2026-07-30 17:46:32 -04:00
2026-07-27 07:47:11 -04:00
2026-07-27 07:47:11 -04:00
2026-08-07 10:15:03 -04:00
2026-07-30 17:04:30 -04:00