Skip to content

v1.3.0 — Dashboard widgets, reminders & hourly income

Choose a tag to compare

@Greigh Greigh released this 23 Jun 23:14
c044962

Dashboard customization, reminders across email and native apps, hourly income and income history, branded social sign-in, and dev entitlement testing — with expanded scheduler settings and 326 Vitest tests.

Added

  • Customizable dashboardClassic (fixed) or Widgets layout on web, iOS, and Android. Reorder and toggle nine shared widgets: overview tiles, period cash-flow, alerts, upcoming payments, net worth, spending, savings goals, subscriptions, and income history.
  • Income history — 12-month income trend with bonuses and average monthly pay on web, History tab (iOS/Android), and as a dashboard widget. Includes hourly-rate support with hoursPerWeek on every client.
  • Local bill reminders — opt-in on-device notifications on iOS and Android; rescheduled when data changes and after reboot on Android.
  • Configurable remindersreminderLeadDays (0–14), notifyHour (0–23), and optional remindOnDueDay on web, iOS, Android, and the server scheduler.
  • Weekly digest email — opt-in Monday summary of bills due in the next seven days plus card-debt total.
  • Branded social sign-in — Apple and Google buttons with official logos on web, iOS, and Android.
  • Dev entitlement override — DEBUG-only Pro simulation on web, iOS, and Android for paywall testing without a real purchase.
  • scripts/mail-check.js — on-server SMTP diagnostic with hints for common relay/firewall issues.
  • 326 Vitest tests (up from 293).

Changed

  • Bill-reminder emails follow user lead-time and due-day settings.
  • Unified Settings → Notifications section on all clients.
  • Android widget-mode dashboard and notification preference sheets.
  • native-contract.md, README, and platform READMEs updated.
  • Dependencies: stripe 22.2.3; Android versionCode 3.

Fixed

  • Hourly income sources without hoursPerWeek now contribute $0 to budget totals.

Full changelog: https://github.com/Greigh/FiHaven/blob/main/CHANGELOG.md#130--2026-06-23