harden: bound BankAccount dedup state + snapshot-safe codec #59
Labels
No labels
bug
enhancement
pr-split
question
security
transaction-matcher
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
momsse/octant#59
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
#54 dedups detected transactions by tracking
knownExternalTransactionIds(aHashSet) inBankAccountState. Two residual concerns from that review:(bank_account_id, external_transaction_id)) soBankTransactionCreationSagais idempotent andBankAccountneed not carry every id — same write-side-guard philosophy as #58.PostgresSnapshotStoreis wired forBankAccounttoday, but if one is added its state codec must encode theHashSetwithSchema.HashSet(a plain JSON codec turns it into{}, silently re-detecting every transaction on restore).Surfaced in the #54 review.
Note from #127 review: the
HashSet<ExternalTransactionId>codec is a hard prerequisite for snapshotting, not a separable follow-up —PostgresSnapshotStore.makerequires aSchema.Codec<BankAccountState>at construction. So this issue must add theSchema.HashSetcodec as part of wiring any BankAccount snapshot store.