This commit is contained in:
@@ -80,14 +80,14 @@ durability step. See decisions 0004 and 0005.
|
||||
|
||||
## Default workspace composition
|
||||
|
||||
The default desktop workspace has three horizontal bands: the top 20% holds pane,
|
||||
agent, tool, context, and goal state; the middle 60% holds responsive vertical
|
||||
work lanes; and the bottom 20% is the answer, choice, chat, and approval shelf.
|
||||
The work region shows one lane in compact windows, three at normal desktop
|
||||
widths, and five on a 3440 px ultrawide. The selected lane alone owns keyboard
|
||||
input. Six surfaces continue updating so performance comparisons remain
|
||||
meaningful, with a sliding visible window keeping the selected pane onscreen.
|
||||
See decisions 0008 and 0009.
|
||||
The default desktop workspace is a responsive horizontal row of self-contained
|
||||
vertical panels: one panel in compact windows, three at normal desktop widths,
|
||||
and five on a 3440 px ultrawide. Inside every panel, the top 20% holds that pane's
|
||||
agent, tool, context, goal, target, and status; the middle 60% holds its terminal
|
||||
or work surface; and the bottom 20% holds that pane's answer, choices, chat, and
|
||||
approval boundary. The selected panel alone owns keyboard input. Six surfaces
|
||||
continue updating so performance comparisons remain meaningful, with a sliding
|
||||
visible window keeping the selected pane onscreen. See decisions 0008 and 0009.
|
||||
|
||||
We should evaluate, not blindly copy, WezTerm, Zellij, RMUX, tmux, and cmux. The
|
||||
first spike must compare a reusable terminal crate with a small first-party layer.
|
||||
|
||||
@@ -66,15 +66,14 @@ surface change never silently launches a process, moves the pane to another
|
||||
host, or changes which agent owns the session. Unsupported surfaces are shown as
|
||||
unavailable rather than simulated.
|
||||
|
||||
The default workspace has three horizontal bands: the top 20% shows context,
|
||||
pane/agent state, tools, and goal; the middle 60% is a responsive set of vertical
|
||||
work lanes; and the bottom 20% is the decision shelf. The work band shows one
|
||||
lane in compact windows, three at normal desktop widths, and up to five on an
|
||||
ultrawide display. One lane owns keyboard input at a time, and selecting a lane
|
||||
never pauses the others. Explicit split trees and dashboard layouts remain
|
||||
supported, but they do not displace this terminal-first default.
|
||||
The default workspace is a responsive row of self-contained vertical panels:
|
||||
one panel in compact windows, three at normal desktop widths, and up to five on
|
||||
an ultrawide display. Every panel has its own 20% context region, 60% terminal or
|
||||
work surface, and 20% decision shelf. One panel owns keyboard input at a time,
|
||||
and selecting it never pauses the others. Explicit split trees and dashboard
|
||||
layouts remain supported, but they do not displace this cmux-style default.
|
||||
|
||||
An optional decision shelf sits below the active work surface. It may show an
|
||||
An optional decision shelf sits below each pane's work surface. It may show an
|
||||
answer draft, two or three concrete choices, why each was suggested, and the
|
||||
capability each choice would need. Suggestions are inert data. Choosing one may
|
||||
prepare a typed workspace plan, but any command, file mutation, credential use,
|
||||
|
||||
+2
-2
@@ -118,8 +118,8 @@ who already have the final cargo-watch release installed.
|
||||
blocked OSC 52 behavior, key encoding, application-cursor mode, and resize.
|
||||
- `lumbridge-core` tests capability-gated split/select/rename/close commands,
|
||||
idempotent request IDs, close-tree promotion, and atomic agentic setup plans.
|
||||
- The GPUI slice tests its key-event adapter, responsive one/three/five-lane
|
||||
geometry, selected-pane lane windowing, 20/60/20 geometry-to-PTY sizing, xterm
|
||||
- The GPUI slice tests its key-event adapter, responsive one/three/five-panel
|
||||
geometry, selected-panel windowing, per-panel 20/60/20 PTY sizing, xterm
|
||||
256-color conversion, styled-run coalescing, cursor-run boundaries, and
|
||||
scrollback shortcut routing. It renders one real actor-owned VT session while
|
||||
five surfaces continue their deterministic background workload.
|
||||
|
||||
@@ -24,8 +24,8 @@ from macOS and Linux and the hard gates pass.
|
||||
The current programs establish dependency, build, launch, and interaction
|
||||
baselines. GPUI now routes a real PTY through a VT engine and keyboard encoder,
|
||||
paints coalesced styled cell runs and cursor shapes, and derives PTY rows/columns
|
||||
from its responsive one/three/five-lane 60% terminal band when the window
|
||||
changes. Retained-history page/top/bottom navigation is wired. Text selection,
|
||||
from the 60% terminal region inside each responsive one/three/five-panel layout
|
||||
when the window changes. Retained-history page/top/bottom navigation is wired. Text selection,
|
||||
mouse modes, a native Markdown editor, and one isolated browser child remain.
|
||||
|
||||
## Ubuntu baseline — metal, 2026-08-31
|
||||
@@ -87,9 +87,10 @@ fallback.
|
||||
## Measurement semantics
|
||||
|
||||
Both renderers retain the same all-deterministic six-surface action stream for
|
||||
comparison. GPUI now presents a 20/60/20 workspace whose middle band shows one,
|
||||
three, or five vertical work lanes while one terminal fixture is replaced with a
|
||||
real actor-owned VT session and five deterministic surfaces keep running. Counters
|
||||
comparison. GPUI now presents one, three, or five vertical panels, each with its
|
||||
own 20/60/20 context/work/decision composition, while one terminal fixture is
|
||||
replaced with a real actor-owned VT session and five deterministic surfaces keep
|
||||
running. Counters
|
||||
separate external PTY batches/lines from total model updates. The GPUI footer
|
||||
reports dispatch-to-element-build p50/p95 over a bounded 256-sample window. It
|
||||
is deliberately not called key-to-present or frame-present latency: neither
|
||||
|
||||
+21
-20
@@ -10,14 +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 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.
|
||||
pane equal visual priority. The current slice replaces that dashboard with one,
|
||||
three, or five cmux-style vertical panels according to available width. Every
|
||||
panel owns its own 20% context region, 60% work surface, and 20% decision shelf.
|
||||
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
|
||||
@@ -42,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;
|
||||
- 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;
|
||||
- a small responsive number of self-contained vertical panels, 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
|
||||
@@ -60,20 +60,21 @@ surface rather than a hosted Lumbridge control plane.
|
||||
palette shortcut.
|
||||
2. The sidebar starts with a compact `ATTENTION` group, followed by workspaces
|
||||
and remote hosts. It does not become a notification feed.
|
||||
3. A compact top 20% context band keeps all pane identities and states visible;
|
||||
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 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.
|
||||
3. The top 20% of every visible panel keeps that pane's identity, surfaces,
|
||||
execution target, context, goal, and state visible; the selected panel
|
||||
receives the accent treatment.
|
||||
4. A waiting pane uses an amber semantic label in both its panel context region
|
||||
and the attention sidebar. The label always includes words such as
|
||||
`NEEDS INPUT`.
|
||||
5. The middle 60% of every panel gives its terminal or work surface uninterrupted
|
||||
height. The selected panel 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,
|
||||
Context, Goal, and Review. Switching surfaces keeps one pane identity.
|
||||
8. A compact decision shelf may show local-analyst choices below the work
|
||||
surface. It labels its model/provider, trace scope, and whether suggestions
|
||||
are inert; no choice is visually conflated with an approved action.
|
||||
8. Every panel has a compact decision shelf below its work surface. It labels
|
||||
whether suggestions are inert or review is required; no choice is visually
|
||||
conflated with an approved action.
|
||||
|
||||
## Keyboard task flow
|
||||
|
||||
|
||||
@@ -1,22 +1,23 @@
|
||||
# 0008: The default workspace is a primary-terminal 3×1 composition
|
||||
# 0008: Every workspace panel uses a terminal-first 3×1 composition
|
||||
|
||||
Status: accepted for the native vertical slice.
|
||||
|
||||
Lumbridge defaults to three horizontal bands in one column. The top 20% exposes
|
||||
pane, agent, tools, context, goal, target, and attention state. The middle 60%
|
||||
is the terminal-first work region. The bottom 20% holds answers, choices, chat,
|
||||
approvals, and the local-analyst boundary.
|
||||
Every Lumbridge workspace panel defaults to three horizontal regions in one
|
||||
column. The top 20% exposes that pane's agent, tools, context, goal, target, and
|
||||
attention state. The middle 60% is that pane's terminal-first work surface. The
|
||||
bottom 20% is that pane's answer, choice, chat, approval, and local-analyst
|
||||
boundary.
|
||||
|
||||
This composition favors the region where engineers type and read for most of the
|
||||
day. It keeps context and decisions visible without making every surface a small
|
||||
dashboard card. The middle region may contain a responsive number of vertical
|
||||
work lanes under decision 0009; the selected lane alone owns keyboard input.
|
||||
This composition keeps the information needed to understand and steer a process
|
||||
attached to the same visual object as its terminal. The workspace may contain a
|
||||
responsive number of these panels under decision 0009; the selected panel alone
|
||||
owns keyboard input.
|
||||
|
||||
The framework spike retains six updating surfaces even when five are offscreen.
|
||||
That preserves the earlier streaming and reducer workload for performance
|
||||
comparison. Hidden surfaces do not receive keyboard input merely because they
|
||||
continue to update.
|
||||
The framework spike retains six updating surfaces even when one is outside the
|
||||
five-panel ultrawide window. That preserves the earlier streaming and reducer
|
||||
workload for performance comparison. Hidden panels do not receive keyboard input
|
||||
merely because they continue to update.
|
||||
|
||||
Window and lane geometry determine each terminal's rows and columns. The UI
|
||||
Window and panel geometry determine each terminal's rows and columns. The UI
|
||||
resizes the terminal engine and PTY through the bounded runtime actor; it does
|
||||
not resize only the text view or infer terminal wrapping after the fact.
|
||||
|
||||
@@ -1,24 +1,26 @@
|
||||
# 0009: The primary work region uses responsive vertical lanes
|
||||
# 0009: The workspace uses responsive self-contained vertical panels
|
||||
|
||||
Status: accepted for the native vertical slice.
|
||||
|
||||
The middle 60% work region shows one vertical lane in compact windows, three at
|
||||
normal desktop widths, and five when at least 2800 px remains after the sidebar.
|
||||
A 3440 px ultrawide therefore presents five lanes. A sliding window over the six
|
||||
The workspace shows one vertical panel in compact windows, three at normal
|
||||
desktop widths, and five when at least 2800 px remains after the sidebar. A
|
||||
3440 px ultrawide therefore presents five panels. A sliding window over the six
|
||||
comparison panes always keeps the selected pane visible.
|
||||
|
||||
This is not a return to the original 2×3 dashboard. Every lane receives the full
|
||||
work-region height, the surrounding context and decision bands remain stable,
|
||||
and only the selected lane owns keyboard input. Clicking a lane selects it. Pane
|
||||
processes and output continue independently of selection.
|
||||
This is not a return to the original 2×3 dashboard and it is not one shared
|
||||
20/60/20 frame sliced only through the middle. Every panel receives the full
|
||||
workspace height and independently contains its own 20% context region, 60%
|
||||
terminal/work surface, and 20% decision shelf. Only the selected panel owns
|
||||
keyboard input. Clicking a panel selects it. Pane processes and output continue
|
||||
independently of selection.
|
||||
|
||||
Terminal geometry is computed from the actual width of one lane, including gaps
|
||||
and insets. The selected real PTY is resized through the runtime actor when the
|
||||
responsive lane count or window bounds change. On the 3440×1440 reference
|
||||
display the current fixed-cell spike derives approximately 71 columns by 40
|
||||
rows per lane.
|
||||
Terminal geometry is computed from the width of one panel and the height of its
|
||||
middle 60% region, including gaps and content insets. The selected real PTY is
|
||||
resized through the runtime actor when the responsive panel count or window
|
||||
bounds change. On the 3440×1440 reference display the current fixed-cell spike
|
||||
derives approximately 71 columns by 42 rows per panel.
|
||||
|
||||
The first actor slice still owns one real PTY and five deterministic comparison
|
||||
surfaces. Promoting the runtime boundary from one actor to a pane-indexed session
|
||||
registry is required before all five visible terminal lanes can own independent
|
||||
registry is required before all five visible terminal panels can own independent
|
||||
real processes.
|
||||
|
||||
Reference in New Issue
Block a user