mirror of
https://github.com/we-promise/sure.git
synced 2026-05-07 12:54:04 +00:00
- Add `Setting.insights_enabled` feature gate at top of GenerateInsightsJob#perform - Fix race condition in upsert_insight with recursive retry on RecordNotUnique - Use Provider::Openai.effective_model instead of hardcoded DEFAULT_MODEL - Rescue Money::Currency::UnknownCurrency in currency_symbol fallback - Fix budget dedup key to stable "budget_pacing:<date>" (prevents flip-flop between at_risk/on_track) - Fix cash flow projection off-by-one: iterate (1..PROJECTION_DAYS) not (0..PROJECTION_DAYS) - Eliminate N+1 in IdleCashGenerator by precomputing active_account_ids in one SQL query - Rename all_time_high -> thirty_day_high (series is 30-day, not truly all-time) - Update net_worth_milestone i18n: title_ath -> title_30d_high, "30-day high" language - Anchor SpendingAnomalyGenerator baseline to current_period.start_date (not calendar months) - Fix spending_anomaly dedup key to use current_period.start_date instead of Date.current - Add .order(last_occurrence_date: :asc) to SubscriptionAuditGenerator for deterministic results - Stub Setting.insights_enabled in job tests; add generated_at assertion to upsert test https://claude.ai/code/session_014vY9xohpm3abSAxVxRF27a