Commit graph

  • b632d951e4 ci: move image build off-infra to GHA -> ghcr (ADR-0002) master Viktor Barzin 2026-06-13 01:40:07 +00:00
  • 0d23487608 imap: skip InvestEngine by default; opt back in via INCLUDE env Viktor Barzin 2026-05-27 17:24:54 +00:00
  • 3427f5c9e1 ibkr: emit ibkr_cash_balance{currency, account} per CashReport row Viktor Barzin 2026-05-27 12:03:41 +00:00
  • 17c2a69c6c parsers/schwab: emit paired BUY for recent SELL (vest synthesis) Viktor Barzin 2026-05-27 10:02:07 +00:00
  • abf9fa7cb5 parsers/schwab: drop dead vest-release path Viktor Barzin 2026-05-27 09:40:56 +00:00
  • bb9e0d4567 docs(ibkr): use Last 365 Days (no 'Last 90 Days' preset in IBKR UI) Viktor Barzin 2026-05-27 09:28:42 +00:00
  • ceb652b623 ibkr: use IBKR account number as the canonical Account.id Viktor Barzin 2026-05-27 09:18:42 +00:00
  • 30af5fe2c9 docs(ibkr): change Flex date range from Last Business Day → Last 90 Days Viktor Barzin 2026-05-27 09:11:57 +00:00
  • 0ab069349f sinks/wealthfolio: treat duplicates as success in import-summary check Viktor Barzin 2026-05-26 22:52:11 +00:00
  • 2fb1fbbdd8 docs: add IBKR provider runbook Viktor Barzin 2026-05-26 22:34:46 +00:00
  • a4dab03bc5 cli: add 'broker-sync ibkr' command (Flex pull + import + reconcile + metrics) Viktor Barzin 2026-05-26 22:29:44 +00:00
  • e83c5a0a8f ibkr: add Flex provider — Trade/Cash mapping + OpenPositions snapshot Viktor Barzin 2026-05-26 22:28:35 +00:00
  • 882415464e wealthfolio: add compute_position_qty for broker reconciliation Viktor Barzin 2026-05-26 22:26:24 +00:00
  • 975c3b4bf7 metrics: add Pushgateway client for broker-sync providers Viktor Barzin 2026-05-26 22:24:55 +00:00
  • 82797908b7 test: add IBKR Flex XML fixture (3 trades, 2 cash txns, 2 positions) Viktor Barzin 2026-05-26 22:23:20 +00:00
  • 7cba540c37 deps: add ibflex with web extras for IBKR Flex Web Service ingestion Viktor Barzin 2026-05-26 22:21:54 +00:00
  • c271d5101c docs: add IBKR Flex ingestion implementation plan Viktor Barzin 2026-05-26 22:19:54 +00:00
  • ca5f98f771 docs: add IBKR Flex ingestion design spec Viktor Barzin 2026-05-26 21:52:52 +00:00
  • e6ef1fce97 test: drop redundant quotes on MonkeyPatch annotation Viktor Barzin 2026-05-26 21:20:12 +00:00
  • fe35c8e826 test: fix mypy errors in IE-exclude test Viktor Barzin 2026-05-26 21:18:55 +00:00
  • 68d4832c2e imap: skip InvestEngine emails via BROKER_SYNC_IMAP_EXCLUDE_PROVIDERS Viktor Barzin 2026-05-26 21:16:28 +00:00
  • d5dbeb96af tests: type the FidelityHolding factory list to satisfy CI mypy Viktor Barzin 2026-05-22 14:54:06 +00:00
  • d860aef927 imap: accept Schwab subdomain senders (donotreply@mail.schwab.com) Viktor Barzin 2026-05-22 14:41:09 +00:00
  • 98c4729622 fidelity: replace snapshot-push with delta gains-offset DEPOSITs Viktor Barzin 2026-05-17 00:35:17 +00:00
  • c9c0310733 fidelity: snapshot push needs WF account UUID, not logical id Viktor Barzin 2026-05-16 23:47:49 +00:00
  • cb159e17d9 fidelity: push per-fund manual snapshot instead of gains-offset DEPOSIT Viktor Barzin 2026-05-16 13:56:25 +00:00
  • 5adc4a7ba4 [ci] deploy.yml: manual-only — push events don't set IMAGE_TAG Viktor Barzin 2026-05-07 23:25:28 +00:00
  • f4a4c8892f trigger pipeline Viktor Barzin 2026-05-07 22:47:37 +00:00
  • dfee29fda7 [ci] Add Woodpecker build pushing to forgejo.viktorbarzin.me/viktor/wealthfolio-sync phase-0-scaffold Viktor Barzin 2026-05-07 22:33:29 +00:00
  • 1d1e20b72b schwab: detect vest-confirmation emails + emit VestEvent Viktor Barzin 2026-04-19 18:27:58 +00:00
  • 6f3bcea23e ci: fix ruff E501 + mypy None-comparison warning Viktor Barzin 2026-04-18 22:52:38 +00:00
  • 6450201af0 pipeline: emit matching DEPOSIT/WITHDRAWAL for every BUY/SELL Viktor Barzin 2026-04-18 19:12:49 +00:00
  • 7c9be544dc fidelity-planviewer: bake Chromium into the image for headless Playwright Viktor Barzin 2026-04-18 18:50:54 +00:00
  • 804e6a89de fidelity-planviewer: wire provider to real PlanViewer session + JSON API Viktor Barzin 2026-04-18 18:47:38 +00:00
  • 832732a419 fidelity-planviewer: scaffold provider + CLI (seed + stub ingest) Viktor Barzin 2026-04-18 14:09:04 +00:00
  • c830856ba1 imap: route IE BUYs to ISA first-£20k / GIA overflow per UK tax year Viktor Barzin 2026-04-18 12:02:49 +00:00
  • a190875f63 Add finance_mysql provider + CLI for historical backfill Viktor Barzin 2026-04-17 22:38:21 +00:00
  • 74b2179c83 sinks: read summary.imported as truth for partial-persist detection Viktor Barzin 2026-04-17 22:30:24 +00:00
  • 4e2da87637 sinks: detect silent Wealthfolio /import drops Viktor Barzin 2026-04-17 22:24:36 +00:00
  • 6efd03570a Add imap-ingest CLI + ImapProvider: route emails to IE/Schwab parsers Viktor Barzin 2026-04-17 22:12:05 +00:00
  • f089b8b93a Add Schwab email parser (port from finance/) Viktor Barzin 2026-04-17 22:08:40 +00:00
  • 1aa60ce348 Merge ie-email-parser: HTML + CSV fallbacks + failure-mode tests Viktor Barzin 2026-04-17 22:06:29 +00:00
  • 89e9710d24 Merge ie-bearer-client: IE Bearer-token HTTP client + CLI subcommand Viktor Barzin 2026-04-17 22:05:11 +00:00
  • 87526898e6 Pin InvestEngine parser failure modes — empty-on-junk + partial-match ie-email-parser Viktor Barzin 2026-04-17 22:02:48 +00:00
  • 020ba16723 Add CSV attachment fallback for InvestEngine email parser Viktor Barzin 2026-04-17 22:01:46 +00:00
  • f49918c74d Add broker-sync invest-engine CLI subcommand ie-bearer-client Viktor Barzin 2026-04-17 21:59:31 +00:00
  • 72d348e294 Add HTML table fallback for InvestEngine email parser Viktor Barzin 2026-04-17 21:58:15 +00:00
  • 9ec8ece2d9 Add InvestEngine email parser — RFC 2822 v1/v2 line format Viktor Barzin 2026-04-17 21:49:52 +00:00
  • dc4d3f889d Add InvestEngineProvider — Bearer-token HTTP client Viktor Barzin 2026-04-17 21:52:26 +00:00
  • ea15b80111 Add InvestEngine email parser — RFC 2822 v1/v2 line format Viktor Barzin 2026-04-17 21:49:52 +00:00
  • b363032e42 sinks: feed /import/check enrichment into /import body Viktor Barzin 2026-04-17 20:54:17 +00:00
  • 80ca009373 Match Wealthfolio accounts by providerAccountId, remap accountId on import Viktor Barzin 2026-04-17 20:44:32 +00:00
  • ba672a1633 sinks: add required isDraft/isValid fields on ActivityImport Viktor Barzin 2026-04-17 20:37:38 +00:00
  • 1d23bf6ed7 sinks: switch Wealthfolio import to JSON body (not multipart CSV) Viktor Barzin 2026-04-17 20:34:12 +00:00
  • ea881e272b sinks: match Wealthfolio NewAccount camelCase schema + required booleans Viktor Barzin 2026-04-17 20:29:43 +00:00
  • 1d0769c9e6 Disable typer rich tracebacks to avoid secret leak in logs Viktor Barzin 2026-04-17 20:22:30 +00:00
  • 66cf0e0399 Fix live Wealthfolio login + Dockerfile poetry path Viktor Barzin 2026-04-17 20:17:24 +00:00
  • 645c765287 CI: build image from phase-0-scaffold branch too (bootstrap) Viktor Barzin 2026-04-17 19:51:09 +00:00
  • 70275afc06 CI: trigger on phase-0-scaffold + any PR for initial rollout Viktor Barzin 2026-04-17 19:48:50 +00:00
  • 6fc2ac5322 Add sync pipeline + trading212 CLI subcommand Viktor Barzin 2026-04-17 19:45:43 +00:00
  • 1eb3f78ea5 Wire T212 pagination, retries, and click<8.2 pin Viktor Barzin 2026-04-17 19:45:23 +00:00
  • 7d2c1199a9 Add Trading212Provider core fetch Viktor Barzin 2026-04-17 19:34:03 +00:00
  • 56f3624344 Add ECB FX fetcher + cache population Viktor Barzin 2026-04-17 19:32:23 +00:00
  • 18d8241c85 Add GHA build + Woodpecker deploy pipelines Viktor Barzin 2026-04-17 19:32:00 +00:00
  • 43d2251159 Add per-account cursor Checkpoint helper Viktor Barzin 2026-04-17 19:30:20 +00:00
  • 73b03b227e Add Trading212 ticker normalisation Viktor Barzin 2026-04-17 19:29:23 +00:00
  • 0eb6feefa8 Add typer CLI + production Dockerfile Viktor Barzin 2026-04-17 19:23:54 +00:00
  • e7da408a85 Add WealthfolioSink with CSV import + cookie reuse Viktor Barzin 2026-04-17 19:22:34 +00:00
  • f306dc9605 Add Provider protocol and normaliser Viktor Barzin 2026-04-17 19:20:12 +00:00
  • 33810899c9 Add FxCache and convert_to_gbp core Viktor Barzin 2026-04-17 19:18:41 +00:00
  • a66ef189f6 Add SyncRecordStore for authoritative dedup Viktor Barzin 2026-04-17 19:17:12 +00:00
  • a2aa7ec486 Initial scaffold + canonical Activity model Viktor Barzin 2026-04-17 19:16:11 +00:00