Reduced vertical padding for buttons inside tables and set fixed column
widths so Confirm/Dismiss buttons fit cleanly within their cells.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Extract data loading into a refresh() method on SettingsView and call it
on view switch so categories, rules, and household data stay current.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
session.new is emptied by auto-flush during duplicate detection queries,
so we track new Transaction objects in a list instead.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Orchestrates CSV reading, description normalization, and transaction
storage. Uses count-based duplicate detection so legitimate repeated
transactions (same date/amount/description) in a single file are all
imported, while re-importing the same file correctly identifies every
row as a duplicate.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Implement Categorizer protocol and RuleBasedCategorizer service that
matches transactions against pipe-separated patterns ordered by priority,
with support for tag overrides and household member attribution.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add the data layer for the spending analysis app including models for
household members, accounts, categories, transactions, categorization
rules, and CSV import mappings. All models use SQLAlchemy 2.0 mapped
columns with proper foreign key relationships. Includes db.py with
Base class, engine/session factories, and 6 passing tests.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds known source formats (Chase credit card with headers, Wells Fargo
checking headerless), description normalization strategy, cross-account
transfer detection, source category hints, household income sources,
and sample categorization rules based on real transaction data.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Captures the full v1 design: CSV import with auto-mapping, rule-based
categorization (extensible for AI), household member attribution,
spending trends, category breakdowns, recurring charge detection,
and forecasting.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>