From e044700ef7793398046dda059f045546b12f28c5 Mon Sep 17 00:00:00 2001 From: Frank Date: Sun, 18 Oct 2026 00:39:11 -0700 Subject: [PATCH 1/5] Status line: custom segments tuned for fleet bars; slim frank-archon label Named presets silently ignore leftSegments/rightSegments - the nerd preset's baked arrays were what we saw, and the configured arrays were dead. preset: custom with explicit arrays: chip (right) = token_in, token_out, cost, context_pct, time_spent; strip (left) = session_name, vim, mode, hostname, model, path, git (branch text off - worktree branches are autogenerated; dirty badges kept), pr. Cut tok/s duplicate, clock, cache trio, context_total, subagents, session hash. Composer shape stays claude after live box/band/rule trials. models.yml display name frank-archon drops the (dankserver) suffix; id untouched. Docs: pi/statusline.md records the preset-vs-custom trap, shape->segment routing, and the context-meter truth. --- agent/config.yml | 30 +++++++++++++- agent/models.yml | 2 +- omp-docs/log.md | 9 ++++ omp-docs/pi/index.md | 1 + omp-docs/pi/statusline.md | 86 +++++++++++++++++++++++++++++++++++++++ 5 files changed, 126 insertions(+), 2 deletions(-) create mode 100644 omp-docs/pi/statusline.md diff --git a/agent/config.yml b/agent/config.yml index d79d481..97caa1e 100644 --- a/agent/config.yml +++ b/agent/config.yml @@ -99,11 +99,39 @@ disabledExtensions: [] statusLine: separator: powerline - preset: nerd + preset: custom contextLine: embedded transparent: true compactThinkingLevel: true showHookStatus: true + sessionAccent: true + leftSegments: + - session_name + - vim + - mode + - hostname + - model + - path + - git + - pr + rightSegments: + - token_in + - token_out + - cost + - context_pct + - time_spent + segmentOptions: + model: + showThinkingLevel: true + path: + abbreviate: true + stripWorkPrefix: false + maxLength: 120 + git: + showBranch: false + showStaged: true + showUnstaged: true + showUntracked: true tui: textSizing: true codexResetFireworks: false diff --git a/agent/models.yml b/agent/models.yml index ab7f20e..ae83b5c 100644 --- a/agent/models.yml +++ b/agent/models.yml @@ -23,7 +23,7 @@ providers: # config.yml (192.168.0.143:7771 — frank-zealot's 3090); the # compactionModel candidate keeps the wire model id valid there. compactionModel: llamacpp (dankclaw-3090)/frank-zealot - name: "frank-archon (dankserver)" + name: "frank-archon" # Dankserver: BOTH Radeon AI PRO R9700s (gfx1201, TP=2 over the # 2026-09-20 board swap's root ports, wht6 wire). Engine: # radiance (StillDeadcode, Apache-2.0) from the digest-pinned diff --git a/omp-docs/log.md b/omp-docs/log.md index 0b467fa..4f4fe6e 100644 --- a/omp-docs/log.md +++ b/omp-docs/log.md @@ -11,6 +11,15 @@ timestamp: 2026-08-28 # Bundle Change Log +## 2026-10-18 — Status line rebuilt on custom segments; frank-archon display name slimmed + +Interactive tune-up of the omp status bar (grilling session, live loop: config edit → watcher repaint → niri screenshot verify). New knowledge page: [OMP Status Line Customization](/pi/statusline.md). + +* **Mechanics discovered:** `leftSegments`/`rightSegments` are inert unless `preset: custom` (fleet was on `nerd` with dead arrays); `composer.shape` routes them — in `claude`, right segments paint the top rule chip, left segments the bottom strip. The red rule **is** the context meter (length = usage); `contextLine` label variants only render in `box`/`band`. Working row (`⠿ Working… + tok/s`) is hardcoded — model/thinking can never join it (Tern-only). Eight composer shapes registered in the bundle; box/band previews run live and rejected. +* **Final bar:** chip = `token_in · token_out · cost · context_pct · time_spent` (stable width, pure numbers); strip = `session_name · vim · mode · hostname · model · path · git(no branch text) · pr`. Cut: tok/s duplicate, clock, cache trio, `context_total`, `subagents`, `session` hash. `path`: full cwd (`stripWorkPrefix: false`, `maxLength: 120`) — worktree branches are autogenerated, so branch text dropped, dirty badges kept. +* **models.yml:** frank-archon display `name` slimmed to `"frank-archon"` (endpoint suffix dropped; `id` untouched). +* **Out of scope noted:** worktree name generation (`wt--`) is omp-internal; possible upstream feature request. + ## 2026-10-09 — Blankpad DE redesign: desk profiles, keybind rework, Handy fleet wiring Branch `blankpad-de-redesign` (worktree `wt/de-redesign-20261009`). Full sweep + redesign of the niri/noctalia/Handy stack on blankpad. diff --git a/omp-docs/pi/index.md b/omp-docs/pi/index.md index 656caf4..9d40d9f 100644 --- a/omp-docs/pi/index.md +++ b/omp-docs/pi/index.md @@ -8,6 +8,7 @@ two llama.cpp servers (Dankserver, Dankclaw). - [Pi Settings System (settings.json)](/core/settings.md) — Main `settings.json` reference. Providers, models, packages, subagent overrides. - [Pi Models Configuration](/pi/models.md) — `models.json` reference. Provider definitions, model specs, endpoints. +- [OMP Status Line Customization](/pi/statusline.md) — How presets, composer shapes, and segment arrays actually interact; the fleet's tuned bar. ## Extensions diff --git a/omp-docs/pi/statusline.md b/omp-docs/pi/statusline.md new file mode 100644 index 0000000..079873e --- /dev/null +++ b/omp-docs/pi/statusline.md @@ -0,0 +1,86 @@ +--- +type: reference +title: OMP Status Line Customization +description: How the omp status line actually works — presets vs custom arrays, composer-shape segment routing, the context meter, and the fleet's tuned segment layout. +tags: + - omp + - tui + - statusline + - config +timestamp: 2026-10-18 +--- + +# OMP Status Line Customization + +Ground truth from the installed bundle (`@oh-my-pi/pi-coding-agent/dist/cli.js`) +verified live on blankpad 2026-10-18. All knobs live in +`agent/config.yml` under `statusLine:` (tracked — see +[Command Center repo](../core/index.md)); the file is file-watched, so edits +repaint a running session without restart (verify visually: niri screenshot, +see [niri capture recipe](../system/index.md)). + +## Preset vs custom — the trap + +`statusLine.preset` ships whole configurations (`default`, `minimal`, +`compact`, `full`, `nerd`, `ascii`, `custom`). **`leftSegments` / +`rightSegments` / `segmentOptions` are only read when `preset: custom`** — +with any named preset they are silently ignored. The fleet config runs +`preset: custom`. + +## Composer shape routes the segments + +`composer.shape` decides *where* the two segment arrays render: + +| shape | leftSegments | rightSegments | +|---|---|---| +| `claude` (fleet) | bottom strip, left-aligned | top rule chip, right-aligned | +| `rule` | same as claude, gap above strip | same | +| `band` | merged single row above editor | same row, right side (title skipped — it rides the working row) | +| `box` | box top border | box top border | +| `borderless` / `pi` / `field` / `rail` | single bottom bar | single bottom bar | + +The `⠿ Working…` row is hardcoded: shimmer text + `composer.tokenRate` readout +(+ session title in `band` only). Model/thinking-level can never join it +despite the settings description — that composer-bar behavior is Tern-only. + +## Segment universe (27) + +`pi`, `status`, `model`, `mode`, `path`, `git`, `pr`, `subagents`, +`token_in`, `token_out`, `token_total`, `token_rate`, `cost`, `context_pct`, +`context_total`, `time_spent`, `time`, `session`, `hostname`, `cache_read`, +`cache_write`, `cache_hit`, `session_name`, `usage`, `collab`, `stream`, `vim`. + +Conditional segments render nothing until their trigger exists: `vim` needs +`tui.vimMode`, `mode` needs plan/yolo, `pr` needs an associated PR, `git` shows +staged/unstaged/untracked badges (branch text optional via +`segmentOptions.git.showBranch`), `status` needs an extension push. +`session` = first 8 chars of the session id (resume-by-id handle). + +## The context meter + +The red rule in the `claude` shape **is** the context meter: its length tracks +context usage. `statusLine.contextLine` (`off` / `percentage` / `annotated` / +`embedded`) only changes rendering in `box`/`band` — in `claude` all non-`off` +values look identical. Docs' claim that contextLine is "box composer only" is +wrong for the meter itself; the labeled inline variant (`57%×—200K←`) is the +box/band-only part. + +## Path segment in worktrees + +Inside a git worktree the `path` segment always renders +`projectName/worktreeName` when `segmentOptions.path.stripWorkPrefix` is true +(default), or the abbreviated cwd otherwise — base-directory-only is not +renderable. `maxLength` clips tail-first. + +## Fleet configuration (2026-10-18) + +- Chip (right): `session_name` was moved to the strip; chip = `token_in`, + `token_out`, `cost`, `context_pct`, `time_spent` — pure numbers, stable width. +- Strip (left): `session_name`, `vim`, `mode`, `hostname`, `model`, `path`, + `git` (no branch text — worktree branches are autogenerated names), `pr`. +- Deliberately cut: `token_rate` (lives on the working row), `time` (panel + clock), `cache_*` (noise), `context_total` (implied by `x/200K`), + `subagents`, `session`. +- Model display names slimmed in `models.yml` (`frank-archon`, no endpoint + suffix); `name:` is free-form display, `id:` is the wiring — renaming ids is + the cutover procedure, see [Pi Models](/pi/models.md). -- 2.54.0 From e0920dc067d2dba54715f79618d6b2248691edc7 Mon Sep 17 00:00:00 2001 From: Frank Date: Sun, 18 Oct 2026 00:50:57 -0700 Subject: [PATCH 2/5] Status line: path segment keeps logical project/worktree label stripWorkPrefix true: worktree sessions show projectName/worktreeName with the worktree glyph instead of the on-disk cwd; matches the live bar tuned and screenshot-approved 2026-10-18. --- agent/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/agent/config.yml b/agent/config.yml index 97caa1e..dc7aede 100644 --- a/agent/config.yml +++ b/agent/config.yml @@ -125,7 +125,7 @@ statusLine: showThinkingLevel: true path: abbreviate: true - stripWorkPrefix: false + stripWorkPrefix: true maxLength: 120 git: showBranch: false -- 2.54.0 From 04d3628c9454f82513e0eae262913b2691435fc8 Mon Sep 17 00:00:00 2001 From: Frank Date: Sun, 18 Oct 2026 00:51:12 -0700 Subject: [PATCH 3/5] Docs: path segment two-mode stripWorkPrefix behavior; changelog matches shipped true --- omp-docs/log.md | 2 +- omp-docs/pi/statusline.md | 21 ++++++++++++++++----- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/omp-docs/log.md b/omp-docs/log.md index 4f4fe6e..795ec22 100644 --- a/omp-docs/log.md +++ b/omp-docs/log.md @@ -16,7 +16,7 @@ timestamp: 2026-08-28 Interactive tune-up of the omp status bar (grilling session, live loop: config edit → watcher repaint → niri screenshot verify). New knowledge page: [OMP Status Line Customization](/pi/statusline.md). * **Mechanics discovered:** `leftSegments`/`rightSegments` are inert unless `preset: custom` (fleet was on `nerd` with dead arrays); `composer.shape` routes them — in `claude`, right segments paint the top rule chip, left segments the bottom strip. The red rule **is** the context meter (length = usage); `contextLine` label variants only render in `box`/`band`. Working row (`⠿ Working… + tok/s`) is hardcoded — model/thinking can never join it (Tern-only). Eight composer shapes registered in the bundle; box/band previews run live and rejected. -* **Final bar:** chip = `token_in · token_out · cost · context_pct · time_spent` (stable width, pure numbers); strip = `session_name · vim · mode · hostname · model · path · git(no branch text) · pr`. Cut: tok/s duplicate, clock, cache trio, `context_total`, `subagents`, `session` hash. `path`: full cwd (`stripWorkPrefix: false`, `maxLength: 120`) — worktree branches are autogenerated, so branch text dropped, dirty badges kept. +* **Final bar:** chip = `token_in · token_out · cost · context_pct · time_spent` (stable width, pure numbers); strip = `session_name · vim · mode · hostname · model · path · git(no branch text) · pr`. Cut: tok/s duplicate, clock, cache trio, `context_total`, `subagents`, `session` hash. `path`: logical `project/worktree` label (`stripWorkPrefix: true`, kept after a live `false` trial of the full cwd); branch text dropped (worktree branches are autogenerated), dirty badges kept. * **models.yml:** frank-archon display `name` slimmed to `"frank-archon"` (endpoint suffix dropped; `id` untouched). * **Out of scope noted:** worktree name generation (`wt--`) is omp-internal; possible upstream feature request. diff --git a/omp-docs/pi/statusline.md b/omp-docs/pi/statusline.md index 079873e..f922fb2 100644 --- a/omp-docs/pi/statusline.md +++ b/omp-docs/pi/statusline.md @@ -65,12 +65,23 @@ values look identical. Docs' claim that contextLine is "box composer only" is wrong for the meter itself; the labeled inline variant (`57%×—200K←`) is the box/band-only part. -## Path segment in worktrees +## Path segment and `stripWorkPrefix` -Inside a git worktree the `path` segment always renders -`projectName/worktreeName` when `segmentOptions.path.stripWorkPrefix` is true -(default), or the abbreviated cwd otherwise — base-directory-only is not -renderable. `maxLength` clips tail-first. +`segmentOptions.path.stripWorkPrefix` (default **true** — the code tests +`!== false`) gates two behaviors in the `path` renderer: + +1. **Worktree sessions:** `true` never shows the disk path — it renders the + logical `projectName/worktreeName` label (bare `projectName` when the + current branch is named after the worktree) with the worktree glyph. + `false` opts out and shows the real cwd with a folder glyph, plus a + ` ↳ relativeRepoRoot` suffix inside a repo. Base-directory-only is not + renderable in either mode. +2. **All sessions:** `true` uses the pretty display path (scratch sessions + get the scratch-folder icon); `false` uses the raw absolute cwd. + +`abbreviate` and `maxLength` (clip, default 40) apply afterwards in both +modes. The fleet runs `true` — logical label, worktree glyph (verified live +2026-10-18; an earlier trial of `false` for the full cwd was rejected by eye). ## Fleet configuration (2026-10-18) -- 2.54.0 From 246189f0541bedd895900deeb832a296927c6a74 Mon Sep 17 00:00:00 2001 From: Frank Date: Sun, 18 Oct 2026 00:58:21 -0700 Subject: [PATCH 4/5] Status line: band shape, drop token_in/token_out segments Band merges the segment groups into one row above the editor and paints the labeled inline context meter (60% - 200K); the session title rides the working row. Cumulative token totals live in /session - off the bar. Docs and changelog updated to the band final state. --- agent/config.yml | 4 +--- omp-docs/log.md | 4 ++-- omp-docs/pi/statusline.md | 33 +++++++++++++++++++-------------- 3 files changed, 22 insertions(+), 19 deletions(-) diff --git a/agent/config.yml b/agent/config.yml index dc7aede..4128b16 100644 --- a/agent/config.yml +++ b/agent/config.yml @@ -18,7 +18,7 @@ modelRoles: memory: llamacpp (dankclaw-3090)/frank-zealot:medium symbolPreset: nerd composer: - shape: claude + shape: band theme: dark: dark-terminal light: light @@ -115,8 +115,6 @@ statusLine: - git - pr rightSegments: - - token_in - - token_out - cost - context_pct - time_spent diff --git a/omp-docs/log.md b/omp-docs/log.md index 795ec22..ccfc075 100644 --- a/omp-docs/log.md +++ b/omp-docs/log.md @@ -15,8 +15,8 @@ timestamp: 2026-08-28 Interactive tune-up of the omp status bar (grilling session, live loop: config edit → watcher repaint → niri screenshot verify). New knowledge page: [OMP Status Line Customization](/pi/statusline.md). -* **Mechanics discovered:** `leftSegments`/`rightSegments` are inert unless `preset: custom` (fleet was on `nerd` with dead arrays); `composer.shape` routes them — in `claude`, right segments paint the top rule chip, left segments the bottom strip. The red rule **is** the context meter (length = usage); `contextLine` label variants only render in `box`/`band`. Working row (`⠿ Working… + tok/s`) is hardcoded — model/thinking can never join it (Tern-only). Eight composer shapes registered in the bundle; box/band previews run live and rejected. -* **Final bar:** chip = `token_in · token_out · cost · context_pct · time_spent` (stable width, pure numbers); strip = `session_name · vim · mode · hostname · model · path · git(no branch text) · pr`. Cut: tok/s duplicate, clock, cache trio, `context_total`, `subagents`, `session` hash. `path`: logical `project/worktree` label (`stripWorkPrefix: true`, kept after a live `false` trial of the full cwd); branch text dropped (worktree branches are autogenerated), dirty badges kept. +* **Mechanics discovered:** `leftSegments`/`rightSegments` are inert unless `preset: custom` (fleet was on `nerd` with dead arrays); `composer.shape` routes them — `band` merges both arrays into one row above the editor (title rides the working row), `claude` splits them into top chip + bottom strip. The `claude` red rule **is** the context meter (length = usage); `contextLine` label variants render in `box`/`band` — `band` paints the labeled inline meter (`60% ——— × 200K`). Working row (`⠿ Working… + tok/s`) is hardcoded — model/thinking can never join it (Tern-only). Eight composer shapes registered in the bundle. +* **Final bar (`band`, after a `claude` sojourn):** left = `session_name · vim · mode · hostname · model · path · git(no branch text) · pr`; right = `cost · context_pct · time_spent` with the labeled inline context meter between the groups. Cut: tok/s duplicate, clock, cache trio, `context_total`, `subagents`, `session` hash, and `token_in`/`token_out` (cumulative totals live in `/session`). `path`: logical `project/worktree` label (`stripWorkPrefix: true`, kept after a live `false` trial of the full cwd); branch text dropped (worktree branches are autogenerated), dirty badges kept. * **models.yml:** frank-archon display `name` slimmed to `"frank-archon"` (endpoint suffix dropped; `id` untouched). * **Out of scope noted:** worktree name generation (`wt--`) is omp-internal; possible upstream feature request. diff --git a/omp-docs/pi/statusline.md b/omp-docs/pi/statusline.md index f922fb2..0f86114 100644 --- a/omp-docs/pi/statusline.md +++ b/omp-docs/pi/statusline.md @@ -33,9 +33,9 @@ with any named preset they are silently ignored. The fleet config runs | shape | leftSegments | rightSegments | |---|---|---| -| `claude` (fleet) | bottom strip, left-aligned | top rule chip, right-aligned | +| `band` (fleet) | merged single row above editor | same row, right side (title skipped — it rides the working row) | +| `claude` | bottom strip, left-aligned | top rule chip, right-aligned | | `rule` | same as claude, gap above strip | same | -| `band` | merged single row above editor | same row, right side (title skipped — it rides the working row) | | `box` | box top border | box top border | | `borderless` / `pi` / `field` / `rail` | single bottom bar | single bottom bar | @@ -58,12 +58,14 @@ staged/unstaged/untracked badges (branch text optional via ## The context meter -The red rule in the `claude` shape **is** the context meter: its length tracks -context usage. `statusLine.contextLine` (`off` / `percentage` / `annotated` / -`embedded`) only changes rendering in `box`/`band` — in `claude` all non-`off` -values look identical. Docs' claim that contextLine is "box composer only" is -wrong for the meter itself; the labeled inline variant (`57%×—200K←`) is the -box/band-only part. +In the `band` shape (fleet) the meter is the labeled inline line between the +segment groups (`60% ———— × 200K`). In the `claude` shape the red rule left of +the right-segment chip **is** the meter: its length tracks context usage. +`statusLine.contextLine` (`off` / `percentage` / `annotated` / `embedded`) +only changes rendering in `box`/`band` — in `claude` all non-`off` values +look identical. Docs' claim that contextLine is "box composer only" is +wrong for the meter itself; the labeled inline variant is the box/band-only +part. ## Path segment and `stripWorkPrefix` @@ -85,13 +87,16 @@ modes. The fleet runs `true` — logical label, worktree glyph (verified live ## Fleet configuration (2026-10-18) -- Chip (right): `session_name` was moved to the strip; chip = `token_in`, - `token_out`, `cost`, `context_pct`, `time_spent` — pure numbers, stable width. -- Strip (left): `session_name`, `vim`, `mode`, `hostname`, `model`, `path`, - `git` (no branch text — worktree branches are autogenerated names), `pr`. +- Shape `band`: one merged status row. Left group: `session_name`, `vim`, + `mode`, `hostname`, `model`, `path`, `git` (no branch text — worktree + branches are autogenerated names), `pr`. Right group: `cost`, + `context_pct`, `time_spent`, with the labeled inline context meter + between the groups. `session_name` renders on the working row, not the + status row. - Deliberately cut: `token_rate` (lives on the working row), `time` (panel - clock), `cache_*` (noise), `context_total` (implied by `x/200K`), - `subagents`, `session`. + clock), `cache_*` (noise), `context_total` (implied by the meter), + `subagents`, `session`, `token_in`/`token_out` (cumulative totals are + in `/session` anyway). - Model display names slimmed in `models.yml` (`frank-archon`, no endpoint suffix); `name:` is free-form display, `id:` is the wiring — renaming ids is the cutover procedure, see [Pi Models](/pi/models.md). -- 2.54.0 From c2d855b33da921cd163adce13cb32ad4bcdc1639 Mon Sep 17 00:00:00 2001 From: Frank Date: Sun, 18 Oct 2026 01:08:26 -0700 Subject: [PATCH 5/5] Status line: move model segment to the right cluster (model, cost, time) Left group keeps the where-am-I identity (host, path, git, pr); the right cluster carries what's-running (model) plus cost and elapsed time, painted in array order. context_pct verified to hoist into the inline meter spacer regardless of array position. Docs + changelog updated. --- agent/config.yml | 2 +- omp-docs/log.md | 2 +- omp-docs/pi/statusline.md | 11 ++++++----- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/agent/config.yml b/agent/config.yml index 4128b16..fb3af30 100644 --- a/agent/config.yml +++ b/agent/config.yml @@ -110,11 +110,11 @@ statusLine: - vim - mode - hostname - - model - path - git - pr rightSegments: + - model - cost - context_pct - time_spent diff --git a/omp-docs/log.md b/omp-docs/log.md index ccfc075..9c348cf 100644 --- a/omp-docs/log.md +++ b/omp-docs/log.md @@ -16,7 +16,7 @@ timestamp: 2026-08-28 Interactive tune-up of the omp status bar (grilling session, live loop: config edit → watcher repaint → niri screenshot verify). New knowledge page: [OMP Status Line Customization](/pi/statusline.md). * **Mechanics discovered:** `leftSegments`/`rightSegments` are inert unless `preset: custom` (fleet was on `nerd` with dead arrays); `composer.shape` routes them — `band` merges both arrays into one row above the editor (title rides the working row), `claude` splits them into top chip + bottom strip. The `claude` red rule **is** the context meter (length = usage); `contextLine` label variants render in `box`/`band` — `band` paints the labeled inline meter (`60% ——— × 200K`). Working row (`⠿ Working… + tok/s`) is hardcoded — model/thinking can never join it (Tern-only). Eight composer shapes registered in the bundle. -* **Final bar (`band`, after a `claude` sojourn):** left = `session_name · vim · mode · hostname · model · path · git(no branch text) · pr`; right = `cost · context_pct · time_spent` with the labeled inline context meter between the groups. Cut: tok/s duplicate, clock, cache trio, `context_total`, `subagents`, `session` hash, and `token_in`/`token_out` (cumulative totals live in `/session`). `path`: logical `project/worktree` label (`stripWorkPrefix: true`, kept after a live `false` trial of the full cwd); branch text dropped (worktree branches are autogenerated), dirty badges kept. +* **Final bar (`band`, after a `claude` sojourn):** left = `session_name · vim · mode · hostname · path · git(no branch text) · pr`; right cluster in array order = `model · cost · time_spent` (`context_pct` hoists out of the run to paint the labeled inline meter `60% ——— × 200K` as a flexible spacer between the groups). Cut: tok/s duplicate, clock, cache trio, `context_total`, `subagents`, `session` hash, and `token_in`/`token_out` (cumulative totals live in `/session`). `path`: logical `project/worktree` label (`stripWorkPrefix: true`, kept after a live `false` trial of the full cwd); branch text dropped (worktree branches are autogenerated), dirty badges kept. * **models.yml:** frank-archon display `name` slimmed to `"frank-archon"` (endpoint suffix dropped; `id` untouched). * **Out of scope noted:** worktree name generation (`wt--`) is omp-internal; possible upstream feature request. diff --git a/omp-docs/pi/statusline.md b/omp-docs/pi/statusline.md index 0f86114..b0acc09 100644 --- a/omp-docs/pi/statusline.md +++ b/omp-docs/pi/statusline.md @@ -88,11 +88,12 @@ modes. The fleet runs `true` — logical label, worktree glyph (verified live ## Fleet configuration (2026-10-18) - Shape `band`: one merged status row. Left group: `session_name`, `vim`, - `mode`, `hostname`, `model`, `path`, `git` (no branch text — worktree - branches are autogenerated names), `pr`. Right group: `cost`, - `context_pct`, `time_spent`, with the labeled inline context meter - between the groups. `session_name` renders on the working row, not the - status row. + `mode`, `hostname`, `path`, `git` (no branch text — worktree branches are + autogenerated names), `pr`. Right group (array order = paint order, so the + last entry hugs the screen edge): `model`, `cost`, `context_pct`, + `time_spent` — `context_pct` hoists out of the run to paint the labeled + inline meter (`60% ——— × 200K`) as a flexible spacer between the groups. + `session_name` renders on the working row, not the status row. - Deliberately cut: `token_rate` (lives on the working row), `time` (panel clock), `cache_*` (noise), `context_total` (implied by the meter), `subagents`, `session`, `token_in`/`token_out` (cumulative totals are -- 2.54.0