Add user preferences and dark mode setting #62

Merged
miro merged 1 commit from claude/user-preferences-dark-mode-509b6a into main 2026-10-10 23:08:07 +00:00
Owner

Summary

  • New user_preferences table (keyed by user_sub) with a theme column: system | light | dark.
  • Appearance tab in the settings dialog gets a theme picker; the choice is saved per user via the setTheme server function.
  • Root loader now returns { version, preferences }; the theme is applied before first paint by an inline script (no flash), and "System" follows the OS setting live.

Test plan

  • pnpm typecheck, pnpm lint, pnpm knip
  • Migration and upsert checked against in-memory SQLite
  • Manual: sign in, switch theme in Settings → Appearance, reload and confirm it persists
## Summary - New `user_preferences` table (keyed by `user_sub`) with a `theme` column: `system` | `light` | `dark`. - Appearance tab in the settings dialog gets a theme picker; the choice is saved per user via the `setTheme` server function. - Root loader now returns `{ version, preferences }`; the theme is applied before first paint by an inline script (no flash), and "System" follows the OS setting live. ## Test plan - [x] `pnpm typecheck`, `pnpm lint`, `pnpm knip` - [x] Migration and upsert checked against in-memory SQLite - [ ] Manual: sign in, switch theme in Settings → Appearance, reload and confirm it persists
Add user preferences table and per-user dark mode setting
All checks were successful
CI / format (pull_request) Successful in 24s
CI / typecheck (pull_request) Successful in 43s
CI / knip (pull_request) Successful in 45s
CI / test (pull_request) Successful in 46s
CI / lint (pull_request) Successful in 46s
CI / docker (arm64, docker-arm64) (pull_request) Successful in 11s
CI / build (pull_request) Successful in 32s
CI / docker (amd64, docker-amd64) (pull_request) Successful in 12s
CI / manifest (pull_request) Has been skipped
E2E / playwright (pull_request) Successful in 44s
96af0127b1
Adds a user_preferences table and a System/Light/Dark theme picker under
Settings > Appearance, stored per user and applied before first paint.
miro force-pushed claude/user-preferences-dark-mode-509b6a from 96af0127b1
All checks were successful
CI / format (pull_request) Successful in 24s
CI / typecheck (pull_request) Successful in 43s
CI / knip (pull_request) Successful in 45s
CI / test (pull_request) Successful in 46s
CI / lint (pull_request) Successful in 46s
CI / docker (arm64, docker-arm64) (pull_request) Successful in 11s
CI / build (pull_request) Successful in 32s
CI / docker (amd64, docker-amd64) (pull_request) Successful in 12s
CI / manifest (pull_request) Has been skipped
E2E / playwright (pull_request) Successful in 44s
to b5ac1c0c3d
All checks were successful
CI / format (pull_request) Successful in 27s
CI / lint (pull_request) Successful in 48s
CI / test (pull_request) Successful in 51s
CI / knip (pull_request) Successful in 51s
CI / typecheck (pull_request) Successful in 52s
CI / docker (arm64, docker-arm64) (pull_request) Successful in 13s
CI / build (pull_request) Successful in 33s
CI / docker (amd64, docker-amd64) (pull_request) Successful in 14s
CI / manifest (pull_request) Has been skipped
E2E / playwright (pull_request) Successful in 47s
2026-10-10 22:49:10 +00:00
Compare
miro merged commit b345dc74a4 into main 2026-10-10 23:08:07 +00:00
miro deleted branch claude/user-preferences-dark-mode-509b6a 2026-10-10 23:08:07 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
miro/files!62
No description provided.