feat: add responsive ultrawide work lanes
CI / rust (push) Successful in 2m3s

This commit is contained in:
2026-08-31 17:46:18 -07:00
parent e7ca1d0a73
commit 3f15b13312
11 changed files with 304 additions and 74 deletions
+18 -12
View File
@@ -10,12 +10,14 @@ framework decision gate, not a decorative dashboard.
## Current-run audit
The first 2026-08-31 GPUI baseline proved six-surface density but gave every
pane equal visual priority. The current slice replaces that dashboard with a
3×1 default: 20% context and pane selection, 60% active work surface, and 20%
decision shelf. Keyboard focus, command-palette input, live PTY input, styled VT
cells, cursor shapes, and geometry-driven resize are wired. Remaining visible
gaps are terminal selection/scrollback, real decision-shelf actions, usage-detail
provenance, and end-to-end platform accessibility/IME.
pane equal visual priority. The current slice replaces that dashboard with three
horizontal bands: 20% context and pane selection, a 60% responsive work region,
and a 20% decision shelf. The work region shows one, three, or five vertical
lanes according to available width. Keyboard focus, command-palette input, live
PTY input, styled VT cells, cursor shapes, geometry-driven resize, and retained-
history navigation are wired. Remaining visible gaps are terminal text selection
and mouse modes, real decision-shelf actions, usage-detail provenance, and end-to-
end platform accessibility/IME.
Screenshots for the audit are stored outside Git under
`~/shots/2026-08/lumbridge-ui-audit/`. Accessibility and IME correctness cannot
@@ -40,8 +42,8 @@ research, not source assets for Lumbridge. We adapt these interaction patterns:
cards;
- a quiet top tab strip for mixed terminal, Markdown, browser, and review
surfaces;
- one primary work surface with optional splits, instead of forcing every
surface into an equal dashboard tile;
- a primary work region with a small responsive number of equal vertical lanes,
instead of either one ultrawide terminal or a dense equal-card dashboard;
- narrow contextual tools, such as files, review, or Buzz, that can collapse
when the terminal needs the space;
- usage and agent state at the edge of the workspace rather than in modal
@@ -62,8 +64,9 @@ surface rather than a hosted Lumbridge control plane.
the selected pane receives the accent treatment.
4. A waiting pane uses an amber semantic label in both the context band and
attention sidebar. The label always includes words such as `NEEDS INPUT`.
5. The middle 60% gives the selected terminal or work surface uninterrupted
reading space and retains target, harness state, dimensions, and surface tabs.
5. The middle 60% gives one, three, or five terminal/work lanes uninterrupted
height and retains target, harness state, dimensions, and surface tabs. The
selected lane alone owns keyboard input.
6. The footer groups connection state, selected-harness identity, usage-window
provenance, and burn forecast into readable regions.
7. The selected pane has a quiet surface strip for Terminal, Browser, Tools,
@@ -79,6 +82,8 @@ surface rather than a hosted Lumbridge control plane.
- `Alt+1` through `Alt+6`: focus a pane directly while leaving terminal digits
available to the PTY.
- `Cmd+K` on macOS or `Ctrl+K` on Linux: open the command palette.
- `Shift+PageUp/PageDown`: move the selected live terminal through retained
history; `Shift+Home/End` jumps to the history top/live bottom.
- Typing while the palette is open changes its query; arrows change the result;
`Enter` runs it; `Escape` closes it and restores pane focus.
- `Enter` on a waiting agent opens its request detail. Approval remains a
@@ -92,8 +97,9 @@ receive the same state transitions and tests.
- In the first actor integration, one terminal pane consumes ordered output from
a real local PTY while each deterministic tick updates the other five
surfaces offscreen. The all-deterministic constructor remains available for
framework comparison and replay tests.
surfaces. One, three, or five are visible according to available width; the
all-deterministic constructor remains available for framework comparison and
replay tests.
- One pane enters and leaves `needs input` through a deterministic event.
- Markdown, browser-boundary, and review panes update counters without using a
web application shell.