Skip to content

Next steps after checking data - #205

Open
teunissen122 wants to merge 8 commits into
ed-donner:mainfrom
teunissen122:main
Open

teunissen122 wants to merge 8 commits into
ed-donner:mainfrom
teunissen122:main

Conversation

@teunissen122

Copy link
Copy Markdown

No description provided.

teunissen122 and others added 8 commits November 11, 2026 15:54
…4408838818

Add Claude Code GitHub Workflow
Research docs (planning/MASSIVE_API.md, MARKET_INTERFACE.md,
MARKET_SIMULATOR.md) and the detailed design (MARKET_DATA_DESIGN.md),
plus the implementation and a rewritten test suite.

- Fix Massive parsing: LastTrade has no .timestamp (it's sip_timestamp,
  in ns), so every snapshot was skipped and no real prices reached the
  cache. Add a price fallback chain for plans without trades and the
  overnight reset.
- Auto-detect plan: snapshot mode for paid keys; end-of-day mode via
  grouped daily aggs for free keys (no snapshot access, 5 req/min) with
  a call budget, weekend/holiday walk-back and reference-day reuse.
- RESTClient(retries=0) plus our own 429 back-off.
- PriceUpdate.reference_price / day_change / day_change_percent.
- MarketDataSource.set_tickers() and normalize_ticker everywhere.
- Simulator: deterministic seeds for unknown tickers, initial_prices,
  private seeded RNG, Cholesky fallback.
- SSE: re-entrant router factory, id: lines, keepalive heartbeat;
  cache.remove bumps version.
- MASSIVE_POLL_INTERVAL env var; add tzdata and httpx (dev).

151 tests pass; 99% coverage of app/market; ruff clean.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Market data v2: fix Massive client, free-plan EOD mode, day change %
Backend (FastAPI): SQLite db layer with lazy init + seed, portfolio and
watchlist services, REST routes, chat route with LiteLLM/OpenRouter
(Cerebras) structured outputs and LLM_MOCK mode, snapshot task, static
frontend serving.

Frontend (Next.js static export): watchlist with flashing prices and
sparklines, main chart, heatmap, P&L chart, positions table, trade bar,
AI chat panel, live connection status.

DevOps: multi-stage Dockerfile, docker-compose, start/stop scripts,
.env.example. Fix .gitignore `lib/` rule that excluded frontend/src/lib.

Testing: Playwright E2E suite in Docker (33/33 passing), backend pytest
(313 passing), frontend vitest (36 passing).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Build full FinAlly platform (agent team)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant