32ffe782ea
Flatten widget layouts and use system colors so banner and expanded regions render on vibrant lock screens; migrate auth sessions per account to prevent double sign-in; scope app lock PIN to accounts; default clock description to "Clock In"; add architecture docs and deferred form validation on auth screens. Co-authored-by: Cursor <cursoragent@cursor.com>
1.3 KiB
1.3 KiB
beenvoice-app — agent notes
Expo SDK 56. Read Expo v56 docs before changing native config.
Read first
- README.md — setup and run
- docs/ARCHITECTURE.md — routing, auth, accounts, tRPC, widgets
Conventions
- Package manager: Bun only
- API types: import
AppRouterfrombeenvoice/server/api/root(tsconfig path../beenvoice/src/*) - Styling:
useAppTheme()+useThemedStyles(); tokens inlib/theme-palette.ts - Forms:
lib/form-validation.ts; show errors only after blur/submit (useFieldVisibility) - Auth: never remount account without migrating SecureStore session (
lib/auth-storage.ts) - Widgets: all Live Activity UI must be inside the
"widget"function inwidgets/TimeClockActivity.tsx - Metro: port 8082; dev client required (not Expo Go)
Key files
| Concern | Path |
|---|---|
| Root providers | app/_layout.tsx |
| Multi-account | contexts/AccountsContext.tsx, lib/accounts.ts |
| Session migration | lib/auth-storage.ts |
| tRPC | lib/trpc.tsx |
| App lock | lib/app-lock.ts, contexts/AppLockContext.tsx |
| Time clock | components/time-clock/TimeClockPanel.tsx |
Server repo
Sibling ../beenvoice — run bun run dev on :3000 before mobile dev.