broker-sync/broker_sync
Viktor Barzin d860aef927 imap: accept Schwab subdomain senders (donotreply@mail.schwab.com)
Real Schwab trade-execution emails come from donotreply@mail.schwab.com,
not the root @schwab.com domain. The existing matcher's endswith("@schwab.com")
guard rejected these, silently skipping the May 2026 RSU vest's
same-day-sell confirmation. Extend the matcher to also accept any
*.schwab.com subdomain.

Added test_schwab_subdomain_sender_matches; full suite green.
2026-05-22 14:41:09 +00:00
..
providers imap: accept Schwab subdomain senders (donotreply@mail.schwab.com) 2026-05-22 14:41:09 +00:00
sinks fidelity: replace snapshot-push with delta gains-offset DEPOSITs 2026-05-17 00:35:17 +00:00
__init__.py Initial scaffold + canonical Activity model 2026-04-17 19:16:11 +00:00
cli.py fidelity: replace snapshot-push with delta gains-offset DEPOSITs 2026-05-17 00:35:17 +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
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