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>
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>
- 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>
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>
- 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>