032df7f4017e1064614f778a155d8b1cf522dbf0
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m14s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 39s
CI / test-python-voice (push) Successful in 38s
CI / test-bqas (push) Successful in 29s
The Finanzen slide crashed on mount with "a.toFixed is not a function". Traced to UnitEconomicsCards.tsx:59 calling ltvCacRatio.toFixed(1), where ltvCacRatio arrives as a string. Root cause: the cached path in /api/financial-model/compute returns raw rows from pitch_fm_results. node-postgres returns NUMERIC / DECIMAL columns as strings by default, so lastResult.ltv_cac_ratio (and every other *_eur / *_pct / *_ratio field) flows through the app as a string. Arithmetic-heavy code paths survived on accidental string-coerce (`-`, `/`, `*`), but direct method calls like .toFixed() don't coerce, which is why Unit Economics was the visible crash site. Fix at the boundary: register a single types.setTypeParser(NUMERIC, …) on the pg Pool so every query returns real numbers. All our NUMERIC values fit well inside Number.MAX_SAFE_INTEGER, so parseFloat is safe. One-line change, no component-level defensive coercions needed. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…
…
Description
No description provided
Languages
Python
34.3%
TypeScript
33.6%
Go
26.7%
HTML
3.4%
Shell
0.8%
Other
1.2%