Skip to main content

Changelog

Every improvement, automatically tracked from our commit history.

Subscribe via Atom feed
← Prev Page 52 of 127 Next →
February 22, 2026
minor Finance

Add YNAB-style weekly targets with dynamic day-of-week segments

Finance 3.12.4 → 3.13.0 | e0b3ce11
Details

Weekly spending goals now let users pick which day of the week their

recurring expense falls on (e.g., Saturday for groceries). The monthly

budget is calculated as weeklyTarget × actual occurrences of that day

in the month (4 or 5), replacing the approximate weeks-remaining math.

The progress bar dynamically renders 3 or 4 dividers via an

ItemsRepeater bound to computed divider positions, instead of

hardcoding 3 dividers for a fixed 4-segment layout.

Changes:

  • Category model: added GoalWeekday (DayOfWeek?) field
  • GoalService: added CountWeekdayOccurrences() and

CalculateWeeklySegmentProgress(); rewrote CalculateWeeklyForMonth()

to use exact weekday counting; updated CalculateGoalProgress() to

compare allocated against the true monthly total for weekly goals

  • CategoryViewModel: added WeeklySegmentCount, WeeklyDividers

(ObservableCollection<WeeklyDividerViewModel>) with computed

Canvas.Left positions; updated GoalProgressDisplay to show monthly

total for weekly goals

  • BudgetDashboardView: replaced 3 hardcoded Border dividers with

dynamic ItemsControl bound to WeeklyDividers

  • CategoryManagementViewModel: added WeekdayOption record,

WeekdayOptions array, SelectedWeekdayOption property, HasWeekday

computed property; persist GoalWeekday in SaveCategoryAsync

  • CategoryManagementView: added day-of-week ComboBox visible only

when goal type is Weekly Spending

  • FinanceSeedService: Groceries defaults to Saturday; allocation

uses CountWeekdayOccurrences for accurate monthly totals

  • Version bump: 3.12.4 → 3.13.0
patch Finance

Replace weekly tick marks with pill-style segment gaps

Finance 3.12.3 → 3.12.4 | e28ab36e
Details

Weekly goal bars now show 4 distinct pill segments separated by 4px

background-colored gaps instead of barely visible 1px tick marks.

The gaps punch through the fill bar using the background color,

creating clear visual separation between weekly segments.

patch Finance

Fix CurrencyBox Value binding to TwoWay so edits propagate

Finance 3.12.2 → 3.12.3 | d62ab949
Details

ValueProperty defaulted to OneWay binding, so when the user edited

the amount and tabbed out, the parsed value was set on the CurrencyBox

but never pushed back to CategoryViewModel.Allocated. Changed the

default binding mode to TwoWay so LostFocus edits flow back to the

ViewModel, triggering save and dashboard refresh.

patch Finance

Disable ZBB methodology switcher, default to Envelope mode

Finance 3.12.1 → 3.12.2 | 077053ec
Details

Removed the "Switch Mode" button and methodology label from the

budget dashboard UI. Hardcoded IsEnvelopeMode = true so the Envelope

code path always executes. Updated intent handlers and indexable

content to pass true directly instead of reading MethodologyType.

ZBB code is preserved but unreachable for potential future use.

patch Finance

Add bottom padding to Finance ScrollViewers to prevent status bar cutoff

Finance 3.12.0 → 3.12.1 | 7f8e7721
Details

All four Finance views (Budget, Reports, Register, Reconciliation) had

ScrollViewers with no bottom padding, causing the last row of content

to be clipped behind the shell's status bar. Added bottom padding to

each ScrollViewer so the last item scrolls fully into view.

← Prev Page 52 of 127 Next →

Get notified about new releases