Skip to content

Fold bank statement import into the README - #16

Merged
LouisBenjamin merged 1 commit into
mainfrom
docs/readme-statement-import
Sep 2, 2026
Merged

Fold bank statement import into the README#16
LouisBenjamin merged 1 commit into
mainfrom
docs/readme-statement-import

Conversation

@LouisBenjamin

Copy link
Copy Markdown
Owner

The README was last expanded in #14, which landed just before the bank statement import feature in #15, so it currently doesn't mention the importer anywhere.

Changes

  • New feature section "Importing a bank statement" under What works today: merchant rules, cross-device dedup, shared split maths, no-throw parsing.
  • New architecture section "Decision: statement import keeps raw data off the server": the privacy boundary (CSV parsed on device, never uploaded), the client-side SHA-256 fingerprint and why it's hashed client-side, and the two-condition partial unique index.
  • Data model: added merchant_rules and expenses.source_fingerprint.
  • RPC list: added import_expenses().
  • computeSplits() now noted as shared by three call sites (expense form, recurring form, import plan).
  • Project structure: added features/import/, core/dates.dart, docs/statement-import.md.
  • Testing: 58 -> 165 tests, plus the test/features/import/ group and the fingerprint vector note.
  • CI/CD: documented test.yml; removed the now-stale "tests in CI" item from Not built yet and added "PDF statement import".
  • Intro line mentions recurring expenses and statement import.

No em dashes were present and none were added; existing voice and structure preserved.

🤖 Generated with Claude Code

The README was last expanded in #14, before the statement import feature
landed in #15, so it had no mention of the importer at all.

- New "Importing a bank statement" feature section
- New "Decision: statement import keeps raw data off the server" section
  covering the privacy boundary, the client-side fingerprint, and the
  partial unique index
- merchant_rules and expenses.source_fingerprint in the data model table
- import_expenses() in the RPC list
- computeSplits() now noted as shared by three call sites, not two
- features/import/, core/dates.dart, docs/statement-import.md in the tree
- test count 58 -> 165, plus the import test group
- test.yml documented; dropped the stale "tests in CI" gap and added
  "PDF statement import" to the roadmap
- removed no em dashes (there were none); kept the existing voice

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PcEjJSFabfyzty3uUXx6dQ
@LouisBenjamin
LouisBenjamin merged commit 109950f into main Sep 2, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant