Official URL migration preserves sessions, shortcuts prefs, and last clock-in client; auth screens match web with legal links; time clock and invoice editor/send flows are updated for the new domain and UI patterns. 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-web/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-web` — run `bun run dev` on :3000 before mobile dev.
|