perf(maestro): drop the sidebar preview delay
The pane waited 150 ms on hover and 60 ms on a keyboard step before following the sidebar highlight, so every preview paid for the fast walk it might have been. Replace both with a leading-edge 120 ms gap: the first move shows at once, a burst is coalesced to its start and its end. The row's own hover no longer eases either — `background` was on a 120 ms transition, which is what read as lag on the row itself. The sidebar also rebuilt its whole tree on every `SessionUpdated`, a couple of times a minute per live session, dropping `:hover` from the row under the pointer. Refreshes that change nothing structural now patch the activity rail and meta line into the standing rows instead. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
f443f625a8
commit
6075a177f5
+12
-8
@@ -50,15 +50,19 @@ Nothing moves a second time on commit.
|
||||
|
||||
## Timing
|
||||
|
||||
A preview follows the highlight closely enough to be usable as a way to look
|
||||
around, and lags a pointer enough not to flash rows crossed on the way
|
||||
somewhere else.
|
||||
**A preview is never delayed.** Landing on a row — by pointer or by `j`/`k` —
|
||||
shows it on the next frame, and so does leaving every row. There is no
|
||||
settling period in front of the first preview, because that period would sit
|
||||
in front of the one preview the operator actually meant.
|
||||
|
||||
| Trigger | Delay |
|
||||
|---|---|
|
||||
| Keyboard step (`j`/`k`, arrows) | 60 ms |
|
||||
| Pointer hover (web, mouse only — never touch) | 150 ms |
|
||||
| Clearing (highlight left every session) | same delay as the trigger that set it |
|
||||
What is bounded is how *often* the pane may swap: at most once per 120 ms.
|
||||
A burst inside one window — `j` held down, or the pointer sweeping the length
|
||||
of the sidebar — shows the row it started on, then the row it ended on, and
|
||||
none of the rows in between. So a walk costs a couple of pane mounts rather
|
||||
than one per row, without the operator ever waiting on one.
|
||||
|
||||
The highlight itself is not bounded by any of this: the row lights up on the
|
||||
same frame as the input, whatever the pane behind it is doing.
|
||||
|
||||
Touch has no hover, and a tap already opens a session, so touch never previews.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user