ADR-0052: Review guidance reflects stored evidence
Context
Queue rows persist sanitized notification text and isMasked, but no parser
failure reason or candidate. The capture pipeline queues null candidates
(including caught parser exceptions), so a missing merchant, invalid amount,
or disabled rule cannot be diagnosed from a historical row. Demo text is not
an extracted suggestion.
Decision
Expanded cards explain hidden notification details only when the stored
isMasked flag is true. Other rows explicitly say that the failure reason
was not recorded. Both explain how to create a real payment or dismiss noise.
No new diagnostic data is persisted or added to clipboard exports.
Source avatars use up to two friendly-label initials from the existing bank
catalog. Unknown apps retain their package label and show ?.
Create keeps passing the queue id to the editor. The editor retries current DB rules and labels any amount/currency/merchant prefills as editable suggestions. A null result leaves amount and merchant empty and uses the base currency. Save creates the reviewed transaction and soft-dismisses that queue row; opening the editor alone leaves it pending.
Consequences
Existing rows work without a schema migration. Exact failure diagnostics remain unavailable; the UI does not infer them from raw text or current rules. Notification masking, grouping, and diagnostic export retain their existing contracts. Action labels wrap at large font scales.