23 lines
994 B
YAML
23 lines
994 B
YAML
id: CORE-001D1
|
|
title: Portfolio Persistence Serialization Seam
|
|
status: done
|
|
priority: P1
|
|
effort: M
|
|
depends_on:
|
|
- CORE-001B
|
|
- CORE-001C
|
|
tags:
|
|
- core
|
|
- decimal
|
|
- persistence
|
|
- workspace
|
|
summary: Portfolio and workspace persistence now use an explicit unit-aware schema with strict validation and atomic saves.
|
|
completed_notes:
|
|
- Added `schema_version: 2` persistence envelopes for portfolio/workspace config storage.
|
|
- Persisted bookkeeping-sensitive numeric values now carry explicit unit or currency metadata.
|
|
- Load path now rejects invalid JSON, unsupported schema versions, malformed payload shapes, and incomplete v2 payloads.
|
|
- Save path now validates before writing and replaces files atomically.
|
|
- Invalid workspace config files are no longer treated as routeable workspaces.
|
|
- Legacy non-workspace routes were removed so canonical workspace URLs are the only supported dashboard paths.
|
|
- Validated with unit tests, `make build`, and live Playwright on `main`.
|