diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index b59c01b..90fea71 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -121,6 +121,31 @@ A prioritized roadmap for the Vault Dashboard Lombard loan hedging platform. **Dependencies:** PORT-001 +### PORT-004: Hashed Workspace Persistence [P0, L] **[depends: PORT-001]** +**As a** user, **I want** my dashboard settings and scenarios to live inside a shareable hashed workspace URL **so that** I can return on a new device or share the exact workspace with someone else. + +**Acceptance Criteria:** +- First visit with no known workspace creates a new workspace id (UUID/hash-like token) and redirects to `/{workspace_id}` +- App stores the workspace id in a browser cookie for return visits +- Visiting an existing `/{workspace_id}` loads that workspace without requiring the cookie +- Workspace URL is copyable/shareable and restores the same settings on another device/browser +- Settings persistence is scoped by workspace id rather than one global local file +- Existing pages (`/settings`, `/overview`, `/hedge`, `/backtests`, `/event-comparison`) read/write the active workspace state +- Invalid or unknown workspace ids show a clear recovery path instead of a server error +- Browser test verifies: + - first visit creates/redirects to a workspace route + - cookie-backed revisit returns to the same workspace + - visiting the same workspace URL in a fresh context restores the same settings + +**Technical Notes:** +- Introduce a workspace model/repository keyed by generated id +- Prefer server-side persistence keyed by workspace id; cookie stores only the id, not the full state +- Keep workspace ids opaque and non-sequential +- Consider root route `/` as a bootstrap that resolves/creates the active workspace and redirects to `/{workspace_id}` plus nested page routes as needed +- Ensure routing design stays compatible with existing NiceGUI pages before implementation + +**Dependencies:** PORT-001 + --- ## Phase 3: Strategy Execution (Advanced Features) @@ -469,11 +494,12 @@ DATA-001 (Price Feed) ## Implementation Priority Queue -1. **BT-001B** - Prefill backtest UIs from canonical saved portfolio settings -2. **BT-003B** - Add event-comparison drilldown and explanation of ranking outcomes -3. **PORT-003** - Historical LTV visibility and export groundwork -4. **BT-002** - Upgrade backtests to real daily options snapshots -5. **BT-001C** - Consolidate deterministic historical fixture/demo provider logic -6. **EXEC-001** - Core user workflow -7. **EXEC-002** - Execution capability -8. Remaining features +1. **PORT-004** - Introduce hashed workspace persistence as the new state foundation +2. **BT-001B** - Prefill backtest UIs from canonical saved portfolio settings +3. **BT-003B** - Add event-comparison drilldown and explanation of ranking outcomes +4. **PORT-003** - Historical LTV visibility and export groundwork +5. **BT-002** - Upgrade backtests to real daily options snapshots +6. **BT-001C** - Consolidate deterministic historical fixture/demo provider logic +7. **EXEC-001** - Core user workflow +8. **EXEC-002** - Execution capability +9. Remaining features