• v0.9.1 75ea48d96a

    Simpl'Résultat v0.9.1
    All checks were successful
    Release / build-and-release (push) Successful in 29m42s
    Stable

    Ghost released this 2026-05-11 00:36:51 +00:00 | 0 commits to main since this release

    Added

    • Bilan: 4 starter accounts (Checking account, TFSA, RRSP, Non-registered account) are seeded for new profiles, and a one-shot opt-in modal proposes them to existing profiles on their first /balance visit. Default-checked checkboxes; existing accounts with the same name + category disable the matching row with a "Already exists" tooltip. Confirming or dismissing both write user_preferences.balance_starter_proposed so the modal never re-appears. ADR 0012 (Proposed) captures the future two-level vehicle × composition model (#179).

    Changed

    • Price-fetching activatedmaximus-api /v1/prices is live in production since 2026-05-05. The premium price-fetching feature shipped in 0.9.0 (#160) is now functionally available end-to-end (#161).
    • Settings reorganized into 3 sub-pages — the single 12-card Settings page is split into a hub (/settings) that links to three thematic sub-pages: /settings/users (accounts, licenses, user guide), /settings/data (categories, backup, price-fetch privacy) and /settings/systems (version, update, version history, logs + feedback). The user guide and changelog, previously full-page routes, are now embedded inside their parent sub-page; the legacy /docs and /changelog URLs redirect to keep external bookmarks and release-note links working. The token-store fallback security banner is now rendered once at the top of the settings layout, visible from every main settings sub-page (#190).
    • App icon — replaced the default Tauri scaffolding icon with a custom design: a robot-faced calculator with a privacy lock on the Enter / = key. Conveys the four product values — robot (assistant), simplicity (geometric shapes), accounting (calculator), privacy (lock). Source SVG kept at src-tauri/icons/icon.svg for future iterations; all 16 platform-specific raster sizes regenerated via tauri icon. Web favicon and window <title> updated too (was "Tauri + React + Typescript" from the default scaffold).
    • Bilan: replaced empty /balance state with a 2-step onboarding card (Create an account → Enter a snapshot) so users no longer see a confusing "no snapshot" screen before any account exists. The "+ New snapshot" button is hidden until at least one account exists. The /balance/snapshot empty-state copy now clarifies what an account is vs. what a snapshot is (#178).

    Fixed

    • Bilan: fix SQLite "misuse of aggregate function MIN()" error when loading /balance with existing snapshots; replaced aggregate-in-WHERE pattern with ROW_NUMBER() window function in getAccountsPeriodAnchor (#175).
    • Bilan: snapshot save now uses atomic BEGIN/COMMIT and validates all lines before any DB write, preventing orphan snapshot rows when validation fails. Migration v11 cleans existing orphans (#176).
    • Bilan: snapshot date picker on /balance/snapshot now closes after a date is selected on Linux (WebKitGTK), instead of staying open until the user pressed Esc. Workaround calls blur() on the input after each change — no-op on Windows WebView2 / macOS WKWebView, where the picker already auto-closes (#177).
    • Updated postcss dependency (8.5.6 → 8.5.13) to address moderate severity advisory GHSA-qx2v-qp2m-jg93 (XSS via unescaped </style> in CSS stringifier). Transitive via vite, build-time only — no runtime impact on the shipped Tauri binary (#180).
    • WebKitGTK date picker workaround extended to the remaining 7 native <input type="date"> fields across 4 components (Transactions filter bar, Adjustments form, Link Transfers modal, Period selector). Each onChange handler now calls e.currentTarget.blur() to dismiss the native popup on Linux Tauri WebView — no-op on Windows WebView2 / macOS WKWebView. Same approach as #177 (#188).
    • Bilan: post-merge cleanup of suggestions raised in the #182-#185 reviews. Six fixes bundled: (1) getStarterCollisions now filters archived_at IS NULL so re-creating a voluntarily archived starter is no longer blocked; (2) proposeStarterAccounts re-checks each (name, category) collision in-transaction before INSERT as defense-in-depth (skips silently on hit, no UNIQUE constraint added); (3) brand-new profiles now get balance_starter_proposed pre-seeded in consolidated_schema.sql so the StarterAccountsModal never briefly opens with all-collisions on first /balance visit; (4) /balance now hides the period selector, evolution chart and accounts table while the empty-state onboarding card is shown (avoids three stacked empty messages); (5) BalanceOnboardingCard.Step now calls useTranslation() directly instead of receiving t as a prop; (6) return_calculator.rs Modified Dietz formula doc block is wrapped in a text fence so cargo test --doc no longer fails to compile pseudo-math as Rust (#187).

    Installation

    Windows : Téléchargez le fichier .exe ci-dessous.
    Linux : Téléchargez le fichier .deb ou .AppImage ci-dessous.

    Downloads