docs(roadmap): sync snapshot with legacy access and contract cleanup

Made-with: Cursor
This commit is contained in:
Saravana Achu Mac 2026-04-04 20:34:23 -07:00
parent 7884639876
commit eb70ef6c03

View File

@ -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