Skip to content

feat: FinAlly AI Trading Workstation — all polecat work merged#7

Open
team2human wants to merge 16 commits intoed-donner:mainfrom
team2human:finally-combined
Open

feat: FinAlly AI Trading Workstation — all polecat work merged#7
team2human wants to merge 16 commits intoed-donner:mainfrom
team2human:finally-combined

Conversation

@team2human
Copy link
Copy Markdown

Summary

Combined PR merging all polecat work for the FinAlly build:

  • fin-31f6 (quartz): Frontend test mock repairs — lightweight-charts v5, EventSource, ResizeObserver
  • fin-a70r (quartz): Watchlist & Charts test fixes
  • fin-f8do (obsidian): Portfolio Viz & Trading UI test fixes
  • fin-o1rs (jasper): LLM chat integration — wire price_cache into chat for live P&L and market prices
  • fin-wbfr (onyx): Docker DB_PATH mapping, healthcheck, and test infrastructure fixes

Supersedes PRs #2, #3, #4, #5, #6 (individual polecat branches).

Verification

All checks pass on the combined branch:

  • Frontend: 37/37 tests pass (vitest)
  • Backend: 47/47 tests pass (pytest)
  • Docker build: succeeds (multi-stage Node + Python)
  • Runtime: health, watchlist, portfolio, trade, chat (mock), SSE streaming — all verified via curl

Test plan

  • cd frontend && npm test — 37 passed
  • cd backend && uv run pytest — 47 passed
  • docker build -t finally . — succeeds
  • docker run -p 8000:8000 -e LLM_MOCK=true finally — app serves at localhost:8000
  • GET /api/health → {"status":"ok"}
  • GET /api/watchlist → 10 tickers with live prices
  • POST /api/portfolio/trade → executes buy/sell
  • POST /api/chat → returns structured response (mock mode)
  • GET /api/stream/prices → SSE stream with ticker updates

🤖 Generated with Claude Code

quartz and others added 16 commits April 14, 2026 16:44
…dom (fin-a70r)

Update lightweight-charts mock to use addSeries/LineSeries (v5 API) instead of
the removed addLineSeries/LineType. Add addEventListener to EventSource mock and
ResizeObserver polyfill to test setup so all 37 tests pass.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Auto-generated Gas Town infrastructure file should not be tracked.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…-wbfr)

- Add DB_PATH=/app/db/finally.db env var to docker-compose.yml and start
  scripts so the volume mount (/app/db) aligns with the backend's DB path
- Replace curl healthcheck with python urllib (curl not in python:3.12-slim)
- Add npm install step to Playwright container before running tests
- Expand .dockerignore to exclude test/, scripts/, docs, and build artifacts
…lly-combined

# Conflicts:
#	frontend/src/__tests__/setup.ts
…nally-combined

# Conflicts:
#	frontend/src/__tests__/PortfolioPage.test.tsx
#	frontend/src/__tests__/setup.ts
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