Skip to content

tui(operator): placeholders for untyped names, underlined text inputs - #1272

Merged
edwin-zvs merged 3 commits into
mainfrom
tui/operator-editor-placeholders
Aug 19, 2026
Merged

tui(operator): placeholders for untyped names, underlined text inputs#1272
edwin-zvs merged 3 commits into
mainfrom
tui/operator-editor-placeholders

Conversation

@edwin-zvs

Copy link
Copy Markdown
Contributor

Two affordances for the operator and channel editors, as requested:

  1. Placeholders instead of prefilled defaults on create. The operator editor's Name and the channel editor's Channel ID start empty and show their suggested value as a dimmed placeholder. Typing starts from a blank field instead of appending to a value the user never wrote. A save that leaves the field untyped adopts the suggestion, so the one-keystroke create flow still works. The pane title borrows the placeholder while the name is empty, and the new-operator picker action now opens the draft editor directly — the separate "Operator name:" prompt is retired, with its duplicate-name check moved to save time (a create colliding with an existing operator is refused with a note instead of silently overwriting it).
  2. Underlined input areas on free-text fields. While a free-text field is selected, its value renders underlined and padded to a minimum input width — the rows that accept typing are now visibly inputs next to the rows that cycle (kind, trigger, routing…) or toggle (state, disclosure). Applies to both editors across all kinds (http / slack / slack-personal), driven by shared field-classification helpers so the render and the key handling cannot drift apart.

Before / after

before after
naming an operator before-name after-name
new channel ID before-id after-id

Full clips (same input stream driving both binaries): before.mp4 · after.mp4 — media is committed at d77b769 and removed in the follow-up commit; the pinned links stay alive via the PR ref.

Testing

  • Updated the create-flow tests to the new direct-open shape; new tests: draft opens with empty name + placeholder and the title borrows it; typing renames the draft keystroke-by-keystroke; save adopts an untyped name/ID; duplicate create names refused at save; next-free suggestion (operatoroperator-2); channel editor renders the dimmed ID placeholder with an underlined input area (buffer-modifier assertion).
  • Full workspace suite green; recorded flows above exercised against a live isolated daemon.

🤖 Generated with Claude Code

The operator editor's Name and the channel editor's ID start empty on
create and show their suggested value as a dimmed placeholder instead of
prefilled content — typing no longer appends to a name the user never
wrote. A save that leaves the field untyped adopts the suggestion, so
the one-keystroke create flow is preserved; a create whose name matches
an existing operator is refused at save (the check the retired name
prompt used to make). The new-operator picker action now opens the
draft editor directly instead of prompting for a name first.

Free-text fields in both editors render an underlined, padded input
area while selected, marking the rows that accept typing apart from the
rows that cycle or toggle.
@edwin-zvs
edwin-zvs merged commit d08c145 into main Aug 19, 2026
1 check passed
@edwin-zvs
edwin-zvs deleted the tui/operator-editor-placeholders branch August 19, 2026 01:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant