Files
actual/upcoming-release-notes
Amy HawkinsandClaude Sonnet 5 a3330d2f5b [AI] prefer unlinked transactions when assigning fuzzy matches (#9001)
* Prefer unlinked candidates when fuzzy-matching bank transactions

With strictIdChecking off (every real bank-sync provider), an
already-imported row was as eligible a fuzzy candidate as a fresh
manually-entered one; a same-distance tie between them was resolved by
SQLite's arbitrary row order. If the already-imported row won, the
merge silently overwrote its imported_id/payee/notes in place instead
of matching the manually-entered row that was the actual intended
target -- bypassing the protected-match review flow entirely and
permanently orphaning the manual entry.

Also fixes the date-distance comparator, which never returned 0 and so
non-deterministically reordered same-day candidates.

Co-Authored-By: Claude Sonnet 5 <[email protected]>

* use Number because it reads more clearly than ternary operator; remove claude history lesson comment

* forgot to commit release notes

* address review comments and update tests

* extract comparator to its own method for testing

* remove useless claude comment

* clarify comment

---------

Co-authored-by: Claude Sonnet 5 <[email protected]>
2026-10-02 18:18:32 +00:00
..

See the Writing Good Release Notes section of the README for the documentation repo for more information on how to create a release notes file here.