mirror of
https://github.com/Ark0N/Codeman.git
synced 2026-10-09 08:59:40 +02:00
docs(tiles): no + in the tile header, owner decision 9
The spec records decision 9 and an as-built entry replacing the "+ / New session in this case" one, and marks the target picture, the header line and the + bullet as built without it. CLAUDE.md's header list, the invariants' z-index line (the + menu's layer) and the wiki's Tile Grid page (the header string, its table and the cap sentence) drop the +. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1003,7 +1003,7 @@ Tests: `test/mobile-prompt-composer.test.ts` (in the CI gate, deliberately not u
|
||||
|
||||
### Z-index layers
|
||||
|
||||
**Z-index layers**: subagent windows (1000), split picker menu (1000, `.split-picker-menu`), Tiles picker (1000, `.tile-picker-menu`; a tile's + menu reuses `.tab-rail-action-menu`, 2000), plan agents (1100), mobile/tablet fixed header (1200, `mobile.css`), modals on ≤768px (1300 — must beat the fixed header or the modal close button is buried), log viewers (2000), connection-loss overlay (2500, above the fixed header and modals), image popups (3000), response viewer (5000, backdrop 4999), file-preview overlay (5100 — must outrank the response viewer, which can launch it; at its old 2000 a path clicked in the chat opened BEHIND the chat), toasts/path picker (10000+, deliberately above the preview), the custom-model center-status banner (10001, `.center-status-banner` — `[hidden]` must re-assert `display: none` over its own `display: flex`, same trap as `.home-sessions[hidden]`, or `dismiss()` leaves an invisible click-blocker dead centre on screen), the swap-confirm and context-warning modals (10010, `#customModelSwapConfirmModal`/`#customModelContextWarningModal` — must clear both the plain `.modal` z-index of 1000 and the center-status banner it can appear over), terminal touch-selection bar (900 — above terminal content and the local-echo overlay, deliberately BELOW floating agent windows so it can never cover their controls), local echo overlay (7), iOS IME composition preview (EFFECTIVE layer depends on its home: with local echo on it is part of the local echo overlay at 7, drawn by `setComposition()` as an underlined tail after the pending text; with local echo off it is a span at z-index 6 inside `.xterm-helpers`, but `.xterm-helpers` is its own z-index 5 stacking context, so the span's effective layer is 5. That is below the overlay's 7, which is why the span cannot be used while the overlay holds text: typed text never reaches the PTY before Enter, the PTY cursor that places the span stays at the prompt start, and the overlay's opaque line div covers it).
|
||||
**Z-index layers**: subagent windows (1000), split picker menu (1000, `.split-picker-menu`), Tiles picker (1000, `.tile-picker-menu`), plan agents (1100), mobile/tablet fixed header (1200, `mobile.css`), modals on ≤768px (1300 — must beat the fixed header or the modal close button is buried), log viewers (2000), connection-loss overlay (2500, above the fixed header and modals), image popups (3000), response viewer (5000, backdrop 4999), file-preview overlay (5100 — must outrank the response viewer, which can launch it; at its old 2000 a path clicked in the chat opened BEHIND the chat), toasts/path picker (10000+, deliberately above the preview), the custom-model center-status banner (10001, `.center-status-banner` — `[hidden]` must re-assert `display: none` over its own `display: flex`, same trap as `.home-sessions[hidden]`, or `dismiss()` leaves an invisible click-blocker dead centre on screen), the swap-confirm and context-warning modals (10010, `#customModelSwapConfirmModal`/`#customModelContextWarningModal` — must clear both the plain `.modal` z-index of 1000 and the center-status banner it can appear over), terminal touch-selection bar (900 — above terminal content and the local-echo overlay, deliberately BELOW floating agent windows so it can never cover their controls), local echo overlay (7), iOS IME composition preview (EFFECTIVE layer depends on its home: with local echo on it is part of the local echo overlay at 7, drawn by `setComposition()` as an underlined tail after the pending text; with local echo off it is a span at z-index 6 inside `.xterm-helpers`, but `.xterm-helpers` is its own z-index 5 stacking context, so the span's effective layer is 5. That is below the overlay's 7, which is why the span cannot be used while the overlay holds text: typed text never reaches the PTY before Enter, the PTY cursor that places the span stays at the prompt start, and the overlay's opaque line div covers it).
|
||||
|
||||
## Security layers
|
||||
|
||||
|
||||
+15
-5
@@ -48,8 +48,11 @@ or settled a question the spec left open. The invariants as built are in
|
||||
the one cap every limit reads; the layout table keeps 7 to 9 (`TILE_LAYOUT_MAX`), unreachable,
|
||||
so going back to nine is that one line. A stored grid with more ids comes back as its first
|
||||
six. Where this spec says nine, read six.
|
||||
- **"+ / New session in this case"** runs the normal Run for that case and joins through
|
||||
the same auto-join as any Run from this tab.
|
||||
- **No + in the tile header** (owner decision 9): the header is `● name ……… ⋯ ⤢ ×`. The
|
||||
+ menu and its "New session in this case" are gone; tiles are added from the Tiles
|
||||
button (and its right-click picker), Ctrl/Cmd+click on a tab, a dragged tab, "Open group
|
||||
as tiles" and Run joining the open grid. Where this spec describes a `+`, it no longer
|
||||
exists.
|
||||
- **A tile that joins before its pane exists resends its size when the pid appears**
|
||||
(`TerminalTile.paneStarted()`): the server drops a resize for a session with no PTY and
|
||||
spawns at 120x40, and Run's own resize measures the parked main terminal. Applying a
|
||||
@@ -67,7 +70,8 @@ closed and reopened.
|
||||
The goal is a dashboard of agents: four, six or nine live Claude sessions on
|
||||
one monitor, each readable and typeable, with its state visible at a glance.
|
||||
The target picture is a 3x2 grid of tiles, each tile a full terminal with a
|
||||
small header: status dot, session name, a `⋯` menu, maximize, `+` and `×`.
|
||||
small header: status dot, session name, a `⋯` menu, maximize, `+` and `×` (as built:
|
||||
no `+`, owner decision 9).
|
||||
|
||||
## Goal (v1)
|
||||
|
||||
@@ -197,7 +201,7 @@ animation frame, and sends one resize per affected tile at pointer-up.
|
||||
|
||||
### Tile header
|
||||
|
||||
`● name ……… ⋯ ⤢ + ×`
|
||||
`● name ……… ⋯ ⤢ + ×` (as built: `● name ……… ⋯ ⤢ ×`, owner decision 9)
|
||||
|
||||
- **●** status dot from the existing six-state classifier
|
||||
(`app._sidebarRichRow(id, session)`, built on `_mobileOverviewState`):
|
||||
@@ -216,7 +220,8 @@ animation frame, and sends one resize per affected tile at pointer-up.
|
||||
it again (or the shortcut) restores the grid.
|
||||
- **+** adds a session: a picker of open sessions not yet tiled, plus "New
|
||||
session in this case", which runs the normal quick-start for the tile's case
|
||||
and drops the result into the next slot.
|
||||
and drops the result into the next slot. (Built, then removed by owner
|
||||
decision 9.)
|
||||
- **×** removes the tile ONLY. The session keeps running. Killing stays behind
|
||||
`⋯ → Close session` and its existing confirm modal (`requestCloseSession`).
|
||||
|
||||
@@ -902,6 +907,11 @@ exits green. Use the browser runner for those files and read the file count.
|
||||
the active one focused; `Ctrl+Shift+G` runs the same function. The picker
|
||||
is on right-click of the button (its title says so, as do the wiki and the
|
||||
Help modal).
|
||||
9. **No + in the tile header.** Decided by the owner ("remove the + button from
|
||||
these views"): the header is `● name ……… ⋯ ⤢ ×`. The + menu and its "New
|
||||
session in this case" went with it. Tiles are added from the Tiles button
|
||||
and its right-click picker, Ctrl/Cmd+click on a tab, a dragged tab, "Open
|
||||
group as tiles" and Run joining the open grid.
|
||||
|
||||
## Code anchors
|
||||
|
||||
|
||||
@@ -35,11 +35,11 @@ button in the header, beside Split, and enables `Ctrl+Shift+G`.
|
||||
|
||||
The layout follows the tile count: 1x1, 2x1, three side by side on a wide screen (else a
|
||||
2x2 with one empty slot), 2x2, 3x2. The grid holds at most six tiles, fewer when the
|
||||
window is too small for six; the picker and a tile's + say which limit applies.
|
||||
window is too small for six; the picker says which limit applies.
|
||||
|
||||
## A tile
|
||||
|
||||
Each tile has a small header: `● name ......... ⋯ ⤢ + ×`
|
||||
Each tile has a small header: `● name ......... ⋯ ⤢ ×`
|
||||
|
||||
| Part | What it does |
|
||||
| ------ | ------------------------------------------------------------------------------------------------ |
|
||||
@@ -47,7 +47,6 @@ Each tile has a small header: `● name ......... ⋯ ⤢ + ×`
|
||||
| name | Double-click to rename the session. |
|
||||
| `⋯` | The session menu: options, open in a new window, close the session. |
|
||||
| `⤢` | Zoom: the tile fills the grid; press it again (or `Alt+Shift+Enter`) to get the grid back. |
|
||||
| `+` | Add a session that is not tiled yet, or start a new session in this tile's case. |
|
||||
| `×` | Remove the tile. The session keeps running; close it from `⋯` if you want it gone. |
|
||||
|
||||
Click a tile to focus it. The focused tile has the accent border, takes your keyboard, and
|
||||
|
||||
Reference in New Issue
Block a user