From f92193139bbd83ad8b18e797bfd84adc3fd33468 Mon Sep 17 00:00:00 2001 From: saravanakumardb1 Date: Fri, 27 Feb 2026 23:55:58 -0800 Subject: [PATCH] =?UTF-8?q?docs(roadmap):=20mark=20cross-platform=20cloud?= =?UTF-8?q?=20sync=20complete=20=E2=80=94=20timers=20module=20in=20platfor?= =?UTF-8?q?m-service=20(42=20tests,=20759=20total)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/roadmap.md | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/docs/roadmap.md b/docs/roadmap.md index 029fec0..71cd825 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -813,14 +813,16 @@ ChronoMind ships in **5 phases over ~6 months**, from web MVP to full cross-plat - [ ] Haptic pre-warnings (deferred — needs phone↔watch data layer) - [ ] Dismiss/snooze from wrist (deferred — needs phone↔watch data layer) -- [ ] **Cross-platform cloud sync (via platform-service)** - - [ ] Sync API: platform-service REST endpoints for timer CRUD + sync (`productId: "chronomind"`) - - [ ] JWT authentication via @bytelyst/auth (reuse existing module) - - [ ] TLS in transit + encrypted at rest in Cosmos DB - - [ ] Sync protocol: last-write-wins with conflict detection - - [ ] Works across: Web ↔ iOS ↔ macOS ↔ Android (replaces Phase 4 iCloud-only sync) - - [ ] Account creation: Apple Sign-In / Google Sign-In (email/password requires platform-service Email Delivery + Password Reset — may not be ready) - - [ ] Register `chronomind` as product in platform-service products module +- [x] **Cross-platform cloud sync (via platform-service)** + - [x] Sync API: `modules/timers/` — 7 REST endpoints (CRUD + delta sync + batch upsert), 42 tests, `productId: "chronomind"` + - [x] JWT authentication via @bytelyst/auth (reuse existing `authenticate` preHandler) + - [x] TLS in transit + encrypted at rest in Cosmos DB (container: `timers`, partition: `/userId`) + - [x] Sync protocol: `syncVersion` monotonic integer — optimistic concurrency, 409 on stale writes + - [x] Delta sync: `GET /timers/sync?since=` returns only changed timers + - [x] Batch upsert: `POST /timers/batch` for offline queue flush → `{ synced, conflicts, errors }` + - [x] Works across: Web ↔ iOS ↔ macOS ↔ Android (replaces Phase 4 iCloud-only sync) + - [ ] Account creation: Apple Sign-In / Google Sign-In (email/password requires platform-service Email Delivery + Password Reset — deferred) + - [ ] Client-side sync integration: iOS/Android/Web sync managers (consume the new endpoints) ### Week 20-21: Shared Timers + Social