From e6e0556ec6aa062485153827ea4c95948c49ea3f Mon Sep 17 00:00:00 2001 From: Saravana Achu Mac Date: Tue, 5 May 2026 09:36:04 -0700 Subject: [PATCH] docs(roadmap): record mobile sync decision --- docs/PRODUCTION_READINESS_HANDOFF_ROADMAP.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/PRODUCTION_READINESS_HANDOFF_ROADMAP.md b/docs/PRODUCTION_READINESS_HANDOFF_ROADMAP.md index f7a9a9c..03759ba 100644 --- a/docs/PRODUCTION_READINESS_HANDOFF_ROADMAP.md +++ b/docs/PRODUCTION_READINESS_HANDOFF_ROADMAP.md @@ -126,7 +126,7 @@ Goal: prove that NoteLett is using common platform services and packages at runt - [x] **P2.3** Add a local smoke script or extend existing scripts to check `GET /health`, `GET /api/bootstrap`, platform dependencies, and one authenticated product-backend flow in memory mode. Prefer reusing common platform smoke/self-test conventions. Commit: `a2053a7`; Verified: `bash -n scripts/local-smoke.sh`; `GITEA_NPM_TOKEN=dummy pnpm run smoke:local -- --skip-platform`; `git diff --check`. Added `pnpm run smoke:local` with common-platform `@bytelyst/palace`/`@bytelyst/llm` linked-build guards, NoteLett health/bootstrap checks, platform-service/extraction-service/mcp-server health checks, local access-token generation matching shared `@bytelyst/fastify-auth`, and authenticated workspace/note create/read cleanup in `DB_PROVIDER=memory`. Local Docker is unavailable (`docker: command not found`), so the live run skipped platform health while retaining those checks for environments with common-platform services running. - [x] **P2.4** Verify web and mobile shared clients propagate product identity, auth token, and request IDs where supported by common platform clients. Add tests where behavior is local. Commit: `efa2097`; Verified: `GITEA_NPM_TOKEN=dummy pnpm --filter @notelett/web exec vitest run src/lib/api-helpers.test.ts src/lib/platform.test.ts`; `GITEA_NPM_TOKEN=dummy pnpm --filter @notelett/mobile exec vitest run src/api/client.test.ts src/lib/platform-api.test.ts`; `git diff --check`. Added local web/mobile tests proving product API clients send `x-product-id`, bearer auth, and shared `@bytelyst/api-client` request IDs, and proving platform-client wrappers are configured with NoteLett product identity plus auth-token accessors. - [x] **P2.5** Decide whether mobile should adopt `@bytelyst/react-native-platform-sdk` now or explicitly defer it. If adopted, replace redundant local composition; if deferred, document why direct clients are still preferred. Commit: `bea7579`; Verified: `git diff --check`; `rg -n "react-native-platform-sdk|direct shared-client|MOBILE_PLATFORM_SDK_DECISION|Mobile Platform SDK Decision" docs/ROADMAP.md docs/MOBILE_DELEGATION_ROADMAP.md docs/roadmaps/04_MOBILE_ROADMAP.md docs/MOBILE_PLATFORM_SDK_DECISION.md`. Deferred direct SDK adoption in `docs/MOBILE_PLATFORM_SDK_DECISION.md` because current mobile already uses direct shared `@bytelyst/*` clients and the SDK does not yet cover product-backend API calls, blob uploads, diagnostics metadata, billing, feedback, offline queue, or the existing MMKV auth-client token contract without duplicate initialization. -- [ ] **P2.6** Decide whether `@bytelyst/sync` should back mobile offline/sync behavior now or be deferred. Record the decision and update implementation accordingly. Commit: +- [x] **P2.6** Decide whether `@bytelyst/sync` should back mobile offline/sync behavior now or be deferred. Record the decision and update implementation accordingly. Commit: `f90f358`; Verified: `git diff --check`; `rg -n "@bytelyst/sync|MOBILE_SYNC_DECISION|Mobile Sync Decision|offline-queue" docs/MOBILE_SYNC_DECISION.md docs/MOBILE_DELEGATION_ROADMAP.md docs/roadmaps/04_MOBILE_ROADMAP.md docs/ROADMAP.md`. Deferred `@bytelyst/sync` in `docs/MOBILE_SYNC_DECISION.md` because current mobile uses a narrower `@bytelyst/offline-queue` retry model and full sync adoption needs explicit backend sync windows, tombstones, conflict strategy, MMKV migration, telemetry, and stale/conflict UX. - [ ] **P2.7** Evaluate backend LLM usage against `@bytelyst/llm-router`. Either adopt the router for provider/model/fallback governance or document why `@bytelyst/llm` remains sufficient for NoteLett release 1. Commit: Acceptance criteria: