Repository navigation
Releases
v1.0.8
What's new
More useful weekly comparisons
Weekly spending now compares against the weeks with recorded spending within the previous nine completed calendar weeks. If four weeks contribute, the average uses four; zero-spend weeks are excluded. The displayed label shows the actual sample size, and no comparison is shown without history. Monthly comparisons remain unchanged. Last Week also selects the correct local calendar week across daylight-saving changes.
Combine filters and select several values
Insights and Transactions now support multiple categories, spenders, merchants, tags and payment methods. Values within one filter match any selection; different filters work together. Selected values stay visible and can be removed individually, by filter, or all at once. Opening all transactions keeps your selections through navigation, reload and pagination.
Focus on an amount range
Use optional minimum and maximum expense amounts to focus on routine purchases or larger items. Both bounds are inclusive and work with your other filters. The same range applies to current spending and historical comparisons; it never changes saved expenses or configured budgets.
Spending charts are clearer and consistent
The Today label is fully visible, including at the edges of the chart. Axis labels adapt to the available width and selected period. Spender selection now uses the correct person, and all visible Insights charts and transaction previews respect the same filters. Failed requests show an error and retry action instead of a misleading empty result.
Weekly budget edits save correctly
Changing an existing limit between monthly and weekly now persists and refreshes its progress, including the Home dashboard, without losing its other settings.
Save and keep logging
Save & Add Another records your expense, clears the draft and focuses the next amount while keeping you on the entry page. Regular Save still opens Transactions. Failed saves retain your draft, and repeated clicks do not create multiple expenses.
v1.0.7
What's new
Invitations take you to the right space
After signing in with Google, invitation links now return you to the space you were invited to join instead of sending you to create your own. You can review the space before accepting, and expired, used, or full invitations show clear messages.
Recover from joining the wrong space
If you already have a space, you can review a switch in Settings and leave your current space while joining the invited one in a single step. If joining fails, your current membership and data stay unchanged. The dashboard refreshes to show the correct space after a successful switch.
Leave a space from Settings
Settings now includes a Leave Space action with a review of the consequences and exact space-name confirmation. If other members remain, they keep the shared history. If you are the last member, leaving permanently deletes the space and all its data. Your account is kept, and no expense data is moved to another space.
Shared history stays useful
Expenses continue to show who originally paid, even after that person leaves. Remaining members can edit historical expenses and manage payment methods belonging to departed members. Built-in Cash remains protected.
Clearer feedback and smoother recovery
Successful leave and switch actions show a confirmation. If your session cannot refresh afterward, you can retry the refresh without repeating the membership change. Payment-method loading also avoids repeated database requests as your list grows.
Important: Deleting a last-member space cannot be undone in the app. Review the warning before confirming.
v1.0.6
What's New
Trendline shows today
The spending trend chart now stops the solid current-period line at today instead of running flat across the rest of the period. A dashed "Today" marker on the chart makes it obvious where you are in the week or month. The 3-month average dashed line still extends across the full period for reference. Past periods (Last Week / Last Month) continue to render fully as before.
Yearly trendline is finally readable
On YTD view, the chart's X-axis now shows month names (Jan, Feb, Mar...) instead of raw day numbers (1, 2, 3... 365). Hovering a data point shows the date as "Apr 25" instead of "Day 115". This works correctly regardless of your browser's timezone or daylight-saving time transitions.
Tags on mobile actually work
Mobile keyboards often hide or rename the Enter key, which made it impossible to add tags from your phone. Now you can commit a tag any of these ways:
- Comma — type
vacation,and the tag is added. - + button — a small plus button appears next to the input whenever there's something to add.
- Tap away — tapping anywhere outside the input commits the pending tag automatically.
Tags now validate as you type: invalid characters or tags longer than 50 characters show a clear error message instead of failing silently when you save the expense.
Better tag handling
Typing ##vacation now correctly normalizes to vacation to match how tags are stored. Tapping away from the input after adding a tag no longer re-opens the mobile keyboard, so you can move to the next field cleanly.
v1.0.5
What's New
Period selection now carries across views
Selecting This Week or This Month on the Home dashboard now applies everywhere. When you navigate to Transactions or Insights, they automatically show the same time period. Your search and filters work within that period.
Your period choice is also remembered if you refresh the page.
Filters work independently per view
You can still override the period on Transactions or Insights using the filter bar. Clearing a filter falls back to the Home toggle selection. The Reset button only appears when you've actually set a filter, not just because of the default period.
Cleaner Insights layout
The transaction list in Insights now shows up to 15 recent transactions for a tidier desktop layout, with a View all link to see the full list.
v1.0.4
What's New
Spending trend chart fully fixed
The trend line chart on Home and Insights now works correctly across all scenarios:
-
Average line extends to the full period — previously the dashed average line would stop early (e.g., day 28 in a 31-day month) because shorter historical months like February didn't have data for the remaining days. Now all historical periods are normalized to the same length.
-
Cumulative line no longer drops — the trend line could previously show a decrease on the last day of the week, which shouldn't happen for cumulative spending. The averaging logic now carries forward each period's last value when filling gaps, guaranteeing the line never goes down.
-
Weekly view shows weekday names — the X-axis now displays Mon, Tue, Wed, Thu, Fri, Sat, Sun instead of plain numbers 1-7 when viewing weekly data.
-
Legend and labels match the selected period — selecting Last Week correctly shows Last week in the legend (not This month), and the average label says 3-week avg for weekly views vs 3-month avg for monthly.
-
Year-to-date view is faster — the YTD trend no longer attempts to compute a 3-year average (which would be very slow). It shows only the current year's trend line.
v1.0.3
What's New
Spending limits now show the correct percentage and progress bar
Limits were displaying 0% progress even when you had real spending. For example, a limit at dollar 9 out of dollar 35 would show 0% instead of 27%. This is now fixed on both the Limits page and Home dashboard alerts.
Category names shown on limit cards instead of technical IDs
Limit cards previously showed long technical identifiers instead of the category name (e.g., a random string of characters instead of Groceries). Now you'll see the actual category name. If a category was deleted, the card shows Deleted category instead.
Editing a limit's categories now saves correctly
Changing which categories a limit tracks (adding or removing categories) was being silently ignored. Your category selections now persist when you edit a limit.
Better input validation
The app now validates category filter data at the point of entry, preventing corrupt data from entering the system. Invalid inputs receive a clear error message instead of being silently accepted.
v1.0.2
What's New
Spending limits now work correctly with category filters
Previously, setting a limit on a specific category (e.g., Groceries) would incorrectly show your total monthly spending instead of just that category. Now limits track exactly the categories you select. We also fixed an issue where category selections wouldn't appear highlighted when editing an existing limit.
Spending trend chart shows the full period
The trend line on Home and Insights now extends through the entire week or month, even if your last expense was a few days ago. The chart also starts at Day 1 instead of Day 0 for clarity.
Insights page is cleaner on desktop
The transaction list in Insights no longer loads endlessly and pushes charts off screen. It now shows your most recent transactions with a link to view all of them on the Transactions page.
v1.0.1
What's Changed
chore: update branching strategy and CI
- CONVENTIONS.md: new release-branch model (fix branches merge into release/X.Y.x, then release merges into main)
- CI now triggers on release branches
- Added version bump advisory and GitHub Releases policy
fix: normalize warning_pct precision
- Added Pydantic field_validator with ROUND_HALF_UP on LimitCreate and LimitUpdate
- Prevents silent data corruption when editing limits (e.g., 0.3333 normalizes to 0.33)
fix: continuous average trend line
- Use null + connectNulls so the Recharts average line draws through gaps instead of breaking
- Guard tooltip against null values (no misleading dollar-zero display)
- Backend test documenting average_series empty-period behavior