Changelog
0.5.0 (2026-04-18)
Features
- bulk-entry: add bulk entry workflow for snapshot creation (#26) (50b9c8e)
- bulk-entry: add cash flow support for snapshot creation (0e82259)
- bulk-entry: add keyboard navigation, auto-focus, and summary to cash flow section (6909c5e), closes #30
- bulk-entry: show full-precision previous values with fill button (08f3521)
- csv: add column mapping for CSV imports (#28) (6b04e1c)
- parsing: add locale-aware decimal parsing for number fields (c854267)
- ui: apply explicit button styles to HStack popovers (ac3a014)
Bug Fixes
- bulk-entry: commit field values on focus change despite .equatable() (f1db3f1)
- bulk-entry: consolidate duplicate .fileImporter into single modifier (a7155ab)
- bulk-entry: preserve field values when rows scroll off-screen (f120c20)
- bulk-entry: preserve field values when toggling row exclusion (9405a73)
- bulk-entry: eliminate input latency from redundant view recomputation (33f3bf7), closes #29
- bulk-entry: reduce SwiftUI invalidation cascades and redundant iterations (a076a40)
- bulk-entry: reduce unnecessary work in focus advance and CSV import (a4caafd)
- snapshot: use #Predicate and fetchLimit for snapshot lookups (28ad9fd)
0.4.1 (2026-03-15)
Continuous Integration
- docs: move release docs deployment into release-please workflow (faa08e0)
0.4.0 (2026-03-15)
Features
- Add documentation links and dev-aware version suffix (a5e9ab9)
- Add multi-currency support with exchange rate conversion (#22) (36b58f9)
- asset: Add converted value column and chart to asset detail view (70ebf17)
- assets: Add inline value editing to asset detail history table (144da63)
- categories: Add configurable category order via drag-and-drop (687066a)
- chart: Add dynamic multi-column legend to pie chart (568cf75)
- charts: Add target allocation line and dynamic y-axis to category allocation chart (851c45c)
- dashboard: Elevate UI to premium FinTech aesthetic (5cc344b)
- dashboard: Replace 14-day backward lookback with bidirectional closest-snapshot matching (9135f6f)
- dashboard: Smooth pie chart angle animation and improved color palette (76a0f67)
- exchange-rate: Auto-fetch missing exchange rates for all snapshots (ba64bee)
- import: Add currency column support with validation and auth-aware popovers (852d887)
- import: Move validation to per-row errors and add category apply mode (e803c30)
- security: Add lock-aware hover modifiers to prevent data leakage (107eecb)
- security: Add optional app lock with Touch ID and system password (833de3b)
- settings: Make settings window resizable (464a76c)
- settings: Use adaptive text alignment for privacy disclaimer (36c427c)
- ui: Add exchange rate display section to snapshot detail (399355e)
- ui: Add platform list reordering and category deviation help messages (5a78c9f)
- ui: Add shared animation constants with Reduce Motion support (cc34621)
Bug Fixes
- asset: Initialize picker caches in init to prevent invalid selection warnings (10b9816)
- charts: Use idiomatic RuleMark annotation for category chart tooltip (1454f85)
- dashboard: Prevent stat card labels from wrapping or truncating (daa0c6e)
- docs: Exclude CLAUDE.md and README.md from MkDocs build output (bb915de)
- docs: Fix language switcher on home pages for mike versioning (e5f037c)
- l10n: Add missing zh-Hant translations for charts, toolbars, and buttons (7fdc4d7)
- l10n: Localize privacy disclaimer in native About panel (aefc6c8)
- reactivity: Refresh list views after detail view edits (3ac18d3)
- tables: Add visible column resize handles to detail view tables (ec51c14)
- test: Replace flaky Task.sleep with deterministic Task.value await (e1477c8)
0.3.0 (2026-02-21)
Features
- charts: Upgrade asset detail sparkline to full line chart (5d51754)
- dashboard: Rebase cumulative TWR chart to 0% on period selection (3406577)
- ui: Modernize UI patterns with native macOS conventions (8a5c309)
Bug Fixes
- charts: Pin axes and fix tooltip clipping in detail view charts (d505c91)
- charts: Pin Y-axis domain to prevent axis shift during hover (c02d963)
- dashboard: Add 0% origin point to TWR history for consistent rebasing (44ad4ca)
- i18n: Add missing zh-Hant translations for empty state views (1137cb9)
- l10n: Make CSV column names non-localizable in import view (470ec97)
0.2.0 (2026-02-20)
Features
- import: Add platform apply mode for CSV import (af70a67)
- ui: Make sidebar always visible and non-collapsible (275db37)
Bug Fixes
- import: Cache CSV file data to fix platform selection after file load (5d8b1e6)
- import: Improve CSV import reliability and UX (#15) (d58be4d)
- import: Preserve excluded rows when platform or category changes (13c9aef)
- import: Reset import form after successful CSV import (5b80783)