diff options
| author | user <user@clank> | 2026-08-11 22:32:15 +0200 |
|---|---|---|
| committer | user <user@clank> | 2026-08-12 19:34:35 +0200 |
| commit | 0c9022158ee3d311c819230bc3ef0a425f6d97a5 (patch) | |
| tree | e2756aee2aea5e8c83703d05816a8c4e51b518c1 /cli | |
| parent | input-frame: remove header rule and rails, plain separator (diff) | |
| download | sl0ppi-0c9022158ee3d311c819230bc3ef0a425f6d97a5.tar.gz sl0ppi-0c9022158ee3d311c819230bc3ef0a425f6d97a5.tar.xz sl0ppi-0c9022158ee3d311c819230bc3ef0a425f6d97a5.zip | |
chrome: reframe user prompts as a labelled chip + rail
The header was lost in 77f1d64: dropping the side rails also dropped
frameTop() from the return, leaving a bare closing rule under the message.
A rule *underneath* reads as an opener for the reply as much as a
terminator for the prompt, and it shared its glyph vocabulary with every
other box, so prompts were distinguished only by hue.
Replace it with a reverse-video chip and a left gutter:
█ ❯ PROMPT ▌──────────────────────────────────
▌ the prompt text
▌ wrapped continuation
The chip is the only filled element in the chrome and the rail the only
vertical (rails were removed everywhere else), so prompts are now
identifiable at a glance without adding glyphs to the rest of the UI.
The left cap is a FULL block, not ▐: the rail fills the left half of
column 0, so a right-half cap would sit in the opposite half of the same
cell and read as detached.
No closing rule; the reply terminates the block.
The native component wraps text in Box(pad, 1, bg), i.e. a blank padded
line above and below with OSC 133 markers on the first and last line.
paddingY is hardcoded and not configurable, so strip both pad lines and
re-home the markers: ZONE_START onto the header, ZONE_END+ZONE_FINAL
APPENDED to the last text line (prefixing would put the final line of the
prompt outside the semantic zone). Terminal prompt-jumping keeps working.
Note the OSC payload is not numeric-only -- pi emits 133;A / 133;B / 133;C
-- so the matcher runs to the terminator rather than a [0-9;] class. An
earlier numeric-only class silently matched nothing and left the pad lines
in place.
No timestamp: UserMessageComponent receives only `text`, and stamping at
first render would relabel every restored message with the restore time
under `pi -c`.
Diffstat (limited to 'cli')
0 files changed, 0 insertions, 0 deletions
