# 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.