Repository navigation
layout: placement-followups - #878
Conversation
A drag while an adaptive split is turned no longer outlives the turn, besideGrouping sends a view only to a pane that is shown, and Workspaces.sync builds one Layout per pass. Agent-Team: macos Worker: claude Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
PM note: how this PR will be handledWhat it is for: layout: placement-followups Rules that apply: none special. Things to watch (checked by rule):
What happens next:
A living status comment below is kept current. Nothing here is a merge decision. |
Where this PR standsStage: Done: approved What the PM needs before approving (ticks as it is met; the full CI runs only at the end, after the reviews are clean):
Reviews at the current commit (
4 earlier reviews are for older commits and will be redone. Latest fixes comment: https://github.com/fizzyedit/work/issues/405#issuecomment-6447502783 (0 findings answered) Updated 2026-10-27 18:03 UTC by the PM. This comment is edited in place. |
Without the line the first frame back already reads _seen as null (dvui drops data a frame leaves unread), so the turned-drag test passes with or without it. Agent-Team: macos Worker: claude Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ot saved orientBranch saved the share of a sash dragged while turned, so turning back drew the saved extent but kept the drag's share. The drag now sets only the drawn share. The turned-drag test fails without this on main (0.33 for 0.5); the PR branch predated the saved share, so it passed there. Agent-Team: macos Worker: claude Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Agent-Team: macos Worker: claude
Conflict in tests/integration.zig: kept both test blocks. Agent-Team: macos Worker: claude Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Part of fizzyedit/work#312
Goal
Follow-ups from #817 (fizzyedit/work#312): a sash drag while an adaptive split is turned writes nothing and does not outlive the turn;
besideGroupingonly sends a view to a pane that is shown;Workspaces.syncbuilds oneLayoutper pass.What changed and why
Region.orientBranch: a sash dragged while turned sets only the drawn_share; it no longer writes it into the saved split, so turning back keeps the saved share. Main was merged in (the branch predated the saved share).Workbench.besideAnswer: the "other" pane thatplacemay answer.intomust be drawn and in a place of the app's (Places.placed). Before, an undrawn pane counted as a 0x0 candidate.Workspaces.sync: oneLayoutfor the pass;besideand the loop sharebesideIn.How it was verified
scripts/check-fmt.sh, andscripts/zb buildwithtest,test-integration(426/426),check-web,test-sdk-version,lintandcheck-tests-reached, all green on macOS. New integration tests: the headless block asserts an undrawn pane is not sent the view (fails without theWorkbenchchange: reverted, it crashes with "expected 3, found 0"); "a drag while an adaptive split is turned is not kept when it turns back" asserts nothing is saved while dragged and the share after turning back and upright again. That second test fails without theRegionchange on current main (0.33 for 0.5). Round 3: check-fmt ok;test181/181 andtest-integration83/83 steps succeeded. No window was launched.Not done / follow-ups
layout.place.splitandlayout.place.adaptivecommands are not built: they are a separate piece of work and need their own issue.acceptsis not checked: every workspace pane accepts a document.Changes (4 files, +113/-18)
Gates: 6 of 6 passed
scripts/check-fmt.sh(exit 0)scripts/zb build --summary all(exit 0)scripts/zb build test --summary all(exit 0)scripts/zb build test-integration --summary all(exit 0)scripts/zb build check-web --summary all(exit 0)scripts/zb build test-sdk-version --summary all(exit 0)