Spaces:
Sleeping
Sleeping
Commit History
-
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 -
feat: Vite 7 + React 19 upgrade and SSE status streamingβ
- Frontend majors: vite 5->7.3.6, react 18->19.2.7, plugin-react-swc 3->4; Docker frontend builder node:20 -> node:22-slim (Vite 7 floor) - SSE: GET /workflow/{id}/events streams status snapshots on change (1s cadence, 15min connection cap); frontend uses EventSource first and falls back to the original 700ms polling on stream failure - Rewrite stale ActivityLog tests against the current component API (old tests targeted a removed 'entries' prop); add missing @testing-library/dom peer dep - suite now 10/10 - Fix two shadcn empty-interface lint errors; eslint now 0 errorsf7d988e
-
fix: Improve SWOT output formattingβ
- Format large numbers with B/M suffixes ($177.6B instead of $177,556,000,000) - Fix SWOT line parsing to require spaces around separator ( - not just -) - Prevents dates like 2024-12-31 from being split across columns Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>1f4f8e3 -
fix: Check MCP 'executing' status in ProcessFlow visualizationβ
Added isServerExecuting check so MCP containers glow when backend sets them to 'executing' state during research phase. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>e6a47ad -
feat: SWOT output as structured text parsed into HTML tablesβ
- Backend: Updated analyzer prompt OUTPUT FORMAT to use structured text format: [M##] Metric: Value - Insight - Backend: Updated revision prompt to match the same format - Frontend: Added parseSwotLine() parser to extract ref, metric, insight - Frontend: Replaced SWOT list display with HTML tables (3 columns) - Frontend: Removed unused icon imports (Zap, AlertCircle) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>6fd7fcd -
Fix Company Profile path: look at sec_edgar.companyβ
- Path: metrics.fundamentals.sec_edgar.company (from FinancialsBasket) - Fallback: multi_source.fundamentals_all.sec_edgar.company - Extract business_address, sector, sic_description from correct location Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>f18a6fd -
Reformat SWOT output: concise 3-column table formatβ
Backend: - Update analyzer prompt to output SWOT as tables - Format: | Ref | Metric | Insight | - Update revision prompt to use same table format Frontend: - Add cleanMarkdown() to strip asterisks and bold markers - Apply to all SWOT item displays and copy text Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>0fb19bd -
Fix Company Profile paths to match Research Service structureβ
- Look at metrics.fundamentals.company for SEC EDGAR company info - Extract sector from metrics.fundamentals.sector or multi_source - Extract HQ from company.business_address (city, state_or_country) - Add legacy fallback for rawData.company_info Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>de975df -
Add business details to Company Profile sectionβ
- Sector and Industry (combined display) - Headquarters location - Employee count - Website (clickable link) - SIC description - Extract from SEC EDGAR and Yahoo Finance sources Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>904fcf4 -
UI improvements: metric refs, company details, remove status labelsβ
- Add M01/M02 metric reference format in data table - Add Company Details section (sector, industry, HQ, employees) - Capitalize acronyms (GDP, VIX, P/B, P/S, EPS, etc.) - Remove status labels (REJECTED, Acceptable, Board-ready, PASSED) - Use human-readable metric names in data quality notes Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>86951ae -
Replace toast with Browser Notifications APIβ
- Notifications appear even when user is in other apps/tabs - Request permission on first stock selection - Remove Sonner toast dependency from App.tsx Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>1ad22ef
-
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: Add units to metric values (%, x suffix)β
Metrics now display with appropriate units: - Percentages (margins, growth rates, inflation): 3.18% - Ratios (P/E, P/B, Beta, etc.): 12.14x - Currency (revenue, market cap): $185.0B Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>601490d -
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: Display metrics table for cached analysis resultsβ
When using cached analysis, also fetch workflow status to get metrics for the Quantitative/Qualitative data tables (MCPDataPanel). Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>b717808 -
Frontend: Reduce MCP server gaps except fundamentals-valuationβ
- Keep 48px gap between Fundamentals and Valuation - Reduce other MCP server gaps from 48px to 40px Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>486ac42 -
Frontend: Convert metric names to human-readable labelsβ
Add METRIC_LABELS mapping and formatMetricName() function to convert snake_case metric names (e.g., net_income, trailing_pe) to readable labels (e.g., "Net Income", "Trailing P/E") in the Quantitative Data table. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>a5c7991 -
Frontend: Remove Editor Agent from process visualizationβ
- Remove Editor node from ProcessFlow SVG - Update workflow to show Critic β Analyzer revision loop - Narrow SVG width (6 nodes instead of 7) - Update AGENTS_GROUP to span only Analyzer + Critic - Remove editor from stepOrder in App.tsx - Update WorkflowStatus type in api.ts - Update Storybook stories Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>de4ad41 -
Fix qualitative data extraction to match actual API structureβ
- News: read from metrics.news.items[] instead of metrics.news.results - Sentiment: read from metrics.sentiment.items[] flat array with source field instead of nested metrics.finnhub.news and metrics.reddit.posts paths - Use datetime field instead of published_date for consistency Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>49cfe9c -
Shrink data tables to fit content with better paddingβ
- Change table containers from full-width to w-fit (shrink-to-fit) - Remove w-full from tables so they size to content - Increase cell padding from px-2 to px-3 for readability - Add p-2 padding around table content Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>2570661 -
Increase MCP server spacing in ProcessFlow visualizationβ
- Increase MCP_GAP from 38 to 48 to prevent label overlap - Increase SVG_WIDTH to 530 to accommodate wider MCP group Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>5072ead
-
Replace Key Data/Data Sources with tabular formatβ
- Replace expandable MCPRow components with Quantitative Data table (S/N, Metric, Value, Data Type, As Of, Source, Category) - Replace Data Sources section with Qualitative Data table (S/N, Title, Date, Source, Subreddit, URL, Category) - Add inferDataSource and inferDataType helper functions - Remove unused components (MCPRow, DataItem, LinkItem, mcpStatus) - Clean up unused imports Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>b792fa1 -
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 clickable links for news articles and sentiment sourcesβ
- Fix news extraction to use 'results' field (Tavily API format) - Add sentiment source links (Finnhub, Reddit) with scores - Display news as clickable article links π€ Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>522e6f7
-
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 -
Consolidate ActivityLog components, rename Source Data to Key Dataβ
- Delete unused ActivityLog.tsx (rich-icon component) - Rename MetricsPanel to ActivityLog (terminal-style log) - Change header from "Log" to "Activity Log" - Rename "Source Data" to "Key Data" in MCPDataPanel - Update Data Sources to horizontal layout - Pass exchange prop to MCPDataPanel π€ Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>8aa87db -
Improve output layout for export/printβ
- Remove Copy and Export JSON buttons, keep Download and Print - Remove card boxes around SWOT sections for cleaner page breaks - Add Company Profile section above Source Data (name, ticker, sector, HQ) - Add Data Sources section with expanded acronyms (SEC, FRED, etc.) - Simpler SWOT layout with colored headers and underlines - Both Download and Print use same window.print() for consistent output π€ Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>e7ed678 -
UI improvements: icons, labels, status, and print layoutβ
- Match ProcessFlow MCP icons with MCPDataPanel (DollarSign, TrendingUp, Activity, MessageSquare) - Add "Macro (US)" label in both ProcessFlow and MCPDataPanel - Show MCP failure status (API unavailable, Partial data) instead of generic "No data" - Update print layout to 8.27"x11" (most restrictive common size) - Compact print styles for single-page fit π€ Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>b3d4d5b -
Fix MCPDataPanel to use metrics from activity logβ
- Use MetricEntry[] from workflow metrics instead of parsing raw_data - Group metrics by source (financials, valuation, volatility, macro) - Show news articles from raw_data when available - Fallback to metric display for news/sentiment if no URLs π€ Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>2cf130c -
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