perf(frontend): session lists and thread render every row without content-visibility or virtualisation #727

Open
opened 2026-09-25 08:50:09 +02:00 by dries · 0 comments
Owner

Follow-up from the perf report (item 12).

`components/SessionTable.tsx:275,365,477` (Dashboard, 30-day default window, up to 500 rows), `pages/session-detail/SessionSidebar.tsx:275,310` (72 h, unbounded) and the assistant-ui thread render with plain `.map`; no virtualisation lib is installed.

Fix: `content-visibility: auto` (+ `contain-intrinsic-size`) on row/message containers is the one-line win. Only reach for `@tanstack/react-virtual` if a Dashboard with >1k rows turns out to be real.

Follow-up from the perf report (item 12). \`components/SessionTable.tsx:275,365,477\` (Dashboard, 30-day default window, up to 500 rows), \`pages/session-detail/SessionSidebar.tsx:275,310\` (72 h, unbounded) and the assistant-ui thread render with plain \`.map\`; no virtualisation lib is installed. **Fix:** \`content-visibility: auto\` (+ \`contain-intrinsic-size\`) on row/message containers is the one-line win. Only reach for \`@tanstack/react-virtual\` if a Dashboard with >1k rows turns out to be real.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
dries/ocman#727
No description provided.