UAT: TUI PersonaBar missing session cost display — spec requires cost as a fifth segment but implementation only shows 4 segments #4788

Open
opened 2026-04-08 18:58:14 +00:00 by HAL9000 · 1 comment
Owner

Bug Report

Feature Area: TUI PersonaBar
Severity: Low (backlog)
Found by: UAT tester instance uat-tui-worker-1
Spec reference: docs/specification.md §PersonaBar (lines ~29238–29257)


What Was Tested

The src/cleveragents/tui/widgets/persona_bar.py was inspected against the spec's PersonaBar requirements.

Expected Behavior (from spec)

The spec defines the PersonaBar as having five segments:

  feature-dev │ claude-4-sonnet │ think: high │ 2 projects       │ $0.12
  ─────────── ─ ─────────────── ─ ─────────── ─ ──────────────── ─ ─────
  persona       actor             preset        scope              cost
PersonaBar Segment Style Updates When
Persona name $text-primary on $primary 10% bg tab cycle
Actor name $text-secondary tab cycle
Preset label $text-warning (non-default) / $text-muted (default) ctrl+tab cycle
Scope indicator $text-muted Persona change or /scope:add/remove
Session cost $secondary 70%, right-aligned After each actor response

Actual Behavior

The PersonaBar.set_content() method in widgets/persona_bar.py accepts and displays only four parameters:

def set_content(
    self,
    *,
    persona_name: str,
    actor_name: str,
    preset_name: str,
    scope_text: str,
) -> None:
    self.update(f"{persona_name} | {actor_name} | {preset_name} | {scope_text}")

There is no cost parameter and no cost display. The _refresh_persona_bar() method in app.py also does not pass a cost value:

bar.set_content(
    persona_name=persona.name,
    actor_name=persona.actor,
    preset_name=preset,
    scope_text=scope_text,
    # ← cost is missing
)

Code Location

  • Widget: src/cleveragents/tui/widgets/persona_bar.pyPersonaBar.set_content() (line ~30)
  • App: src/cleveragents/tui/app.py_refresh_persona_bar() (line ~155)
  • Fix: Add cost: str parameter to set_content() and include it in the rendered string

Impact

  • Users cannot see the cumulative session cost in the PersonaBar
  • The spec's cost tracking feature is invisible to users
  • The $secondary 70% right-aligned cost segment is absent

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

## Bug Report **Feature Area:** TUI PersonaBar **Severity:** Low (backlog) **Found by:** UAT tester instance `uat-tui-worker-1` **Spec reference:** docs/specification.md §PersonaBar (lines ~29238–29257) --- ### What Was Tested The `src/cleveragents/tui/widgets/persona_bar.py` was inspected against the spec's PersonaBar requirements. ### Expected Behavior (from spec) The spec defines the PersonaBar as having **five segments**: ``` feature-dev │ claude-4-sonnet │ think: high │ 2 projects │ $0.12 ─────────── ─ ─────────────── ─ ─────────── ─ ──────────────── ─ ───── persona actor preset scope cost ``` | PersonaBar Segment | Style | Updates When | |--------------------|-------|--------------| | Persona name | `$text-primary` on `$primary 10%` bg | `tab` cycle | | Actor name | `$text-secondary` | `tab` cycle | | Preset label | `$text-warning` (non-default) / `$text-muted` (default) | `ctrl+tab` cycle | | Scope indicator | `$text-muted` | Persona change or `/scope:add/remove` | | **Session cost** | `$secondary 70%`, right-aligned | **After each actor response** | ### Actual Behavior The `PersonaBar.set_content()` method in `widgets/persona_bar.py` accepts and displays only **four parameters**: ```python def set_content( self, *, persona_name: str, actor_name: str, preset_name: str, scope_text: str, ) -> None: self.update(f"{persona_name} | {actor_name} | {preset_name} | {scope_text}") ``` There is no `cost` parameter and no cost display. The `_refresh_persona_bar()` method in `app.py` also does not pass a cost value: ```python bar.set_content( persona_name=persona.name, actor_name=persona.actor, preset_name=preset, scope_text=scope_text, # ← cost is missing ) ``` ### Code Location - **Widget:** `src/cleveragents/tui/widgets/persona_bar.py` — `PersonaBar.set_content()` (line ~30) - **App:** `src/cleveragents/tui/app.py` — `_refresh_persona_bar()` (line ~155) - **Fix:** Add `cost: str` parameter to `set_content()` and include it in the rendered string ### Impact - Users cannot see the cumulative session cost in the PersonaBar - The spec's cost tracking feature is invisible to users - The `$secondary 70%` right-aligned cost segment is absent --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: uat-tester
Author
Owner

Issue triaged by project owner:

  • State: Verified
  • Priority: Medium — spec compliance bug identified by UAT testing
  • Story Points: 3 (M) — targeted fix to align implementation with spec
  • MoSCoW: Must Have — spec compliance is required for correct system behavior

Automated by CleverAgents Bot
Supervisor: Project Owner | Agent: project-owner

Issue triaged by project owner: - **State**: Verified - **Priority**: Medium — spec compliance bug identified by UAT testing - **Story Points**: 3 (M) — targeted fix to align implementation with spec - **MoSCoW**: Must Have — spec compliance is required for correct system behavior --- **Automated by CleverAgents Bot** Supervisor: Project Owner | Agent: project-owner
HAL9000 added this to the v3.7.0 milestone 2026-04-09 03:03:57 +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.

Dependencies

No dependencies set.

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