Skip to content

feat: Dismissed transfers — collapsible section & manual flagging#35

Merged
robpaolella merged 11 commits into
mainfrom
feature/dismissed-transfers
Apr 7, 2026
Merged

feat: Dismissed transfers — collapsible section & manual flagging#35
robpaolella merged 11 commits into
mainfrom
feature/dismissed-transfers

Conversation

@robpaolella
Copy link
Copy Markdown
Owner

Summary

Adds transfer memory so previously-seen transfers collapse into a separate section on subsequent imports, reducing noise in the review table.

Changes

Database

  • New dismissed_transfers table with unique index on (account_id, signature)
  • Migration auto-runs on startup

Server API

  • POST /api/import/dismiss-transfers — bulk insert transfer signatures (idempotent via INSERT OR IGNORE)
  • POST /api/import/check-dismissed-transfers — check which items were previously dismissed

CSV Import (ImportPage)

  • After transfer detection, checks dismissed status via server
  • Auto-unchecks dismissed transfers in selection
  • Main table shows only non-dismissed rows
  • Collapsible "Previously Seen Transfers" section at bottom (collapsed by default)
  • Clickable transfer toggle on every row — "↔ Transfer ✕" to unflag, "↔ Mark as Transfer" to flag
  • On import completion, auto-dismisses any transfer-flagged rows that weren't selected

Bank Sync (BankSyncPanel)

  • Same dismissed transfer check after sync fetch
  • Same collapsible section, manual flagging, and auto-dismiss behavior
  • Select-all checkbox scoped to main (non-dismissed) rows only

Transfer Signature

date|roundedAmount|normalizedDescription — scoped per account to avoid cross-account false matches.

How It Works

  1. First import: Transfer detected → shown in main table with "↔ Transfer" badge
  2. User imports: Unselected transfers auto-dismissed (signature stored in DB)
  3. Next import: Same transfer → moved to collapsible "Previously Seen Transfers" section
  4. Manual flagging: Any row can be toggled as a transfer via clickable badge

robpaolella and others added 11 commits April 6, 2026 17:31
New table tracks previously-seen transfers by signature (date + amount +
normalized description) scoped per account. Includes migration file and
wiring into server startup and seed script.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- POST /import/dismiss-transfers: bulk-stores transfer signatures
- POST /import/check-dismissed-transfers: checks which transfers were
  previously dismissed
- Signatures are date|amount|normalized_description, scoped per account

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ing to CSV import

- Split review table into main rows and dismissed transfers section
- Add collapsible 'Previously Seen Transfers' section at bottom
- Add clickable transfer toggle on every row (Mark as Transfer / Transfer ✕)
- Auto-dismiss unselected transfers on import completion
- Check dismissed status via server after transfer detection
- Auto-uncheck dismissed transfers in selection

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Check dismissed status after sync fetch, auto-uncheck dismissed transfers
- Split transactions into main and dismissed views
- Add collapsible 'Previously Seen Transfers' section
- Add clickable transfer toggle on every row
- Auto-dismiss unselected transfers on import completion
- Update select-all to only toggle main (non-dismissed) rows

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Replace text badge with bordered icon button (↕ arrows) next to split icon
- Add border to both split and transfer icon buttons
- Add tooltip on hover for transfer button
- Keep '↔ Transfer ✕' badge for already-flagged transfers
- Icon button hidden when row is already flagged as transfer

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…er elements

Replace ↔ Unicode character and custom SVG arrows with FontAwesome
arrow-right-arrow-left solid icon across all transfer badges, icon
buttons, and section headers in both ImportPage and BankSyncPanel.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ttons

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@robpaolella robpaolella merged commit a3c348c into main Apr 7, 2026
1 check passed
@robpaolella robpaolella deleted the feature/dismissed-transfers branch April 7, 2026 04:58
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