docs: add hashed workspace persistence story
This commit is contained in:
@@ -121,6 +121,31 @@ A prioritized roadmap for the Vault Dashboard Lombard loan hedging platform.
|
|||||||
|
|
||||||
**Dependencies:** PORT-001
|
**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)
|
## Phase 3: Strategy Execution (Advanced Features)
|
||||||
@@ -469,11 +494,12 @@ DATA-001 (Price Feed)
|
|||||||
|
|
||||||
## Implementation Priority Queue
|
## Implementation Priority Queue
|
||||||
|
|
||||||
1. **BT-001B** - Prefill backtest UIs from canonical saved portfolio settings
|
1. **PORT-004** - Introduce hashed workspace persistence as the new state foundation
|
||||||
2. **BT-003B** - Add event-comparison drilldown and explanation of ranking outcomes
|
2. **BT-001B** - Prefill backtest UIs from canonical saved portfolio settings
|
||||||
3. **PORT-003** - Historical LTV visibility and export groundwork
|
3. **BT-003B** - Add event-comparison drilldown and explanation of ranking outcomes
|
||||||
4. **BT-002** - Upgrade backtests to real daily options snapshots
|
4. **PORT-003** - Historical LTV visibility and export groundwork
|
||||||
5. **BT-001C** - Consolidate deterministic historical fixture/demo provider logic
|
5. **BT-002** - Upgrade backtests to real daily options snapshots
|
||||||
6. **EXEC-001** - Core user workflow
|
6. **BT-001C** - Consolidate deterministic historical fixture/demo provider logic
|
||||||
7. **EXEC-002** - Execution capability
|
7. **EXEC-001** - Core user workflow
|
||||||
8. Remaining features
|
8. **EXEC-002** - Execution capability
|
||||||
|
9. Remaining features
|
||||||
|
|||||||
Reference in New Issue
Block a user