Update perf gate selectors to match the container UI #89
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem and evidence
The formal command scripts/verify perf --dev-vm --calibrate failed at measured performance budgets after 724.342 s with locator.fill timing out after 30 seconds on getByRole('textbox', {name: 'Search', exact: true}). The current container page labels its searchbox Filter Containers (packages/web/src/routes/containers/+page.svelte:386-400; packages/ui/src/components/DataTable.svelte:342-353). The gate also assumes opening container detail opens logs, while the current page requires an explicit Open logs action (packages/web/src/routes/containers/[host_id]/[engine]/[container_id]/+page.svelte:516-529).
The selector failure itself did not produce a valid workload sample or captured load value. The separate 10k-lines/s browser runs recorded load1 24.84 and 8.29. Failure evidence is audit-first-failure.log; browser measurements are in browser-busy-loaded-timeline.json. No flamegraph applies because the gate stopped before these measurements.
Recommendation
Update the existing perf gate to use the actual Filter Containers searchbox and explicitly open the lazy log panel before measuring it. Then rerun the real production-binary gate and retain its absolute and baseline checks.
Payoff, effort and risk
Expected gain: the gate reaches the intended measurements instead of failing on stale selectors; the audit produced no valid calibration or baseline because partial.json says complete:false.
Quick win vs deeper change: correct selectors and the log-open step in ≤½ day; rerun and handle any real failures as a separate follow-up.
Risk: low; the selector repair must not skip workload assertions or weaken budgets.
Priority: Now (≤1 day).
2026-10-04 owner decisions: Matches performance-first verification and the decision that code and tests are the spec. This is separate from #53, which concerns serializing full gates before compilation. Related: #53.
Report: perf-audit report
Source: perf-audit 2026-10-04
Starting issue work on branch
gate-tooling-nowat base069059d31fcd91366e76072e6be4871c01e5cde6.Scope: make the supply-chain check compare notices without rewriting the tracked file and resolve the
jitidiscrepancy; repair the perf gate's container search and lazy log selectors; align performance budget units/workload definitions and document each source from the perf audit. I will run onlyINFRATERAL_VERIFY_RUN_ID=gate-tooling-now scripts/verify fastand report its exact output plus final tree status.Finding:
scripts/perf/browser.mjscurrently asks for a textbox namedSearch, but the production DataTable exposes its filter as theFilter Containerssearchbox. The detail page shows aContainer logsheading before the lazy stream is open;Open logsmust be clicked and the gate must continue to assert a real stream OPEN before measuring memory.Finished issue #89 on
gate-tooling-now.Head:
459046794cd600c1b890472064b69c76b50c99baThe perf browser workload now targets the DataTable searchbox
Filter Containersand clicksOpen logsbefore requiring the real log stream OPEN. The requestedfastverification does not run the perf stage, so this selector path was not exercised by that gate.Fast verification output (verbatim; command exited 0):
Bun audit reported one low
cookieadvisory as report-only.git statuswas clean after verification.