5.6 KiB
5.6 KiB
Mobile Roadmap
Status: In Progress
Parent: docs/ROADMAP.md
Stack: React Native + Expo + TypeScript
Phase M0 — Scaffold
- Create Expo app structure
- Defer direct
@bytelyst/react-native-platform-sdkadoption until shared SDK parity is ready - Wire
@bytelyst/api-client - Wire
@bytelyst/platform-client - Wire
@bytelyst/offline-queue - Import generated RN tokens
- Create navigation shell
- Define screen map
Phase M1 — Core MVP
- Auth flow
- Home / recent notes screen
- Note detail screen
- Quick capture flow
- Search screen
- Notifications/inbox placeholder if needed
- Connect notes/workspaces API client scaffold
Phase M2 — Product Utility
- Lightweight local editing
- Notification handling
- Offline queue / sync polish
- Approvals inbox scaffold if in MVP scope
- Basic artifact metadata viewing scaffold if in MVP scope
Phase M3 — Agent / Approval Utility
- Approval/reject actions scaffold
- Lightweight agent activity feed scaffold
- Mobile-friendly review surfaces scaffold for simple actions
Phase M4 — Hardening
- Smoke tests
- Error-state polish
- Build/compile verification
- Token compliance review
- Offline behavior review
High-Collision Areas
- root navigation setup
- auth bootstrap files
- token/theme entrypoints
- shared API client wrappers
Done When
- Mobile is useful for scaffolded capture and retrieval
- Mobile supports lightweight local editing and approval scaffolds for MVP
- 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, andnpm testpass inmobile/. - Mobile now uses token-backed placeholder and border colors instead of raw hardcoded fallbacks.
- Expo now boots locally, and
tsconfig.jsonwas aligned to extendexpo/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, domainnotelett.appWhat are the final iOS bundle identifier, Android package name, and URL scheme/domain values?Resolved: iOScom.bytelyst.notelett, Androidcom.notelett.app, schemenotelett- 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-sdkdirect adoption is deferred for the production-readiness handoff; mobile currently uses direct shared@bytelyst/*clients. See../MOBILE_PLATFORM_SDK_DECISION.md.Product identity and backend contract details remain provisional in the planning docs, so mobile config values are placeholders.Resolved: NoteLett identity and backend URLs are now canonical.
Deferred
- Real notification handling
- Offline queue flush/retry integration against live APIs
- Real backend persistence for approvals and activity