Steer dialog round H: unread-driven response tail, exit codes behind "?" #32
Loading…
Reference in a new issue
No description provided.
Delete branch "oss-oo/observatory-steerux-erux20260925"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Owner findings after live steering, round H of the steer-dialog UX refinement.
Finding 1 — response-tail block below the prompt
Root cause: the terminal status render always embedded the full
responseTailas a permanently expanded block (.steertail, max-height 30vh) — large, always present after any steer, and visually cut off at both ends (mid-content start inherent to a 500-char tail; bottom cut behind scroll).Fix — unread-driven pattern:
max-height: 40vh) and an explicit⋯ beginning cut — last 500 charshint (newtailTruncatedpayload flag from/steer/latest).✅ completed · <last line…>.● newunread badge.steerReadmap, keyed by steer id + tail).Finding 2 — exit-codes legend read like live status
Root cause: every status render appended the static
STEER_LEGENDline ("exit codes: 0 ok · 3 busy… · 4 failed · 5 timeout…"), so a reference table sat under live states and read like current status ("4 failed?? why?").Fix:
✅ steer ended — turn completed (exit 0), running/queued/delivered/timeout/failed each with their own line).STEER_EXITmap the status line uses so the two can never drift. Click-outside and re-click both close it.Also
Evidence
py_compile,--helpboot check,node --checkon the extracted script, Super-Linter slim v8.7.0 lane (BASH, BASH_EXEC, JSON, PYTHON_PYLINT 10/10, PYTHON_RUFF, MARKDOWN, YAML) — all green./tmp/pinky-steerux-evidence/): running/queued/terminal/delivered status lines legend-free; unread expanded + badge + cut hint + own scroll; dwell auto-collapse; manual toggle; new-content re-expand; popover contents and close paths; sendNow refusal path; read-state tracking.Finding 1 — the response-tail block below the prompt was large, permanently present, and visually cut off. It is now unread-driven: full scrollable block (own scroll area, truncation made explicit via the new tailTruncated payload flag) only while its content is unread; once in view (~1.5 s dwell) or clicked it auto-collapses to a slim one-line summary chip ('✅ completed · <last line>'); the chip is a manual expand toggle and new content re-expands the block with a '● new' badge. Read state is shared across the drawer and modal surfaces (steerRead map keyed by steer id + tail). Finding 2 — the static exit-code legend read like live status. The status line now explains only the steer's current state (friendly meaning first, 'exit N' in parens); the full exit-code table moved behind a small '?' affordance whose popover is explicitly labeled 'static reference — not the live status of this steer' and is built from the same STEER_EXIT map so the two cannot drift. README updated to match; intro paragraph reflowed to fix a pre-existing MD013 line-length violation (line 8, 608 chars since round G).