Files
vault-dash/docs/roadmap/done/CORE-001D3A-alerts-settings-entrypoint-normalization.yaml
2026-03-26 13:54:56 +01:00

22 lines
1.3 KiB
YAML

id: CORE-001D3A
title: Alerts and Settings Entrypoint Normalization
status: done
priority: P2
effort: S
depends_on:
- CORE-001B
- CORE-001D2B
tags:
- core
- decimal
- alerts
- settings
summary: Alert evaluation and settings save-status formatting now normalize float-heavy inputs through explicit named adapters.
completed_notes:
- Added explicit normalization adapters in `app/services/alerts.py` and `app/services/settings_status.py`.
- Alert evaluation now compares thresholds through normalized Decimal-backed boundary values instead of ad-hoc `float(...)` extraction.
- Settings save-status formatting now snapshots numeric boundary values through a named adapter before rendering.
- Added focused regression tests for numeric-string coercion and bool fail-closed behavior in `tests/test_alerts.py` and `tests/test_settings.py`.
- Hardened `/{workspace_id}/settings` so blank loan input no longer silently saves as a zero-loan portfolio; the loan field now preserves blank state until validation, keeps whole-dollar formatting stable, and marks the save card as `Last saved` / `Unsaved invalid changes` instead of presenting stale saved state as current.
- Validated with focused pytest coverage, browser-visible Playwright coverage, and `make build` on local Docker.