Spaces:
Sleeping
Sleeping
Commit History
-
feat: VPS dashboard + LangSmith online evaluators and prompt versioning
- Add GET /portfolio/summary (lightweight stats, no yFinance calls) - Add GET /dashboard serving a full Chart.js portfolio dashboard - Create src/core/online_eval.py with inline format_score and verdict_validity evaluators that post LangSmith feedback per run - Add tag_for_review() to annotate WATCH/fallback runs for human review - Support PROMPT_VERSION env var in senior_broker.py for Hub A/B testing Made-with: Cursorffc1e30 -
feat: widen market cap to $5M-$500M, dynamic amnesia, more noise words
- Expand screener + gatekeeper range from $10M-$300M to $5M-$500M to unlock hundreds of fresh tickers across all regions - Dynamic seen-ticker amnesia: AVOID/WATCH expire after 14 days, BUY/STRONG BUY locked for 30 days (via VPS LEFT JOIN on portfolio) - Add AEDT and 12 more common English words to noise filter - Deploy updated API to VPS (restarted and verified) Made-with: Cursora6f44ed -
feat: Sprint 9 — Execution & Quality Control
Pre-Sprint Bug Fixes: - Fix double-header in verdict reports (strip LLM-embedded headers) - Fix structured output token limit (get_structured_llm with max_tokens=4096) - Fix fallback path skipping Kelly (compute position sizing in except block) Epic 1 — Grading Engine: - scripts/build_golden_dataset.py: curate 50 LangSmith traces into Dataset - scripts/evaluators.py: 5 evaluators (catalyst grounding, company identity, format, verdict validity, Kelly math) - scripts/run_evals.py: evaluation runner for LangSmith Experiments Epic 2 — Alpaca Paper Trading: - src/broker/alpaca.py: order router, submission, status tracking - Wire Alpaca execution into portfolio_tracker.py - Update VPS schema + API with order_id, fill_price, broker_status Epic 3 — Intraday Catalyst Triggers: - vps/catalyst_poll.py: polling daemon (volume, price, insider triggers) - GitHub Actions repository_dispatch for catalyst-alert events - whale_hunter.py CATALYST_TICKER env var for single-ticker mode Epic 4 — Multi…645673f
-
feat: SEC EDGAR ground truth + Kelly Criterion position sizing (Epic 3 & 4)
Epic 3: Add SEC EDGAR integration that fetches 10-K/10-Q filings via the EFTS search API and extracts MD&A (Item 7) and Risk Factors (Item 1A) sections using BeautifulSoup. Wired into analyst_node for US equities. Epic 4: Implement Kelly Criterion position sizing with win-rate calculation from historical portfolio data. Verdict-based scaling (STRONG BUY 100%, BUY 70%, WATCH 30% of half-Kelly) clamped to 1-25% of portfolio. - New: src/sec_edgar.py (@tool + HTML parser) - New: src/models/kelly.py (KellyStats + calculate_position_size) - Updated: InvestmentVerdict with position_size, kelly_win_rate fields - Updated: record_paper_trade to store position_size - Updated: VPS schema + API to support position_size column Made-with: Cursore813ce3 -
feat: LangGraph best-practices refactor (Sprint 8 Epics 2-3-4)
- Fix state mutation anti-pattern: all 4 workflow agent nodes + debug wrappers now return partial dicts instead of mutating state - Add Annotated reducers (operator.add) to candidates/candidate_scores list fields in AgentState - Replace deprecated set_entry_point / set_conditional_entry_point with START edges across agent.py, whale_hunter.py, workflow.py - Refactor gatekeeper routing to Command pattern, removing separate check_status functions in agent.py and whale_hunter.py - Add InMemorySaver checkpointer to all 3 graph compile() calls with thread_id config on every invoke/ainvoke - Add RetryPolicy(max_attempts=3) to all graph nodes and recursion_limit=30 to all invoke calls - Add InvestmentVerdict Pydantic model (src/models/verdict.py) with structured output via with_structured_output, graceful fallback to plain LLM - Simplify portfolio_tracker verdict parsing when structured_verdict is provided - Clean up requirements.txt: LangChain 1.0 LTS range pinning, remove …d5ba3a3