v1.1.x
All releases on the 1.1 minor line. Newest first.
v1.1.0 — 2026-05-01
Largest functional update since v1.0.0. Adds editable purchase facts on assets with cascade through history, a currency picker on the transaction form, and an App Version display in Settings.
New Features
- Purchase value and purchase date are now editable (Assets). Value-based and unit-based assets previously locked these fields after creation, leaving no way to fix a typo without deleting and recreating the asset. The "Purchase Details" section in the edit modal exposes both fields. Balance-based assets are unchanged — they have no purchase concept.
- Edits to purchase value cascade through the full history (Assets). Correcting the cost basis updates every history snapshot of that asset, so the profit-and-loss chart and tax calculations realign immediately. Without this cascade the asset's main row would carry the corrected value while old chart points still showed the wrong P&L.
- Edits to the purchase date move the first history entry (Assets). The snapshot at the original purchase date is moved to the new date so the chart reflects "I actually bought it on this date." If a later observation already exists at the new date, the original snapshot is dropped and the existing entry takes over.
- Currency picker added to the transaction form (Transactions). Transactions previously used your account's default currency regardless of where the spend happened. The form now has an explicit Currency selector, defaulting to your account currency but free to switch per transaction.
- App version shown in the About card (Settings). The Settings page has a new About section displaying the running version (e.g. "App Version: v1.1.0"), making it easy to confirm which build you're on.
Bug Fixes
- Unit-based "Edit Asset Details" now saves successfully (Assets). The kebab-menu entry was added in v1.0.1 but the underlying save path was throwing for unit-based assets, leaving the modal silently stuck. Tax rate, fees, and renames work end-to-end now.
- Inline new categories now submit successfully (Transactions). Creating a category on the fly from the transaction form was triggering a validation error because an empty category id was sent as a string instead of being omitted. Categorising via "Create new" works.
- Recurring transactions accept brand-new categories (Transactions). Setting up a recurring template with a category typed inline used to fail because the template required a real category id. The view creates the category first now and uses the resulting id when scheduling the template.
- Group selection persists when editing a category (Categories). Editing a category previously reset the Group dropdown to "Ungrouped", forcing you to re-pick the group every time. The modal opens with the current group preselected now.
Improvements
- Currency-conversion banner removed from tables (Tables). The "N of M assets/liabilities displayed using live exchange rate conversion" notice at the top of asset and liability tables was visual noise without an actionable signal. Removed.
- Inline chips fade out on row hover (Tables). Action buttons appearing on row hover used to overlap the foreign-currency badge and other chips. Chips fade in sync with the value column now so the action area is clear.
Internals & quality
- 211 unit tests, up from 167 at v1.0.2. New coverage spans the asset payload builder, asset service cascade behaviour, asset history repo, transaction payload helpers, and category modal helpers — including regression tests for each bug listed above.
- New pure helper modules extracted from views to keep view logic testable without rendering:
src/lib/forms/transaction-payload.ts,src/lib/forms/category-modal.ts.
Migration & data notes
- No database schema changes. Existing rows are unaffected on upgrade.
- The purchase-value cascade applies only to new edits going forward. Historical mismatches in snapshots created before v1.1.0 are not retroactively reconciled — open the affected asset and re-save it once to trigger the cascade.