fix: resolve report_url=None for blob-URL tickers and fix dataclass serialization
All checks were successful
Build and Push Docker Image / build (push) Successful in 1m4s

When Schwab uses modern blob URLs (increasingly common), find_report()
returns __CLICK_TO_OPEN__ and the scraper skips storing a report_url
even though the PDF downloads and parses successfully. This caused
agents to see report_url=None for tickers like PEP/BR/DPZ/MSCI/BMI.

Changes:
- Fix serialize() to use dataclasses.asdict() instead of str() for
  dataclass payloads, producing proper JSON objects instead of Python
  repr strings
- Add /reports/{ticker}/pdf endpoint to serve cached Morningstar PDFs
- Enrich report_url with the MCP's own PDF endpoint when blob URLs
  were used and the report was successfully downloaded
- Add SCHWAB_MCP_BASE_URL env var to compose for self-referential URLs
This commit is contained in:
2026-05-21 14:46:08 +00:00
parent 0e048a1e08
commit 27d1e2be10
2 changed files with 46 additions and 4 deletions

View File

@@ -22,6 +22,7 @@ services:
cpus: '0.1'
environment:
- SCHWAB_PLAYWRIGHT_URL=ws://browser.local.ben.io:3000/playwright/chromium?timeout=300000
- SCHWAB_MCP_BASE_URL=https://schwab-mcp.ext.ben.io
- PORT=8000
volumes:
- ./cookies.json:/app/cookies.json