# Mobile Roadmap Status: In Progress Parent: `docs/ROADMAP.md` Stack: React Native + Expo + TypeScript # Phase M0 — Scaffold - [x] Create Expo app structure - [ ] Wire `@bytelyst/react-native-platform-sdk` - [ ] Wire `@bytelyst/api-client` - [x] Wire `@bytelyst/platform-client` - [x] Wire `@bytelyst/offline-queue` - [x] Import generated RN tokens - [x] Create navigation shell - [x] Define screen map # Phase M1 — Core MVP - [x] Auth flow - [x] Home / recent notes screen - [x] Note detail screen - [x] Quick capture flow - [x] Search screen - [x] Notifications/inbox placeholder if needed - [x] Connect notes/workspaces API client scaffold # Phase M2 — Product Utility - [x] Lightweight local editing - [ ] Notification handling - [ ] Offline queue / sync polish - [x] Approvals inbox scaffold if in MVP scope - [x] Basic artifact metadata viewing scaffold if in MVP scope # Phase M3 — Agent / Approval Utility - [x] Approval/reject actions scaffold - [x] Lightweight agent activity feed scaffold - [x] Mobile-friendly review surfaces scaffold for simple actions # Phase M4 — Hardening - [ ] Smoke tests - [x] Error-state polish - [x] Build/compile verification - [x] Token compliance review - [ ] Offline behavior review # High-Collision Areas - [x] root navigation setup - [x] auth bootstrap files - [x] token/theme entrypoints - [x] shared API client wrappers # Done When - [x] Mobile is useful for scaffolded capture and retrieval - [x] Mobile supports lightweight local editing and approval scaffolds for MVP - [x] Mobile does not try to duplicate dense web-only workflows # Progress Notes - 2026-03-10 — Mobile workstream moved from draft-only planning into initial implementation. - `learning_ai_notes/mobile/` was scaffolded from scratch with Expo + TypeScript. - Root app config now exists: `package.json`, `app.json`, `tsconfig.json`, `index.ts`, `babel.config.js`. - Expo Router shell now exists with auth entry, tab layout, home/recent notes, search, quick capture, inbox, and note detail routes. - Shared mobile bootstrap files now exist for: - `@bytelyst/auth-client` - `@bytelyst/platform-client` - `@bytelyst/offline-queue` - token-based theme wiring via `@bytelyst/design-tokens/tokens.json` - Zustand-backed auth, notes, and workspace stores were added for first-pass mobile state management. - Home/search/capture now use active workspace context for more useful mobile browsing. - Home now includes a workspace retrieval summary block to make the mobile surface more useful at a glance. - Note detail now supports lightweight editing against persisted notes plus basic artifact metadata viewing. - Note detail now exposes first-pass loading-state polish. - Inbox now supports simple approval/reject flows and a lightweight activity feed. - Capture now surfaces offline queue readiness details for the current mobile scaffold. - Home and search now expose first-pass loading and empty-state polish. - Mobile dependency install now succeeds, and `npm run typecheck`, `npm run lint`, and `npm test` pass in `mobile/`. - Mobile now uses token-backed placeholder and border colors instead of raw hardcoded fallbacks. - Expo now boots locally, and `tsconfig.json` was aligned to extend `expo/tsconfig.base`. - Mobile core Expo package versions were aligned to the SDK 55 expectations surfaced during runtime startup. - Mobile currently uses provisional product config, but the core quick-capture and note retrieval/edit slice is now wired to the product backend. - Quick capture now persists notes through the product backend instead of saving local-only drafts (`5995b6c`). - Quick capture now exposes live workspace selection directly on the capture screen (`8e57799`). - Mobile home now supports an explicit all-workspaces note view, and capture now requires a workspace before save when none is active (`7d23793`). - Inbox approvals/activity now hydrate from backend `note-agent-actions`, and approve/reject actions now patch the real backend review state (`8f14698`). - Mobile review actions now disable while approve/reject mutations are in flight (`7a80094`). - Mobile note detail now reflects persisted workspace/status/updated-at data instead of scaffold-era placeholder metadata (`2a93b5b`). - Mobile note save now awaits the persisted update before exiting edit mode (`5458090`). - Re-verified the current mobile slice with: - `npm run typecheck` # Open Questions - ~~Should the current provisional bootstrap values be treated as final?~~ **Resolved:** `productId: notelett`, port 4016, domain `notelett.app` - ~~What are the final iOS bundle identifier, Android package name, and URL scheme/domain values?~~ **Resolved:** iOS `com.bytelyst.notelett`, Android `com.notelett.app`, scheme `notelett` - Should mobile notes access go directly to the product backend for note CRUD while auth remains on `platform-service`? - Should the current local approval/activity model map directly to backend `note-agent-actions`, or stay as a mobile-specific condensed surface? # Blockers - `@bytelyst/react-native-platform-sdk` is referenced as a planned shared dependency, but the current workspace package does not appear ready for direct runtime consumption in this new app yet. - Product identity and backend contract details remain provisional in the planning docs, so mobile config values are placeholders. # Deferred - Real notification handling - Offline queue flush/retry integration against live APIs - Real backend persistence for approvals and activity