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>
34 lines
1.3 KiB
Markdown
34 lines
1.3 KiB
Markdown
# beenvoice-app — agent notes
|
|
|
|
Expo SDK **56**. Read [Expo v56 docs](https://docs.expo.dev/versions/v56.0.0/) before changing native config.
|
|
|
|
## Read first
|
|
|
|
- [README.md](./README.md) — setup and run
|
|
- [docs/ARCHITECTURE.md](./docs/ARCHITECTURE.md) — routing, auth, accounts, tRPC, widgets
|
|
|
|
## Conventions
|
|
|
|
- **Package manager**: Bun only
|
|
- **API types**: import `AppRouter` from `beenvoice/server/api/root` (tsconfig path `../beenvoice/src/*`)
|
|
- **Styling**: `useAppTheme()` + `useThemedStyles()`; tokens in `lib/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 in `widgets/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.
|