cmux NEXT Home: a lone Chief in a narrow column takes no avatar column; the chat gets the width
In a narrow Home column (list below 180 pt, the avatar-only list from 33224e07f08), a list that holds only the Chief drew a ~120 pt column with one lone avatar in it: an empty band beside the chat. Now the avatar-only list takes no column while it holds one conversation and nothing else (no Cloud note, no Message Requests): it's hidden with its divider, the chat spans the split, and compose stays at the chat's top-left as it already does for any avatar-only list. A second conversation, or a column wide enough for the list with names, brings the list back at its width. Everything else in the narrow-list feature (header hiding, compose moving, the 53c99aad207 clamp) is unchanged.
Debug Settings > Home > "Avatar list for one conversation" (home.loneConversationRail, off by default) keeps the avatar-only column for one conversation.
How: HomeSidebarView.holdsOneConversation (pinned + rows ≤ 1, no note, no requests; the New Message draft row doesn't count) and an onContentChange hook that re-lays out the split. HomeSidebarSplitView.layout() gets one line, if foldLoneConversation() { return }, before the existing placement; folding hides the list subview, shouldHideDividerAt hides its divider, sidebarWidth reports 0 while folded, and place / the divider double-click do nothing while folded. The split follows the tunable through Observation, so toggling it applies without a resize.
Regression test
cmux-ci run --class light --script scripts/ci/package-test-lane.sh --ref <sha> --arg=suite --arg=Packages/macOS/CmuxNext --arg=HomeLoneChiefRailTests --env CMUX_CI_XCODE_APP=/Applications/Xcode_26.6.app
- Red on the test-only commit 2251a7f2e10fd1f4e01911ca36dca87fdc6f2bd2: running on the fleet (step 64106f5661539411807c77c8), result to follow
- Green on the head 00fcd2953db300cadeed18cb6a205641b25babfd: running on the fleet (step 2f3c5f3f93437ca4af6d4678), result to follow
The suite covers: one Chief in a 400 pt window (list folded, chat spans 400 pt, compose visible at the chat's top-left); three conversations keep the avatar list at 119 pt; one Chief in a 1000 pt window keeps the 320 pt list with names; fold and unfold as conversations come and go and the window widens and narrows; the Debug toggle keeps the column and turning it off folds the open page.
Observed / Not run
- Observed: the fleet runs above;
cmux-ci compile-check --ref 00fcd2953db --apppassed;scripts/cmux-next/prepush-gate.pyclean. - Not run: the full CmuxNext suite locally (no local builds). Real-app capture: to follow.
Changelog
Fixed: A narrow Home column with only the Chief no longer shows an empty avatar column beside the chat.
Agent session: cosmic-gray
🤖 Generated with Claude Code
![View with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/view-with-codesmith-dark-v3-3x.png)
![Autofix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark-3x.png)
Need help on this PR? Tag @codesmith-bot with what you need.
Summary by cubic
Fixes a narrow Home column whose list holds only the Chief: the avatar-only list no longer draws a lone avatar in an empty band beside the chat. The list and its divider are hidden, the chat spans the split, and compose stays at the chat's top-left.
Behavior
- The list folds only when the window squeezes the Chief's own width to avatars; a width dragged there keeps the column and its divider to drag it back out.
- A second conversation, or a column wide enough for names, brings the list back at its width.
- The fold runs an extra layout pass when hiding or showing the list, so no stale divider line stays at the list's old edge.
- Debug Settings > Home > "Avatar list for one conversation" (
home.loneConversationRail, off by default) keeps the avatar-only column for one conversation; turning it off folds the open page without a resize.
Tests
HomeLoneChiefRailTestscovers folding and unfolding as conversations come and go and the window widens and narrows, plus the Debug toggle.HomeSidebarSplitDividerTestsandResizeInvariantTestsnow list two conversations, since a lone Chief folds away in the shrinking tests; a new folded variant checks that no divider line stays at the old 320 pt place.