broker-sync/broker_sync
Viktor Barzin 0ab069349f sinks/wealthfolio: treat duplicates as success in import-summary check
The IMAP cronjob re-processes the full mailbox window on every run, so
on steady-state runs all activities come back tagged duplicate=N. The
existing logic raises ImportValidationError whenever imported_n < total_n,
which makes the cron exit 1 (and the Job is reported FAILED) even though
the data path is healthy.

Treat (imported + duplicates) as "accounted for". Only raise when rows
go missing entirely (silently dropped / validation rejected).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-26 22:52:11 +00:00
..
providers cli: add 'broker-sync ibkr' command (Flex pull + import + reconcile + metrics) 2026-05-26 22:29:44 +00:00
sinks sinks/wealthfolio: treat duplicates as success in import-summary check 2026-05-26 22:52:11 +00:00
__init__.py Initial scaffold + canonical Activity model 2026-04-17 19:16:11 +00:00
cli.py cli: add 'broker-sync ibkr' command (Flex pull + import + reconcile + metrics) 2026-05-26 22:29:44 +00:00
dedup.py Add SyncRecordStore for authoritative dedup 2026-04-17 19:17:12 +00:00
fx.py Add FxCache and convert_to_gbp core 2026-04-17 19:18:41 +00:00
fx_ecb.py Add ECB FX fetcher + cache population 2026-04-17 19:32:23 +00:00
metrics.py metrics: add Pushgateway client for broker-sync providers 2026-05-26 22:24:55 +00:00
models.py schwab: detect vest-confirmation emails + emit VestEvent 2026-04-19 18:27:58 +00:00
normaliser.py Add Provider protocol and normaliser 2026-04-17 19:20:12 +00:00
pipeline.py pipeline: emit matching DEPOSIT/WITHDRAWAL for every BUY/SELL 2026-04-18 19:12:49 +00:00