24 lines
1.7 KiB
YAML
24 lines
1.7 KiB
YAML
id: CORE-001D
|
|
title: External Boundary and Persistence Cleanup for Decimal Unit Types
|
|
status: done
|
|
priority: P2
|
|
effort: M
|
|
depends_on:
|
|
- CORE-001B
|
|
- CORE-001C
|
|
tags:
|
|
- core
|
|
- decimal
|
|
- persistence
|
|
summary: The remaining Decimal/unit-safe boundary cleanup slices have been completed across persistence, provider/cache adapters, alerts/settings, historical-provider boundaries, and historical scenario service entrypoints.
|
|
completed_notes:
|
|
- `CORE-001D1` made the portfolio/workspace persistence seam explicit with strict unit-aware schema validation and atomic saves.
|
|
- `CORE-001D2A` and `CORE-001D2B` normalized quote, option-expiration, and options-chain provider/cache boundaries in `DataService`.
|
|
- `CORE-001D2C` normalized `PriceFeed` cache/provider payloads through explicit adapters aligned with `CacheService`.
|
|
- `CORE-001D2D` normalized historical provider rows and synthetic option quote construction in `app/services/backtesting/historical_provider.py`.
|
|
- `CORE-001D3A` tightened alerts and settings save-status service entrypoints with named normalization adapters.
|
|
- `CORE-001D3B` turned corrupt alert-history storage into an explicit degraded state with logging and route-visible notices.
|
|
- `CORE-001D3C` normalized historical scenario inputs for backtests and event comparison through a shared adapter.
|
|
- Remaining raw-float dataclasses such as `LombardPortfolio`, `PriceData`, and MVP backtest result models are now treated as intentional edge-facing compatibility surfaces rather than undocumented internal seams.
|
|
- Validated through focused pytest coverage, browser-driven local Docker checks on the affected routes, and repeated `make build` runs across the shipped slices.
|