Commit Graph

162 Commits

Author SHA1 Message Date
3e09e38dfa Attempting to fix the Taxonomy. Stashing changes so far for worktree merge 2026-03-21 00:52:54 -04:00
391d6d34ce Automate issuer overlay creation from ticker searches 2026-03-19 20:44:58 -04:00
17de3dd72d Add history window controls and expand taxonomy pack support
- add 3Y/5Y/10Y financial history filtering and reorganize normalization details UI
- add new fiscal taxonomy surface/income bridge/KPI packs and update Rust taxonomy loading
- auto-detect Homebrew SQLite for native `sqlite-vec` in local dev/e2e with docs and env guidance
2026-03-18 23:40:28 -04:00
f8426c4dde fix: persist rust binary from cache mount for COPY command
The rust binary built with a cache mount wasn't available for COPY
because cache mounts are ephemeral. Copy the binary to a persistent
location within the same RUN command while the mount is accessible.
2026-03-17 22:17:03 -04:00
ea130d3299 Vendor crabrl-fork source and remove submodule linkage
- Replace `rust/crabrl-fork` gitlink with tracked source files
- Add workspace notes documenting why the fork is vendored
- Update ignore rules for vendored fork build artifacts
2026-03-17 19:55:38 -04:00
f4a0014572 refactor: reorganize Financials toolbar and flatten UI
- Group toolbar controls by function (Statement, Period, Mode, Scale)
- Move Trend Chart above Matrix, hidden by default
- Add chart toggle to toolbar actions
- Flatten all sections: remove card styling, use subtle dividers
- Update StatementRowInspector and NormalizationSummary with flat layout
2026-03-16 22:31:45 -04:00
4da9a04993 refactor: flatten Financials page UI for improved density
- Move Matrix panel to top position for better visibility
- Hide trend chart by default (showTrendChart: false)
- Flatten panel design by removing titles and borders
- Compact spacing and reduce UI chrome throughout
- Add chart toggle button in toolbar
- Enable dense and virtualized modes on StatementMatrix
- Fix missing useState import in FinancialsToolbar

The creates a cleaner, more professional Bloomberg terminal-style
interface with better information density and
improved performance through virtualization for large datasets.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-03-16 21:04:36 -04:00
ca45d8ea4c Redesign dashboard/screener UI for improved density and performance
- Add compact/dense CSS tokens for tighter layouts
- Add size prop to Button (default/compact) and Input (default/compact)
- Add density prop to Panel (normal/compact/dense)
- Add size prop to MetricCard (default/compact/inline)
- Create IndexCardRow component for horizontal metric display
- Create FilterChip component for removable filter tags
- Redesign Command Center with flat sections, reduced cards
- Tighten AppShell spacing (sidebar w-56, header mb-3, main space-y-4)

Design goals achieved:
- Denser, cleaner terminal-style layout
- Reduced card usage in favor of flat sections with dividers
- More space-efficient controls and metrics
- Better use of widescreen layouts
2026-03-16 19:51:00 -04:00
14a7773504 Add consolidated disclosure statement type
Create unified disclosure statement to organize footnote disclosures
separate from primary financial statements. Disclosures are now grouped
by type (tax, debt, securities, derivatives, leases, intangibles, ma,
revenue, cash_flow) in a dedicated statement type for cleaner UI
presentation.
2026-03-16 18:54:23 -04:00
a58b07456e Integrate crabrl parser into taxonomy hydration 2026-03-16 15:18:01 -04:00
cf084793ed chore: update crabrl-fork submodule with workspace fix 2026-03-15 20:57:24 -04:00
d73f09c15e feat: add crabrl-fork to workspace and fix taxonomy loading
- Add crabrl-fork to workspace Cargo.toml
- Update fiscal-xbrl-core to use local crabrl-fork
- Fix SurfaceFormulaOp enum: add Divide variant
- Fix SurfaceSignTransform enum: add Absolute variant
- Implement divide_formula_values function for SurfaceFormulaOp::Divide
- Implement Absolute sign transform handler
- Fix all taxonomy_loader and related tests to pass
2026-03-15 20:32:07 -04:00
4313058d65 Fix P0 issues in financial ingestion architecture
Some checks failed
PR Checks / typecheck-and-build (pull_request) Has been cancelled
Taxonomy Sidecar / taxonomy-sidecar (pull_request) Has been cancelled
- Wrap snapshot updates in transactions with error context for each child table
- Add sidecar retry with exponential backoff (3 attempts, 2s base, 10s max, 30% jitter)
- Add HTTP timeout (30s per request) and SEC rate limiting (10 req/s) in Rust
- Add XBRL validation with status reporting (checks root element, tag balance)
2026-03-15 16:51:32 -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