* fix(bank): renewal reuses IBAN-matched ledgers and keeps deselected accounts deselected
Two Enable Banking renewal defects reported from a SEB connection:
1. Dead 19xx accounts per renewal. The callback pre-seeded the resolver's
exclude set with every ledger the connection already mirrored. SEB mints
new account uids on re-auth, so no uid matched, the IBAN hit on the old
row was rejected by its own ledger being excluded, and a fresh 195x slot
was allocated (and created in the chart) on every renewal. Only ledgers
still claimed by a uid present in the new session are excluded now; the
stale row is promoted via the IBAN match as intended. Stale ledgers stay
safe from the allocator, which already skips every cash_accounts ledger.
2. Deselected accounts came back pre-checked. accounts_data was rebuilt with
enabled:true unconditionally, so a private card set to "Synkas ej" was
re-enabled and the mirror flipped cash_accounts.enabled back. The prior
flag is now carried over by IBAN, then uid; only genuinely new accounts
default to enabled.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* fix(bank): prefer exact uid over IBAN when carrying the sync-enabled flag
Skeptic refutation: one session can list the same IBAN twice (one resource
per balance type). IBAN-first lookup made the first prior entry win for
both, so a deselected duplicate could re-enable, or the live account could
come back deselected and silently stop syncing. Exact uid identity now wins;
IBAN is the fallback for ASPSPs that mint new uids on re-auth.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>