From eb70ef6c03596699c5c0db09f4c696ced03a6b05 Mon Sep 17 00:00:00 2001 From: Saravana Achu Mac Date: Sat, 4 Apr 2026 20:34:23 -0700 Subject: [PATCH] docs(roadmap): sync snapshot with legacy access and contract cleanup Made-with: Cursor --- docs/ROADMAP.md | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 435e526..1b9e9cf 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -25,7 +25,7 @@ It assumes: - `[x]` done - `[!]` blocked / decision needed -### Implementation snapshot as of `2026-04-04` +### Implementation snapshot as of `2026-04-05` - [x] Monorepo foundation scaffolded with root workspace config, shared runtime, shared product identity, local package linking, and verification scripts - [x] Backend migrated into `backend/` and passing typecheck, build, test, and backend verification gates @@ -48,8 +48,13 @@ It assumes: - [x] Runtime order, trade-history, manual-entry, order-activity, and reconciliation-audit repositories now use Cosmos-backed trading-record storage instead of the legacy service layer - [x] Runtime sub-tag repair now operates through the Cosmos-backed order repository - [x] Root verification and lint flows now run successfully without sandbox-hostile script harness behavior -- [-] DRY cleanup completed for runtime/config/bootstrap concerns, shared websocket auth helpers, platform-session handling, and request tracing, but not yet for all persistence and feature-flag concerns -- [-] Cosmos-only execution persistence is now in place for the main backend runtime paths; remaining cleanup is removing dormant legacy code paths and reference scripts +- [x] Web runtime no longer instantiates a live Supabase browser client; legacy import paths fail fast with an explicit unsupported message +- [x] Backend startup validation treats Cosmos as a first-class per-user credential store (alongside optional legacy Supabase) when `.env` broker keys are placeholders +- [x] Cosmos-first repositories no longer take an injected legacy service handle for users, profiles, presets, snapshots, capital ledger, or strategy presets; legacy Postgres reads/writes go through `legacySupabaseClient.ts` +- [x] `apiServer` no longer imports `SupabaseService`; admin-scoped HTTP behavior uses `isTradingAdmin` (platform JWT role first, then legacy user-store admin flag) +- [x] Shared order/reconciliation row types live in `tradingPersistenceTypes.ts`; trading user row shape lives in `tradingUserTypes.ts` (with `SupabaseService` re-exporting for compatibility) +- [-] DRY cleanup is largely complete for runtime/config/bootstrap, websocket auth helpers, platform-session handling, request tracing, persistence type layering, legacy access surface, and the backtest feature-flag contract; **optional follow-ups:** shrink `SupabaseService.ts`, tighten root-level script imports, admin audit schema +- [-] Cosmos-only execution persistence is in place for main `backend/src` runtime paths; **remaining:** many one-off `backend/*.ts` maintenance scripts still import `supabaseService` directly; classify or migrate over time ## 3. Guiding Rules @@ -614,3 +619,5 @@ Reason: - [x] Finish remaining web direct legacy data-table reads and writes behind backend APIs - [x] Replace remaining transitional web auth compatibility surfaces with fully common-platform-native session handling - [x] Add release smoke coverage for web auth/kill-switch and mobile auth/kill-switch flows +- [ ] Audit root-level `backend/*.ts` scripts: migrate `getClient`-only usage to `legacySupabaseClient` where practical, or document intentional direct `supabaseService` use +- [ ] Phase 2 backlog still open: module layout under `backend/src`, legacy module classification, generic lib split, typed API contract sweep, websocket models, admin audit schema, deprecated-endpoint / legacy compatibility documentation