Performance budgets
Pin the wall-clock budgets that protect CareerVector's "feels fast" claim in the dashboard-table-as-main-surface mental model: landing TTI, dashboard ready for empty + 100-row + no-typst variants, CVL editor first-render and edit roundtrip, warm Typst render, bulk import of 50 jobs, score recompute across 50 jobs, tailor wall-clock for one job, and end-to-end journey (synthetic + live). Budgets are sourced from perf/budgets.json — this suite is the gate that asserts a regression must not silently push past them.
performance
via suite
no behaviour door