Reflect all changes since v0.2.3: Linux installation (deb/rpm/AppImage),
multiple profiles, transaction splits, budgets, encrypted export/import,
dark mode, interactive charts, user guide, and auto-updater. Fix GitHub
repo URL in badges.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Users who installed via MSI (Program Files) received NSIS updates
(LocalAppData), causing the app to revert to the old version on restart.
Serialized platform builds to prevent latest.json race condition.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Passive mode prevented NSIS installer from requesting UAC elevation,
causing updates to silently fail and roll back to the last installed version.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Change split icon color to orange-500 in transactions table for
better contrast in both dark and light modes
- Show split transactions at the top of the adjustments left panel
when there are no manual adjustments (instead of below empty state)
- Add a divider between manual adjustments and splits when both exist
Bumps version to 0.3.5.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add a "Répartitions" section below manual adjustments listing all
split transactions. Clicking a split opens the existing modal to
view, edit, or delete it.
Fix CSV auto-detect failing on files with preamble lines (e.g.
Mastercard CSVs with metadata header). Three fixes:
- Delimiter detection uses mode of column counts instead of first-line
- Detect and skip preamble rows before header/data detection
- Exclude date-like columns from amount candidates and prefer columns
with decimal values when picking the amount column
Bumps version to 0.3.4.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
dpkg rejects non-ASCII characters in package names. The window title
remains "Simpl'Résultat" as it is set separately.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Allow users to split a transaction across multiple categories directly
from the transactions table. Split children are hidden from the list
and automatically included in dashboard, report, and budget aggregates.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
ProfileSwitcher was hidden when only one profile existed, making it
impossible to access "Manage Profiles" to create additional profiles.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Auto-fix duplicate sort_order values on load, auto-assign sort_order on
category creation, and add drag-and-drop via @dnd-kit to reorder and
reparent categories in the tree (with 2-level nesting constraint).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Each profile gets its own SQLite database file for complete data isolation.
Profile selection screen at launch, sidebar switcher for quick switching,
and optional 4-6 digit PIN for privacy. Existing database becomes the
default profile with seamless upgrade.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add DocsPage with full user guide content, TOC sidebar with scroll spy,
and a print button that opens the OS print dialog for PDF export.
Print styles hide sidebars and remove layout constraints for clean output.
Link to user guide added on Settings page.
Bump version to 0.2.12.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
New tabular report showing actual vs budgeted amounts per category,
with dollar and percentage variations for both the selected month
and year-to-date. Includes parent/child hierarchy, type grouping,
variation coloring, and month navigation.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Parent categories now display as bold read-only subtotal rows with their
children indented below. Expenses show as negative (red), income as
positive (green). Inputable parents get a "(direct)" child row for their
own budget entries.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add period buttons (This month, 3 months, 6 months, This year, All)
above the transaction filters. "This year" is selected by default so
the page no longer shows all transactions since the beginning of time.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Show a delete button only when a template is selected, next to the
update button. Removes the confusing row of small X icons that could
be accidentally clicked.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Create import_sources + imported_files tracking records when importing
transactions from Settings > Data Management, so imports appear in the
Import History panel and can be deleted like CSV imports.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
selectSource had an empty dependency array, causing a stale closure
where importedFilesBySource was always the initial empty Map. This
made the new-file filter select all files including imported ones.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The template dropdown now stays on the selected value after applying,
and a new update button lets users save config changes back to the
selected template.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Change imported_files UNIQUE constraint from (source_id, file_hash) to
(source_id, filename) so files with identical content but different names
each get their own record. Update createImportedFile to look up existing
records by filename instead of hash.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add export (JSON/CSV) and import (full replace) to the Settings page.
Export supports 3 modes (transactions+categories, transactions only,
categories only) with optional password encryption using Argon2id key
derivation. Import detects encrypted .sref files, prompts for password,
and shows a destructive confirmation modal before replacing data.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Detect duplicate transactions across selected files (not just against DB),
create separate imported_files records per file for proper hash tracking,
fix progress display to show current file, and exclude already-imported
files from "Select all".
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v0.2.6 still had comment lines in schema.sql that changed the SHA-384
checksum. sqlx requires byte-for-byte match with the originally applied
migration SQL. schema.sql is now identical to the v0.2.4 original.
Migrations 4 (is_inputable column) and 5 (import_config_templates table)
in lib.rs handle adding these to existing databases.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
schema.sql was modified in v0.2.5 to include is_inputable column and
import_config_templates table. Since schema.sql is include_str!'d into
migration 1, this changed its SHA-256 checksum in sqlx's migration
tracker, blocking migrations 4 and 5 from running.
Reverts schema.sql to its original v0.2.4 state so the checksum matches
and new migrations can apply. Fixes both "no such table:
import_config_templates" and is_inputable defaulting to false.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add reusable import config templates so users can save and apply CSV
parsing configurations across different import sources. Includes
database table, service, hook integration, and template UI in the
source config panel.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Budget page: replace single-month view with 12-month annual grid
with inline editing, split-evenly button, and year navigation
- Import: pre-select only new files and sort them first, show
"already imported" badge on previously imported files
- Add confirmation modals for category re-initialization and
import deletion (single and bulk), replacing native confirm()
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add SVG fill patterns to differentiate chart categories beyond color
- Add right-click context menu on charts to hide categories or view transactions
- Add transaction detail modal showing all transactions for a category
- Change import preview from wizard step to popup modal
- Add direct "Check Duplicates" button skipping preview step
- Bump version to 0.2.3
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds a toggle button to view all keywords across categories in a
searchable table with accent-insensitive filtering. Clicking a category
name navigates back to the normal view with that category selected.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Toggle via Moon/Sun button in sidebar. Persists to localStorage with
prefers-color-scheme fallback. Fixes hardcoded colors (error banners,
badges, chart tooltips, Settings text) to use CSS variables.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Import: persist `has_header` flag to DB (migration v3) so headerless
CSVs like Desjardins don't lose their first data row on re-import.
- Categories: promote children to root on parent deletion instead of
cascading deactivation, preventing invisible orphans.
- Categories: add re-initialize button to reset all categories and
keywords to seed defaults.
- Bump version to 0.2.1 across tauri.conf.json, package.json, Cargo.toml.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Budget: monthly data grid with inline-editable planned amounts per
category, actuals from transactions, difference coloring, month
navigation, and save/apply/delete budget templates.
Adjustments: split-panel CRUD for manual adjustment entries.
Both features include FR/EN translations and follow existing
service/hook/component patterns.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Fix column display for Desjardins-style quoted CSVs (apply preprocessQuotedCSV in header loading)
- Fix column mapping disappearing on back-navigation (generate synthetic headers when hasHeader is false)
- Fix auto-detect picking account number as amount (exclude constant-value columns, treat 0 as empty in debit/credit detection)
- Use category type instead of amount sign for dashboard pie chart and recent transactions
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Analyzes imported CSV files to automatically detect delimiter, header,
date format, column mapping, amount mode, and sign convention. Excludes
running balance columns from amount mapping via consecutive-row math.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Tag icon appears next to the category combobox when a category is
assigned. Clicking it expands an inline row pre-filled with the
transaction description, allowing users to add keyword rules without
leaving the Transactions page.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Each page now shows a ? icon next to its title that toggles a collapsible
help card with page-specific tips. Supports EN/FR via i18n, closes on
outside click or X button.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add a Settings page with about card (app name + version) and an update
section that uses the Tauri v2 updater plugin to check GitHub Releases,
download signed installers, and relaunch. Includes full state machine
(idle/checking/available/downloading/readyToInstall/installing/error)
with progress bar and retry. Database in %APPDATA% is never touched.
- Add tauri-plugin-updater and tauri-plugin-process (Rust + npm)
- Configure updater endpoint, pubkey placeholder, and passive install mode
- Add signing env vars and updaterJsonPreferNsis to release workflow
- Add Settings nav item, route, and fr/en translations
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
GITHUB_TOKEN needs explicit write permission to create releases.
Without it, tauri-action fails with "Resource not accessible by integration".
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The apostrophe in "Simpl'Résultat" broke the NSIS script on Windows CI
(interpreted as string delimiter). Use "Simpl Résultat" for productName
while keeping the apostrophe in the window title.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>