feat(CORE-001D1): harden unit-aware workspace persistence

This commit is contained in:
Bu5hm4nn
2026-03-25 13:19:33 +01:00
parent cfb6abd842
commit 132aaed512
13 changed files with 464 additions and 87 deletions

View File

@@ -108,9 +108,6 @@ Deliverables:
- replacing every float in every Pydantic/dataclass immediately
- redesigning third-party payload models wholesale
- changing public UI formatting behavior just for type purity
- solving instrument-level share-to-underlying conversion semantics such as `GLD share = 0.1 ozt` inside this slice alone
That broader instrument-aware unit problem is tracked separately in `CORE-002`.
## First candidate sub-slices
@@ -130,3 +127,13 @@ That broader instrument-aware unit problem is tracked separately in `CORE-002`.
- Decimal/unit-safe values cross boundaries through named adapters
- remaining float-heavy hotspots are either removed or intentionally documented as edge-only
- no regression in existing browser-visible flows
## Pre-launch rollout policy
For the current pre-launch stage, the storage schema may make a clean breaking transition.
That means:
- newly persisted numeric domain values should use explicit structured unit-aware storage
- old flat storage payloads do not need compatibility or migration yet
- invalid or old-format payloads should fail loudly instead of being silently normalized
A real migration path should be introduced later, once persistence is considered live for users.