This release adds 3 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
+4 more
Summary
AI summaryBudget UI now provides accessible data point labels, filter reset, consistent month navigation, corrected creation actions, undoable deletions, improved donut contrast, named account colours, session‑scoped filters, loading skeletons, keyboard operable switchers, ARIA state updates, hidden attribute enforcement, toast styling, translation fixes, and focus handling.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Feature | Low |
Budget → Statistics trend chart now labels scale max and data points with values. Budget → Statistics trend chart now labels scale max and data points with values. Source: llm_adapter@2026-07-20 Confidence: medium |
— |
| Feature | Low |
Budget → Subscriptions adds a "Reset filters" button when any filter is active. Budget → Subscriptions adds a "Reset filters" button when any filter is active. Source: llm_adapter@2026-07-20 Confidence: medium |
— |
| Bugfix | Medium |
Keyboard operation for range switcher in Budget → Statistics and My budget/Household switcher is fixed. Keyboard operation for range switcher in Budget → Statistics and My budget/Household switcher is fixed. Source: llm_adapter@2026-07-20 Confidence: medium |
— |
| Bugfix | Medium |
Trend chart and expense donut now provide text summaries for screen readers. Trend chart and expense donut now provide text summaries for screen readers. Source: llm_adapter@2026-07-20 Confidence: medium |
— |
| Bugfix | Medium |
Loan status filters and per‑loan filter button correctly report state via aria-pressed. Loan status filters and per‑loan filter button correctly report state via aria-pressed. Source: llm_adapter@2026-07-20 Confidence: medium |
— |
| Bugfix | Medium |
Hidden attribute is now respected on shared controls (floating action button, .btn elements). Hidden attribute is now respected on shared controls (floating action button, .btn elements). Source: llm_adapter@2026-07-20 Confidence: medium |
— |
| Bugfix | Medium |
Opening an account statement retains keyboard focus and the "new category" dialog properly traps, closes on Escape/click‑outside, and returns focus to opener. Opening an account statement retains keyboard focus and the "new category" dialog properly traps, closes on Escape/click‑outside, and returns focus to opener. Source: llm_adapter@2026-07-20 Confidence: medium |
— |
| Bugfix | Low |
"All categories already budgeted" notice in Budget → Plan is styled correctly again. "All categories already budgeted" notice in Budget → Plan is styled correctly again. Source: llm_adapter@2026-07-20 Confidence: medium |
— |
| Bugfix | Low |
Loan repayments no longer fallback to mixed‑language titles and category names across all languages. Loan repayments no longer fallback to mixed‑language titles and category names across all languages. Source: llm_adapter@2026-07-20 Confidence: medium |
— |
| Bugfix | Low |
Month‑comparison line under summary cards is fully translated and uses proper icons instead of ▲/▼ characters. Month‑comparison line under summary cards is fully translated and uses proper icons instead of ▲/▼ characters. Source: llm_adapter@2026-07-20 Confidence: medium |
— |
Full changelog
Added
- The trend chart in Budget → Statistics gives up its values. It drew two coloured lines without a single readable number; it now labels its scale maximum and the period bounds, and every data point can be selected to show its income and expenses — by pointer, by touch and by keyboard. The whole curve is one tab stop: arrow keys walk the points, Home and End jump to the ends, and each point carries its values in its accessible name, so the readout does not depend on hovering.
- Budget → Subscriptions can clear its filters. Four filters and a search could be combined, with no way back other than resetting each control; a "Reset filters" button now appears whenever something is narrowing the list. A list filtered down to nothing says so and offers the reset, instead of showing the "no subscriptions yet" state with its "add subscription" button.
Changed
- Every Budget tab now declares whether the month is its frame of reference. Month navigation appears as a whole or not at all — previously the Loans tab hid the arrows but kept the month label and the "current month" button, which did nothing there.
- The floating action button creates what belongs to the tab in view: an entry, an account, a budget, a subscription, a loan or a shared expense. On Loans it opened the entry dialog rather than the loan dialog, and on Statistics — a tab with nothing to create — it offered to add an entry.
- A new entry is dated in the month being viewed. Paging back to March and adding an entry filed it under today, so it disappeared from the list at the moment it was created. In the current month the date still defaults to today.
- Deleting a monthly budget or savings goal is undo-based like every other deletion in the module, instead of asking for confirmation first. Within Budget, a confirmation dialog is now reserved for deletions that cascade, such as accounts.
- The expense donut uses its own data-series palette instead of borrowing the accent colours of Shopping and Meals, and draws at most seven slices, aggregating the rest into "Other". Beyond eight categories it previously reused colours, so two slices could look identical. The palette carries at least 3:1 contrast against the page background in both light and dark themes.
- Account colours are chosen by name — "Teal", "Blue", "Violet" — where screen readers previously read out the hex code. The swatches come from theme tokens, so they lighten in dark mode.
- Budget filters no longer outlive a visit to the module. The account drill-down and the loan status filter stayed active after navigating away and back, the latter without any visible sign.
- Statistics and Plan show a loading skeleton instead of an empty area while their data arrives, matching the Budget tab.
Fixed
- The range switcher in Budget → Statistics can be operated with a keyboard. It was marked up as a tablist whose buttons were not tabs, so assistive technology announced an empty tablist and the arrow keys did nothing. The same applies to the My budget / Household switcher, whose single tab stop had no arrow-key navigation — a keyboard trap in which only one of the two options was reachable.
- The trend chart and the donut carry a text summary for screen readers, as the category chart on the Budget tab already did. Both were purely visual: their accessible name was the chart title and nothing else.
- The loan status filters and the per-loan filter button report their state through
aria-pressedinstead of colour alone. hiddenis honoured on shared controls. The floating action button and.btnelements setdisplayat the same specificity as the browser's own rule for hidden elements, so an element hidden by a page stayed on screen. The same trap had already been patched separately in Documents, Contacts and Budget; the guard now sits once for all shared controls.- The "all categories already budgeted" notice in Budget → Plan is styled again. It requested an
'info'toast, a variant that does not exist — the same defect class as the eight modules corrected in 1.36.0, of which this call was the last survivor. - Loan repayments no longer fall back to an English title and a German category name in all 23 languages.
- The month-comparison line under the summary cards is fully translated and uses icons rather than the ▲ and ▼ text characters, which fall outside the icon family and vary in width between fonts.
- Opening an account statement keeps the keyboard focus in the page instead of dropping it to the top, and the inline "new category" dialog traps focus, closes on Escape and on a click outside, and returns focus to the control that opened it.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
Related context
Related tools
Earlier breaking changes
- v0.71.3 Changes WebDAV backup default path from "/oikos/backups/" to "/yuvomi/backups/".
- v0.66.0 Repository URL changed to `https://github.com/ulsklyc/yuvomi`.
- v0.66.0 Docker image moved to `ghcr.io/ulsklyc/yuvomi`.
- v0.66.0 Project renamed from Oikos to Yuvomi.
- v0.62.0 Changes event dialog to unified sync target picker across Google and CalDAV calendars.
Beta — feedback welcome: [email protected]