Commit Graph

151 Commits

Author SHA1 Message Date
a2e8fbcf94 Fix search.ts to use normalizeTickerOrNull for optional ticker 2026-03-15 16:06:49 -04:00
5f0abbb007 Consolidate server utilities into shared module
- Add lib/server/utils/normalize.ts with normalizeTicker, normalizeTagsOrNull, nowIso, todayIso
- Add lib/server/utils/validation.ts with asRecord, asBoolean, asStringArray, asEnum
- Add lib/server/utils/index.ts re-exporting all utilities
- Remove duplicate lib/server/utils.ts (old file)
- Update all repos and files to use shared utilities
- Remove redundant ?? '' from normalizeTicker calls
- Update watchlist.ts to use normalizeTagsOrNull for null-return tags
2026-03-15 15:56:16 -04:00
edf1cfb421 Format surface_mapper tests 2026-03-15 15:24:24 -04:00
24aa8e33d4 Consolidate metric definitions with Rust JSON as single source of truth
- Add core.computed.json with 32 ratio definitions (filing + market derived)
- Add Rust types for ComputedDefinition and ComputationSpec
- Create generate-taxonomy.ts to generate TypeScript from Rust JSON
- Generate lib/generated/ (gitignored) with surfaces, computed, kpis
- Update financial-metrics.ts to use generated definitions
- Add build-time generation via 'bun run generate'
- Add taxonomy architecture documentation

Two-phase ratio computation:
- Filing-derived: margins, returns, per-share, growth (Rust computes)
- Market-derived: valuation ratios (TypeScript computes with price data)

All 32 ratios defined in core.computed.json:
- Margins: gross, operating, ebitda, net, fcf
- Returns: roa, roe, roic, roce
- Financial health: debt_to_equity, net_debt_to_ebitda, cash_to_debt, current_ratio
- Per-share: revenue, fcf, book_value
- Growth: yoy metrics + 3y/5y cagr
- Valuation: market_cap, ev, p/e, p/fcf, p/b, ev/sales, ev/ebitda, ev/fcf
2026-03-15 15:22:51 -04:00
ed4420b8db Add atomic task deduplication with partial unique index
- Add partial unique index for active resource-scoped tasks
- Implement createTaskRunRecordAtomic for race-free task creation
- Update findOrEnqueueTask to use atomic insert first
- Add tests for concurrent task creation deduplication
2026-03-15 14:40:38 -04:00
a7f7be50b4 Remove legacy TypeScript financial surface mapping, make Rust JSON single source of truth
- Delete standard-template.ts, surface.ts, materialize.ts (dead code)
- Delete financial-taxonomy.test.ts (relied on removed code)
- Add missing income statement surfaces to core.surface.json
- Add cost_of_revenue mapping to core.income-bridge.json
- Refactor standardize.ts to remove template dependency
- Simplify financial-taxonomy.ts to use only DB snapshots
- Add architecture documentation
2026-03-15 14:38:48 -04:00
7a42d73a48 Fix filing taxonomy schema mismatch by adding explicit column verification
The filing_taxonomy_snapshot table was missing parser_engine and related columns
on databases created before the taxonomy surface sidecar migration. This caused
filing sync workflows to fail with 'table has no column named parser_engine'.

Changes:
- Add TAXONOMY_SNAPSHOT_REQUIRED_COLUMNS constant for required columns
- Add verifyCriticalSchema() to fail fast at startup if schema is incompatible
- Reorder ensureTaxonomySnapshotCompat to check table existence before column ops
- Add explicit column verification after ALTER TABLE attempts
- Add regression tests for missing column detection

Fixes #2
2026-03-15 13:15:01 -04:00
529437c760 Stop substituting synthetic market data when providers fail
- Replace synthetic fallback in getQuote()/getPriceHistory() with null returns
- Add QuoteResult/PriceHistoryResult types with { value, stale } structure
- Implement stale-while-revalidate: return cached value with stale=true on live fetch failure
- Cache failures for 30s to avoid hammering provider
- Update CompanyAnalysis type to use PriceData<T> wrapper
- Update task-processors to track failed/stale tickers explicitly
- Update price-history-card UI to show unavailable state and stale indicator
- Add comprehensive tests for failure cases
- Add e2e tests for null data, stale data, and live data scenarios

Resolves #14
2026-03-14 23:37:12 -04:00
5b68333a07 add agent.md 2026-03-14 22:39:40 -04:00
69b45f35e3 Make coverage filing sync explicit 2026-03-14 19:54:59 -04:00
0d6c684227 Collapse filing sync notifications into one batch surface 2026-03-14 19:32:09 -04:00
61b072d31f Fix filings ticker scope consistency 2026-03-14 19:16:04 -04:00
ac3b036c93 Fix post-auth session handoff flow 2026-03-14 19:12:35 -04:00
b735b864d2 Fix SQLite taxonomy schema bootstrap drift 2026-03-14 19:00:29 -04:00
f5730597f4 Update e2e report with workflow failure root cause 2026-03-14 14:05:46 -04:00
f9bf1adb07 Add e2e and UX review report 2026-03-14 14:05:16 -04:00
72bf64aeec Merge branch 't3code/company-overview-loading-cache' 2026-03-13 19:05:25 -04:00
0394f4e795 Add company overview skeleton and cache 2026-03-13 19:05:17 -04:00
c4b3a9105f Merge branch 't3code/fix-financials-ingestion-spread-error' 2026-03-13 19:02:18 -04:00
30977dc15f Fix financial taxonomy snapshot normalization 2026-03-13 19:01:56 -04:00
a46777619a Add design system documentation 2026-03-13 15:00:17 -04:00
b1c9c0ef08 Merge branch 't3code/ui-yahoo-finance-description' 2026-03-13 00:28:41 -04:00
61282ec380 Use Yahoo Finance company descriptions 2026-03-13 00:28:24 -04:00
17f0613c7f Merge branch 't3code/fix-sp500-compare-gaps' 2026-03-13 00:25:49 -04:00
54172f9e8b Fix compare chart date alignment 2026-03-13 00:25:20 -04:00
1052bdfa85 Merge branch 't3code/investigate-unmapped-details' 2026-03-13 00:20:36 -04:00
e5141238fb WIP main worktree changes before merge 2026-03-13 00:20:22 -04:00
58bf80189d Use triangle markers for bull and bear items 2026-03-13 00:20:12 -04:00
34fa020eca Add bull and bear direction arrows 2026-03-13 00:17:43 -04:00
a3d4c97f4e Use sharp lines in comparison price chart 2026-03-13 00:15:19 -04:00
5998066524 Fix residual detail row aggregation 2026-03-13 00:14:30 -04:00
01199d489a Add untracked chart and schema files 2026-03-13 00:11:59 -04:00
8a8c4f7177 🎨 style: remove ambient grid background from app shells
Remove the decorative grid background layer from both the main app shell
and authentication shell to create a cleaner, more minimal UI appearance.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-03-12 21:33:16 -04:00
9d926e9710 Merge branch 't3code/improve-statement-parsing-duplicates' 2026-03-12 21:30:49 -04:00
c222179170 🎨 style(analysis): improve UI clarity and visual hierarchy
Enhance the company analysis overview page with better data presentation
and visual design:

- Fix business description display by filtering raw API data artifacts
- Improve metadata layout with consolidated single-line format
- Fix price chart Y-axis scaling to auto-scale to data range
- Replace 'n/a' with cleaner em dash (—) for empty states
- Add visual indicators and color-coded backgrounds to bull/bear sections
- Improve empty state messaging with centered icons

These changes improve information density, visual hierarchy, and overall
user experience across the analysis page.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-03-12 21:29:03 -04:00
1efbffa347 Commit remaining Rust parser updates 2026-03-12 21:17:37 -04:00
7a7a78340f Expand backend financial statement parsers 2026-03-12 21:15:54 -04:00
ba385586bc Rebuild company overview analysis page 2026-03-12 20:39:30 -04:00
b9a1d8ba40 Fix sidebar hydration flash 2026-03-12 16:29:28 -04:00
b39bc9eccd Refine sidebar collapsed and expanded spacing 2026-03-12 16:13:47 -04:00
df26299bdf Hide sidebar branding when collapsed 2026-03-12 15:47:22 -04:00
1b545cfffd feat(shell): add collapsible sidebar rail 2026-03-12 15:39:44 -04:00
33ce48f53c feat(financials): add compact surface UI and graphing states 2026-03-12 15:25:21 -04:00
c274f4d55b refactor(taxonomy): remove legacy parser and add rollout checks 2026-03-12 15:25:06 -04:00
58061af006 feat(taxonomy): add rust sidecar compact surface pipeline 2026-03-12 15:23:10 -04:00
f2c25fb9c6 Improve workflow error messaging 2026-03-09 23:51:37 -04:00
fa2de3e259 Improve financial statement value formatting 2026-03-09 18:58:15 -04:00
fae8c54121 Merge branch 't3code/improve-job-status-notification-details' 2026-03-09 18:54:02 -04:00
12a9741eca Improve job status notifications 2026-03-09 18:53:41 -04:00
9f972305e6 Fix annual financial selector and QCOM standardization 2026-03-09 18:50:59 -04:00