Repository navigation
Project heads get rows of their own; removing a worktree says so at the click - #89
Merged
Merged
Conversation
At rung 4 every project is one head, and a row of heads that still did not fit scrolled: on a phone with six projects, three were off the edge, and what was off the edge was whatever might be blocked on you. Rung 5 now gives the bar a second row. The heads get the whole of it, and wrap onto further rows of the bar's height when even that is not enough; the first row keeps the controls, and the usage readout gets its bars back there, since it was only squeezed for sharing a row with the strip. Rung 6 takes those bars again and rung 7 is the percentages with the click-to-open panel, which used to be rung 5. A grid, not a wrapping flex row, because a too-wide wrapping row wraps instead of overflowing and overflow is the sweep's only signal. The heads' row wraps rather than overflows on purpose: nothing the sweep could still take away is on it, and before it wrapped the sweep walked straight to 7 and shrank the usage readout for nothing -- measured, 540 down to 280 all at rung 7 with heads still off screen. Every item is placed explicitly, since the machine button and sign-out share a class. Measured with six projects: rung 0 at 1600, 4 at 900, 5 from 700 to 360 with the full readout (77px tall, 121 once the heads take two rows), 6 at 300, 7 at 240. Every head on screen and under elementFromPoint at every width; sweeping back up gave the same rungs; the panel at rung 7 still opens on screen and closes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Nothing on screen changed until DELETE /api/worktrees/:id came back -- killing every session in the worktree and a git worktree remove, which takes seconds with real agents in it -- and the remove dialog sat there meanwhile with its button disabled. A click that had worked looked like one that had not. Now both ways in (the dialog, and the straight-through delete when there is nothing to ask) go through removeWorktree in App, which marks the worktree departing before the request goes: its window greys out under 'Shutting down...' and is inert, the dialog closes, and the keyboard moves to its neighbour at once rather than at the answer. Success drops the window with the refresh; a refusal brings it back with git's words in it (TileFailure), which is where a failed action is said here -- the dialog no longer waits to show it. A departing window is also out of the Cmd+arrow walk's stops. Measured before that: the hint under it read 'to switch to this Claude', and a step into an inert window lands nowhere, which makes it a wall. Measured on a scratch instance with the DELETE held 2s: 100ms after the click the window was greyed, inert and saying Shutting down, the dialog gone and the keyboard in the neighbour; it left when the answer came. With a 409 instead it came back un-greyed with the message in it. Alt+Right from the window before it stepped over it. Sleep was already immediate -- the window starts leaving at 0ms with its request held -- and is unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two changes, one commit each.
Collapsed project heads that still do not fit get rows of their own (caa35d3)
At rung 4 every project is one head, and a row of heads that still did
not fit scrolled: on a phone with six projects, three were off the
edge, and what was off the edge was whatever might be blocked on you.
Rung 5 now gives the bar a second row. The heads get the whole of it,
and wrap onto further rows of the bar's height when even that is not
enough; the first row keeps the controls, and the usage readout gets
its bars back there, since it was only squeezed for sharing a row with
the strip. Rung 6 takes those bars again and rung 7 is the percentages
with the click-to-open panel, which used to be rung 5.
A grid, not a wrapping flex row, because a too-wide wrapping row wraps
instead of overflowing and overflow is the sweep's only signal. The
heads' row wraps rather than overflows on purpose: nothing the sweep
could still take away is on it, and before it wrapped the sweep walked
straight to 7 and shrank the usage readout for nothing -- measured, 540
down to 280 all at rung 7 with heads still off screen. Every item is
placed explicitly, since the machine button and sign-out share a class.
Measured with six projects: rung 0 at 1600, 4 at 900, 5 from 700 to
360 with the full readout (77px tall, 121 once the heads take two
rows), 6 at 300, 7 at 240. Every head on screen and under
elementFromPoint at every width; sweeping back up gave the same rungs;
the panel at rung 7 still opens on screen and closes.
Removing a worktree says so at the click, not when it is done (bd28616)
Nothing on screen changed until DELETE /api/worktrees/:id came back --
killing every session in the worktree and a git worktree remove, which
takes seconds with real agents in it -- and the remove dialog sat there
meanwhile with its button disabled. A click that had worked looked like
one that had not.
Now both ways in (the dialog, and the straight-through delete when
there is nothing to ask) go through removeWorktree in App, which marks
the worktree departing before the request goes: its window greys out
under 'Shutting down...' and is inert, the dialog closes, and the
keyboard moves to its neighbour at once rather than at the answer.
Success drops the window with the refresh; a refusal brings it back
with git's words in it (TileFailure), which is where a failed action
is said here -- the dialog no longer waits to show it.
A departing window is also out of the Cmd+arrow walk's stops. Measured
before that: the hint under it read 'to switch to this Claude', and a
step into an inert window lands nowhere, which makes it a wall.
Measured on a scratch instance with the DELETE held 2s: 100ms after
the click the window was greyed, inert and saying Shutting down, the
dialog gone and the keyboard in the neighbour; it left when the answer
came. With a 409 instead it came back un-greyed with the message in it.
Alt+Right from the window before it stepped over it. Sleep was already
immediate -- the window starts leaving at 0ms with its request held --
and is unchanged.
🤖 Generated with Claude Code