Commit graph

5 commits

Author SHA1 Message Date
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
41398f0f34 fix: CAD currency, real-time import progress, per-row duplicate control, orphaned sources cleanup, dashboard expenses-only
- Change all currency formatters from EUR/fr-FR to CAD/en-CA
- Add onProgress callback to insertBatch for real-time progress bar updates
- Replace binary skip/include duplicates with per-row checkboxes and type badges (DB/batch)
- Clean up orphaned import_sources when deleting imports with no remaining files
- Filter dashboard recent transactions to show expenses only

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 12:36:12 +00:00
Le-King-Fu
3506c2c87e feat: add import history panel with delete and cross-source duplicate detection
Make duplicate file detection cross-source by removing sourceId from
existsByHash query. Add import history table below source list with
per-import and delete-all functionality.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 01:29:23 +00:00
Le-King-Fu
273a17c0ac fix: handle duplicate file hash on re-import and improve alert colors
- importedFileService now upserts: if file hash already exists for a
  source (e.g. from a previous failed import), it updates the existing
  record instead of hitting the UNIQUE constraint.
- Replaced Tailwind amber/red/emerald colors with the app's CSS
  variables (--negative, --positive, --accent) for proper contrast
  on the cream background theme.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 22:27:49 +00:00
Le-King-Fu
49e0bd2c94 feat: implement CSV import wizard with folder-based source detection
Full import pipeline: Rust backend (6 Tauri commands for folder scanning,
file reading, encoding detection, hashing, folder picker), TypeScript
services (DB, import sources, transactions, auto-categorization, user
preferences), utility parsers (French amounts, multi-format dates),
12 React components forming a 7-step wizard (source list, config,
column mapping, preview, duplicate detection, import, report), and
i18n support (FR/EN, ~60 keys each).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 03:38:46 +00:00