2.7 KiB
id, title, status, assignee, created_date, updated_date, labels, dependencies, priority, ordinal
| id | title | status | assignee | created_date | updated_date | labels | dependencies | priority | ordinal |
|---|---|---|---|---|---|---|---|---|---|
| TASK-15 | Fix FinTS transaction deduplication | Done | 2026-06-23 10:22 | 2026-06-23 10:36 | high | 15000 |
Description
Repair FinTS import deduplication so placeholder MT940/CAMT references do not cause valid comdirect Girokonto transactions to be skipped.
Acceptance Criteria
- #1 FinTS placeholder references such as NONREF and NOTPROVIDED are not stored as externalRef
- #2 Multiple FinTS rows with placeholder references but distinct transaction content import successfully
- #3 Real duplicate externalRef values are still skipped
- #4 Repeated import of the same rows skips via dedupHash
- #5 Focused tests cover FinTS mapping and import commit behavior
Implementation Plan
- Add failing regression tests for FinTS placeholder references and import skip behavior
- Normalize FinTS external references so placeholders are discarded
- Add import skip diagnostics for externalRef vs dedupHash
- Run focused tests and project verification
Implementation Notes
Implemented FinTS externalRef normalization for MT940/CAMT placeholder values and added import commit diagnostics split by externalRef and dedupHash skips. Verified with focused Vitest, broader Convex tests, focused ESLint, diff whitespace check, and production build.
Follow-up from live Convex logs: all 42 rows were skipped by externalRef. Read-only Convex data inspection showed FinTS externalRef values like POS 13, which are MT940 positional markers and collide across statement periods. Extended normalization to discard POS-style references and added regression coverage for legacy POS externalRef records not blocking new rows.
Follow-up from visible UI gaps: imported rows existed, but transactions.list used by_user_effmonth ordering for assignment-month mode, which sorts by effectiveMonth and creation time rather than bookingDate. Added by_user_effmonth_booking index and switched effective-basis listing to it so current month rows are ordered by booking date descending. Added regression coverage.
Final Summary
Fixed FinTS transaction deduplication by discarding placeholder and POS-style external references, added import skip diagnostics, and corrected effective-month transaction listing to order by booking date. Verified with focused and related Vitest suites, focused ESLint, diff check, and production build.