Commit graph

74 commits

Author SHA1 Message Date
le king fu
446f6effab feat: add custom date range picker to reports and dashboard
Allow users to select an arbitrary date interval (e.g. Jan 1–15) in
addition to the existing preset periods. The "Custom" button opens a
dropdown with two date inputs and an Apply button. Works on both the
Reports and Dashboard pages.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 09:46:32 -05:00
le king fu
3434c9e11f docs: update CLAUDE.md to reflect current architecture
Rewrite CLAUDE.md to match actual stack (React 19, Tauri v2, TypeScript,
Tailwind v4), current project structure, features, conventions, and
add documentation maintenance rules for architecture.md and ADRs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 19:13:34 -05:00
le king fu
a8d53d9053 docs: update changelog, user guide, and docs page for v0.3.x features
Add changelog entries for versions 0.2.5 through 0.3.7. Update FR/EN
user guide with profiles, transaction splits, drag-and-drop categories,
dark mode, SVG chart patterns, and context menus. Add Profiles section
to in-app docs page.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 07:40:00 -05:00
le king fu
942cbb0624 docs: organize technical documentation into docs/ folder
Move specs and masterplan to docs/archive/, add architecture.md with
full technical overview, create 5 ADRs (Tauri v2, useReducer, sqlx
migrations, AES-256-GCM encryption, multi-profile DB), and move
guide-utilisateur.md into docs/.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 07:34:01 -05:00
le king fu
82d4739b96 docs: update README for v0.3.7 with new features and Linux support
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>
2026-02-18 07:29:51 -05:00
le king fu
d1fa8e0200 chore: bump version to 0.3.7
Some checks failed
Release / build-windows (push) Has been cancelled
Release / build-linux (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 19:56:37 -05:00
le king fu
72fa483e45 fix: remove MSI bundle to prevent updater install path conflict
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>
2026-02-17 19:54:29 -05:00
le king fu
367644e38e fix: change Windows updater installMode to basicUi
Some checks failed
Release / build (ubuntu-22.04) (push) Has been cancelled
Release / build (windows-latest) (push) Has been cancelled
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>
2026-02-17 19:12:10 -05:00
Le-King-Fu
731610cf3c fix: improve split indicator visibility and adjustments layout
Some checks failed
Release / build (ubuntu-22.04) (push) Has been cancelled
Release / build (windows-latest) (push) Has been cancelled
- 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>
2026-02-17 02:01:15 +00:00
Le-King-Fu
b190df4eae feat: show transaction splits on Adjustments page + fix CSV auto-detect
Some checks failed
Release / build (ubuntu-22.04) (push) Has been cancelled
Release / build (windows-latest) (push) Has been cancelled
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>
2026-02-17 01:41:08 +00:00
Le-King-Fu
0b8d469699 fix: remove accent from productName for Linux .deb compatibility
Some checks failed
Release / build (ubuntu-22.04) (push) Has been cancelled
Release / build (windows-latest) (push) Has been cancelled
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>
2026-02-17 00:53:54 +00:00
Le-King-Fu
4b2b45bf6f chore: bump version to 0.3.2
Some checks failed
Release / build (ubuntu-22.04) (push) Has been cancelled
Release / build (windows-latest) (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 00:34:06 +00:00
Le-King-Fu
2cd84ca041 ci: add Linux build to release workflow
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 00:33:10 +00:00
Le-King-Fu
142c240a00 feat: add transaction split adjustments across multiple categories
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>
2026-02-16 23:51:36 +00:00
Le-King-Fu
c7baf85cbb chore: bump version to 0.3.1
Some checks failed
Release / build (windows-latest) (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 23:31:34 +00:00
Le-King-Fu
404478ff65 fix: always show profile switcher in sidebar (#2)
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>
2026-02-16 23:30:42 +00:00
Le-King-Fu
732302cb44 feat: add drag-and-drop reorder for categories and fix duplicate sort_order
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>
2026-02-16 23:25:45 +00:00
Le-King-Fu
20cae64f60 feat: add multiple profiles with separate databases and optional PIN (v0.3.0)
Some checks failed
Release / build (windows-latest) (push) Has been cancelled
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>
2026-02-16 12:54:09 +00:00
Le-King-Fu
0831663bbd feat: add user guide page with print/PDF support
Some checks failed
Release / build (windows-latest) (push) Has been cancelled
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>
2026-02-16 12:19:29 +00:00
Le-King-Fu
9914737f26 fix: replace refresh icon with save icon on update template button
Closes #4

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 12:01:14 +00:00
Le-King-Fu
5e7c7e6609 feat: add Budget vs Actual report tab with monthly and YTD comparison
Some checks failed
Release / build (windows-latest) (push) Has been cancelled
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>
2026-02-15 18:01:10 +00:00
Le-King-Fu
32dae2b7b2 feat: add parent category subtotals and sign convention to budget page
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>
2026-02-15 17:44:32 +00:00
Le-King-Fu
f9c6fabc13 feat: add period quick-select filter to transactions page
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>
2026-02-15 17:32:08 +00:00
Le-King-Fu
13989dc0b8 fix: replace per-template delete buttons with single delete on selection
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>
2026-02-15 17:25:59 +00:00
Le-King-Fu
5bfab3175e docs: update lessons learned from recent sessions
Some checks failed
Release / build (windows-latest) (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 13:40:06 +00:00
Le-King-Fu
de78b54d41 chore: bump version to 0.2.10
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 13:39:41 +00:00
Le-King-Fu
e23e559ee3 feat: make settings data imports visible in Import History
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>
2026-02-15 13:38:51 +00:00
Le-King-Fu
172be36f1d fix: don't pre-select already-imported files when entering source config
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>
2026-02-15 13:21:11 +00:00
Le-King-Fu
ac295d9048 feat: persist template selection and add update template button
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>
2026-02-15 13:16:55 +00:00
Le-King-Fu
981291f048 chore: bump version to 0.2.9
Some checks failed
Release / build (windows-latest) (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 12:41:21 +00:00
Le-King-Fu
db1d47ea94 fix: allow duplicate-content files with different names (#1)
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>
2026-02-15 12:40:01 +00:00
Le-King-Fu
7e12f8c911 chore: bump version to 0.2.8
Some checks failed
Release / build (windows-latest) (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 11:42:41 +00:00
Le-King-Fu
87e8f26754 feat: add data export/import with optional AES-256-GCM encryption (#3)
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>
2026-02-15 11:40:28 +00:00
Le-King-Fu
d6e6ce1136 fix: cross-file duplicate detection and per-file import tracking
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>
2026-02-15 10:42:28 +00:00
Le-King-Fu
c7f7bab98f fix: restore schema.sql to exact v0.2.4 bytes for migration checksum (v0.2.7)
Some checks failed
Release / build (windows-latest) (push) Has been cancelled
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>
2026-02-14 17:23:36 +00:00
Le-King-Fu
86f3d88be9 chore: bump version to 0.2.6
Some checks failed
Release / build (windows-latest) (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 16:59:51 +00:00
Le-King-Fu
9ed79b4fa3 fix: revert schema.sql to match migration 1 checksum (v0.2.5.1)
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>
2026-02-14 16:47:07 +00:00
Le-King-Fu
61423fc362 chore: bump version to 0.2.5
Some checks failed
Release / build (windows-latest) (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 16:05:42 +00:00
Le-King-Fu
ccdab1f06a feat: add import config templates, budget/category fixes (v0.2.5)
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>
2026-02-14 15:06:44 +00:00
Le-King-Fu
720f52bad6 feat: 12-month budget grid, import UX improvements, confirmation dialogs (v0.2.4)
Some checks failed
Release / build (windows-latest) (push) Has been cancelled
- 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>
2026-02-14 12:59:11 +00:00
Le-King-Fu
29a1a15120 feat: add chart patterns, context menu, and import preview popup (v0.2.3)
Some checks failed
Release / build (windows-latest) (push) Has been cancelled
- 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>
2026-02-13 23:55:19 +00:00
Le-King-Fu
def17d13fb chore: bump version to 0.2.2
Some checks failed
Release / build (windows-latest) (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 12:40:41 +00:00
Le-King-Fu
5648f79424 feat: add "All Keywords" view on Categories page
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>
2026-02-13 12:37:46 +00:00
Le-King-Fu
f7fb6910b6 feat: add dark mode with famille-website-inspired warm gray palette
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>
2026-02-13 12:28:11 +00:00
Le-King-Fu
c73f466429 fix: persist has_header for imports, fix orphan categories, add re-initialize
Some checks failed
Release / build (windows-latest) (push) Has been cancelled
- 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>
2026-02-12 11:54:33 +00:00
Le-King-Fu
5f5696c29a feat: add Budget and Adjustments pages with full functionality
Some checks failed
Release / build (windows-latest) (push) Has been cancelled
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>
2026-02-12 00:58:43 +00:00
Le-King-Fu
474c7b947a fix: CSV import bugs and dashboard category filtering
Some checks failed
Release / build (windows-latest) (push) Has been cancelled
- 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>
2026-02-12 00:09:10 +00:00
Le-King-Fu
96ce5f3396 fix: set updater public key and bump version to 0.1.1
Some checks failed
Release / build (windows-latest) (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 22:53:03 +00:00
Le-King-Fu
bd6ff3deac feat: add CSV auto-detect configuration button
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>
2026-02-11 18:09:35 +00:00
Le-King-Fu
6037c87846 feat: add inline keyword creation from transaction rows
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>
2026-02-11 17:15:10 +00:00