Spaces:
Sleeping
Sleeping
Commit History
-
fix: Cache-hit whitelist and LangGraph-dropped gate stateβ
- Cache-hit path rebuilt the result from a hardcoded field list that predated metric_reference/recommendations/quality_notes; cache-served views therefore fell back to positional table refs misaligned with the SWOT text citations (the reported UI wonkiness). Full cached dict now passes through with only data_source/provider overridden. - data_gaps/suspect_metrics were not declared in AgentState, so LangGraph dropped them between researcher and analyzer - the gate's DATA NOT PROVIDED table section, scrubbing, and quality-notes surfacing were silently inert. Declared in the schema.096df90 -
feat: Surface data-gate findings in result quality notesβ
Gaps and quarantined values were visible only in the activity log; they now appear in quality_notes.gaps_or_stale so report consumers see which required metrics were unavailable.43a46f6 -
fix: Boeing-run findings β canonical refs, edge contracts, guardrailsβ
1. Canonical [M##] alignment: final result now carries metric_reference (the analyzer's own numbered list); the Quantitative Data table renders from it so table refs match SWOT text citations exactly (was: positional row numbering that diverged from the analyzer's 16-item list) 2. Numeric validator: accept citations exact at displayed precision ("$2.2B" for 2.237e9); mismatch messages now include raw values 3. Parser edge contract: only [M##]-cited lines enter the quadrants; uncited action lines route to a new Recommendations block, data-quality prose to quality notes; markdown headers can no longer leak as rows 4. Interpretation guardrails in analyzer prompts (VIX bands, margin benchmarks, internal-W/external-T classification) and a critic rubric line penalizing misclassification and W/T metric duplication 5. Citation coverage counts distinct cited metrics (no more 125%); provider failure logs deduped to one line per provider Contract tests added (tests/tesβ¦e961a43
-
fix: Add MCP 'executing' state for process flow visualizationβ
- Add set_mcp_executing() to workflow_store.py - Call it at start of research phase in researcher.py - MCP containers now show 'executing' while fetching data Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>dc70069
-
Fix: Handle temporal dict structure in _format_metrics_for_promptβ
- Add _get_val helper to extract value from dict or plain value - Fix operator precedence in date extraction (add parentheses) - Prevents TypeError when formatting temporal metrics Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>f80bf1d -
Fix: Temporal data extraction and frontend date displayβ
Backend: - Extract dates for valuation/volatility/macro in analyzer.py - Fix workflow_store.py to use regular_market_time for valuation - Fix workflow_store.py to use generated_at for volatility - Add Layer 2 (minimum citation count) to numeric_validator.py - Add Layer 3 (uncited number detection) to numeric_validator.py - Integrate Layers 2/3 in critic.py Frontend: - Add normalizeDate() for YYYY-MM-DD format (2025Q3β2025-09-30) - Add inferDataType() "Spot" for valuation metrics - Add extractDate() with multiple field fallbacks for news Fixes issues 2, 3, 5, 6, 8 from frontend data display audit. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>09c3333 -
Add SWOT output enhancementsβ
1. Display business_address below company header 2. Replace Quality Evaluation with DATA QUALITY NOTES section - High confidence metrics - Data gaps or staleness (>30 days) - Assumptions made 3. Add toast notifications on completion/error using Sonner Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>faf1006 -
Fix: Track actual data source (SEC vs Yahoo) for fundamentals metricsβ
Backend: _extract_metrics_from_raw_data() now tracks which source (sec_edgar or yahoo_finance) each metric came from via new data_source field. Frontend: inferDataSource() uses explicit data_source if available, with fallback to form-based inference for backward compatibility. This ensures SEC EDGAR data displays correctly even when form field is missing. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>33d2228 -
Fix: Extract metrics from cached raw_data for frontend displayβ
Previously, cached analysis results showed empty Quantitative Data Table because the metrics array was never populated for cache hits. Now extracts metrics from cached raw_data using new _extract_metrics_from_raw_data() helper function. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>533590e
-
Rename financials to fundamentals across frontend and backendβ
- Update MCPStatus interface and defaults to use 'fundamentals' - Update ProcessFlow MCP server list to use 'fundamentals' id - Update MCPDataPanel grouped metrics key to 'fundamentals' - Update CORE_SOURCES in researcher.py to use 'fundamentals' - Update mcp_status initialization in workflow_store.py and analysis.py - Update source_keywords in critic.py to use 'fundamentals' Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>5766b78 -
Rename financials to fundamentals for schema consistencyβ
- Update analyzer.py to use fundamentals_all instead of financials_all - Align with Researcher-Agent schema normalization changes Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>3e0da39
-
Add temporal data (fiscal year, period) to financials displayβ
Backend: - analyzer.py: Preserve fiscal year, period end date, form type from SEC EDGAR - workflow_store.py: add_metric() accepts temporal params (end_date, fiscal_year, form) Frontend: - types.ts: Add TemporalMetric interface for SEC EDGAR metrics - api.ts: Extend MetricEntry with temporal fields - MCPDataPanel.tsx: Display fiscal period labels (e.g., "FY 2023", "Q3 2024") with hover tooltip showing period end date π€ Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>255d8a9 -
Fix LLM failure visibility and abort handlingβ
- Update LLM status in real-time as providers fail (not just at end) - Log individual LLM provider failures to activity log - Mark "All LLM providers failed" as abort condition (not retryable error) - Move LLM status update before error check so frontend sees failures - Show "Aborted" button instead of "Failed-Retry" for LLM failures π€ Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>fa01e42 -
Add MCP source data panel above SWOT resultsβ
- Display raw data from all 6 MCP servers in horizontal rows - Show financials, valuation, volatility, macro metrics inline - News: clickable article links with external link icons - Sentiment: analyst ratings, target price, social sentiment - Backend: include raw_data in workflow result response - Frontend: new MCPDataPanel component with typed interfaces π€ Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>c1e5f17
-
Initial commit: Instant SWOT Agentβ
Multi-agent strategic analysis system with: - Research Gateway (A2A client to Researcher-Agent) - Analyzer, Critic, Editor workflow nodes - Data grounding enforcement in all LLM calls - React frontend with real-time progress π€ Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>0c591a7