Found during the #1221 pre-merge review (pre-existing, not introduced there): handler_dashboard.go's fetchCommitmentPurchases logs store errors but returns zeroed commitment KPIs ("log error but don't fail") - a silent fallback on a money-visible path. A store outage silently shows $0 active commitments / committed-monthly on the dashboard instead of an error state. Fix: propagate the error (or an explicit degraded marker the frontend renders as unavailable, never 0). Per feedback_no_silent_fallbacks / nullable-not-zero.
Found during the #1221 pre-merge review (pre-existing, not introduced there): handler_dashboard.go's fetchCommitmentPurchases logs store errors but returns zeroed commitment KPIs ("log error but don't fail") - a silent fallback on a money-visible path. A store outage silently shows $0 active commitments / committed-monthly on the dashboard instead of an error state. Fix: propagate the error (or an explicit degraded marker the frontend renders as unavailable, never 0). Per feedback_no_silent_fallbacks / nullable-not-zero.