Skip to content

fix(sidebar): keep the workspace list its full height in Safari - #3295

Merged
devswha merged 2 commits into
mainfrom
fix/sidebar-workspace-list-height
Nov 7, 2026
Merged

devswha merged 2 commits into
mainfrom
fix/sidebar-workspace-list-height

Conversation

@devswha

@devswha devswha commented Nov 7, 2026

Copy link
Copy Markdown
Owner

Fixes #3267
Fixes #3217

Thanks to @Haeminway1 (#3255) and @odfalik (#3218), who found the same cause and the same kind of fix; this PR keeps #3255's grid and its layout assertions, and ships it now because users of Safari hit it on 0.5.0.

What

In Safari the sidebar's workspace list (the PCs section) stayed one row tall, with a scrollbar beside it and empty space under it, since the PCs/Agents resize line (#2944).

The PCs section is a column flexbox with a 0 flex basis and a max-content cap (Sidebar.css: flex: 1000 1 0; max-height: var(--section-max, max-content)). WebKit sizes that max-content from the 0 basis, so the cap came out at nothing and the section's minimum (top padding plus one row) won. Chromium sizes it from the rows.

The section is now a one-row grid (grid-template-rows: minmax(0, 1fr)) holding the scrolling list. Its max-content is its rows in both engines, so the flex sizing, the default split and the resize line work as before. Chromium draws exactly the same heights as before.

No new controls; no behaviour change outside Safari/WebKit.

Evidence

Demo app at 1280x844, .pcs-sidebar / .machine-list / list scroll height / .agents-sidebar in px:

short roster 40 more workspaces both lists long
WebKit, main 54 / 46 / 270 / 246 54 / 46 / 2110 / 246 54 / 46 / 2110 / 683
WebKit, this PR 278 / 270 / 270 / 246 491 / 483 / 2110 / 246 338 / 330 / 2110 / 399
Chromium, main and this PR 278 / 270 / 270 / 246 491 / 483 / 2110 / 246 338 / 330 / 2110 / 399

WebKit was Playwright 1.65's WebKit (in mcr.microsoft.com/playwright:v1.65.0-noble), the engine Safari uses; main's numbers match the reporter's screenshot (one workspace and a scrollbar). On main, WebKit draws one workspace row and a scrollbar with empty space under it; with this PR it draws every row, as Chromium does.

Tests

scripts/sidebar-split-demo-regression.ts (checks taken from #3255):

  • the PCs section's computed display is grid: fails on main in Chromium, which CI runs ("the PCs section stays a grid, or Safari draws its list one row tall");
  • by default, and with Agents folded, the PCs' list is as tall as its rows or the room it has, and the first row is in view.

Run in WebKit too (a scratch copy pointed at Playwright 1.63's WebKit server, 1280 light/dark, both orders; not committed, CI has no WebKit): on main's CSS it fails with "the PCs' list takes its rows' height or the room it has (46/270px)"; with this PR all four cases pass.

Validation

In the CI runner image (herdr-ci-runner:local) at 68e9c27 (the fix): bun run check fast passed, and bun run build plus the sidebar browser regressions hide-pc, sidebar-agent-tree, sidebar-declutter, sidebar-filter, sidebar-heads, sidebar-machine-layout, sidebar-peek, sidebar-spacing, sidebar-split-access and sidebar-split all passed (with UI_EVIDENCE_DIR). At 2f69690 (the test commit): bun run check fast, sidebar-split and sidebar-split-access passed again.

Not run: the integration suite and full check (CSS only).

The PCs section is a column flexbox with a 0 flex basis and a max-content
cap (Sidebar.css). WebKit sizes that max-content from the 0 basis, so the
section stayed at its minimum, one row, and the list scrolled inside it.
A one-row grid gets the same heights in WebKit as Chromium already drew.
…tays a grid

The grid pin fails on main in Chromium; the height checks fail on main in
WebKit (46px of 270px), where CI does not run. Same checks as #3255.
@coderabbitai

coderabbitai Bot commented Nov 7, 2026

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 45 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 4 included reviews currently available.

Learn how review limits work.

Review configuration:

Run configuration

Commits

Reviewing files that changed from the base of the PR and between fd86d91 and 2f69690.

Files selected for processing: 3

  • changelog.d/safari-sidebar-workspace-list-height.md
  • scripts/sidebar-split-demo-regression.ts
  • src/components/SidebarSections.css
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@devswha

devswha commented Nov 7, 2026

Copy link
Copy Markdown
Owner Author

Reviews at 2f69690:

  • omo (dori review): CLEAR.
  • Codex (gpt-6.1-terra, adversarial, static): no HIGH, MEDIUM or LOW findings; .machine-list is the section's only in-flow child, so the grid makes no extra rows, and the split code still measures the section and its first row.
  • CodeRabbit did not review this head (review limit reached).

@devswha
devswha merged commit 314d2d7 into main Nov 7, 2026
13 checks passed
@devswha

devswha commented Nov 7, 2026

Copy link
Copy Markdown
Owner Author

Merge note (merge pass) at head 2f69690:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant