UAT: TUI prompt symbol does not change based on input mode — spec requires (normal), / (command), $ (shell) #6431

Closed
opened 2026-04-09 21:02:46 +00:00 by HAL9000 · 0 comments
Owner

Bug Report

Spec Reference

Specification lines 29304–29311 (Input Mode Table), line 29085 (Prompt description), line 29493 (Shell Mode)

Expected Behavior (from spec)

The prompt symbol should change based on the current input mode (spec lines 29304–29311):

First Character Mode Prompt Symbol
(any other) Normal
@ (inline) Normal + Reference
/ Command /
! Shell $

From spec line 29085:

Prompt (bottom): PromptTextArea with mode-dependent symbol (❯ normal, $ shell, ☰ multi-line)

From spec line 29493:

Typing ! as the first character changes the prompt symbol to $

Actual Behavior (from code analysis)

src/cleveragents/tui/widgets/prompt.pyPromptInput is a simple wrapper around Textual's Input widget with no mode-dependent symbol:

class PromptInput(_InputBase):
    """Input widget wrapper with helper methods."""

    def consume_text(self) -> PromptSubmitted:
        text = self.value
        self.value = ""
        return PromptSubmitted(text=text)

No mode detection, no symbol change. The prompt always shows the same symbol regardless of whether the user types /, !, or normal text.

The InputModeRouter.detect_mode() in src/cleveragents/tui/input/modes.py correctly detects the mode, but this information is never fed back to the prompt widget to change its symbol.

Code Location

  • src/cleveragents/tui/widgets/prompt.pyPromptInput class (no mode-dependent symbol)
  • src/cleveragents/tui/input/modes.pydetect_mode() (mode detection exists but not connected to prompt)
  • src/cleveragents/tui/app.pyon_input_submitted() (mode routing happens after submission, not during typing)

Steps to Reproduce (Code Analysis)

  1. Read src/cleveragents/tui/widgets/prompt.py
  2. Observe: no mode-dependent symbol logic
  3. Read src/cleveragents/tui/app.py lines 176–209
  4. Observe: mode is detected only after submission, not during typing
  5. Compare with spec lines 29304–29311

Severity

Medium — the prompt symbol is a key visual affordance that tells users which mode they're in. Without it, users cannot tell if they're in shell mode or command mode.


Automated by CleverAgents Bot
Supervisor: UAT Testing | Agent: uat-tester

## Bug Report ### Spec Reference Specification lines 29304–29311 (Input Mode Table), line 29085 (Prompt description), line 29493 (Shell Mode) ### Expected Behavior (from spec) The prompt symbol should change based on the current input mode (spec lines 29304–29311): | First Character | Mode | Prompt Symbol | |-----------------|------|---------------| | *(any other)* | Normal | `❯` | | `@` *(inline)* | Normal + Reference | `❯` | | `/` | Command | `/` | | `!` | Shell | `$` | From spec line 29085: > **Prompt** (bottom): PromptTextArea with mode-dependent symbol (❯ normal, $ shell, ☰ multi-line) From spec line 29493: > Typing `!` as the first character changes the prompt symbol to `$` ### Actual Behavior (from code analysis) `src/cleveragents/tui/widgets/prompt.py` — `PromptInput` is a simple wrapper around Textual's `Input` widget with no mode-dependent symbol: ```python class PromptInput(_InputBase): """Input widget wrapper with helper methods.""" def consume_text(self) -> PromptSubmitted: text = self.value self.value = "" return PromptSubmitted(text=text) ``` No mode detection, no symbol change. The prompt always shows the same symbol regardless of whether the user types `/`, `!`, or normal text. The `InputModeRouter.detect_mode()` in `src/cleveragents/tui/input/modes.py` correctly detects the mode, but this information is never fed back to the prompt widget to change its symbol. ### Code Location - `src/cleveragents/tui/widgets/prompt.py` — `PromptInput` class (no mode-dependent symbol) - `src/cleveragents/tui/input/modes.py` — `detect_mode()` (mode detection exists but not connected to prompt) - `src/cleveragents/tui/app.py` — `on_input_submitted()` (mode routing happens after submission, not during typing) ### Steps to Reproduce (Code Analysis) 1. Read `src/cleveragents/tui/widgets/prompt.py` 2. Observe: no mode-dependent symbol logic 3. Read `src/cleveragents/tui/app.py` lines 176–209 4. Observe: mode is detected only after submission, not during typing 5. Compare with spec lines 29304–29311 ### Severity Medium — the prompt symbol is a key visual affordance that tells users which mode they're in. Without it, users cannot tell if they're in shell mode or command mode. --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: uat-tester
HAL9000 added this to the v3.2.0 milestone 2026-04-09 21:08:45 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
cleveragents/cleveragents-core#6431
No description provided.