UAT: agents session tell is a stub — missing all spec-required output panels and real actor execution #3430

Open
opened 2026-04-05 16:45:14 +00:00 by freemo · 3 comments
Owner

Metadata

  • Branch: fix/session-tell-stub-missing-panels-and-actor-execution
  • Commit Message: fix(cli): implement real actor execution and spec-required output panels in agents session tell
  • Milestone: (none — backlog)
  • Parent Epic: #397

Backlog note: This issue was discovered during autonomous operation
on milestone v3.7.0. It does not block milestone completion and has been
placed in the backlog for human review and future milestone assignment.

Background and Context

The agents session tell command is implemented as a stub that echoes back the prompt as a simple acknowledgement. It is missing all the required output panels defined in the specification and does not perform real actor execution.

What was tested:
Code-level analysis of src/cleveragents/cli/commands/session.py against docs/specification.md §"agents session tell" (lines 2234–2390).

Current Behavior (Actual)

The tell() command (lines 682–753 of session.py) is a stub:

# Stub actor execution: generate simple assistant response
assistant_content = (
    f"Acknowledged: {prompt[:100]}"
    if not actor
    else f"[{actor}] Acknowledged: {prompt[:100]}"
)
service.append_message(session_id=session_id, role=MessageRole.ASSISTANT, content=assistant_content)

if stream:
    # Simulate streaming by printing character by character
    for char in assistant_content:
        sys.stdout.write(char)
        sys.stdout.flush()
    sys.stdout.write("\n")
else:
    console.print(f"[dim]user:[/dim] {escape(prompt)}")
    console.print(f"[cyan]assistant:[/cyan] {escape(assistant_content)}")

Issues:

  1. No real actor execution — just echoes "Acknowledged: {prompt}"
  2. No "Plan Request" panel
  3. No "Commands Executed" panel
  4. No "Result" panel
  5. No "Usage" panel (no token tracking)
  6. Streaming is simulated by printing character by character, not real streaming
  7. No JSON/YAML output path exists for the tell command
  8. The docstring even says "For M3, the actor execution is stubbed"

Expected Behavior (from spec §"agents session tell", lines 2234–2390)

Standard (non-streaming) mode:

╭─ Plan Request ─────────────────────────────────╮
│ Actor:      local/orchestrator                 │
│ Session:    01HXM2A6K1P2E9Q9D4GQ7J4S7Z         │
│ Automation: review                             │
│ Prompt:     Hello, what can you do?            │
╰────────────────────────────────────────────────╯

╭─ Commands Executed ──────────────────────────────────╮
│ • read_file src/main.py                              │
│ • search_code "def process"                          │
╰──────────────────────────────────────────────────────╯

╭─ Result ────────────────────────────────────────────╮
│ Created: plan-01HXM9D3B2W4CQYQ3P4ZB8A5T1           │
│ Modified: src/main.py                               │
╰─────────────────────────────────────────────────────╯

╭─ Usage ──────────────────────────────────────────╮
│ Input Tokens:  1,234                             │
│ Output Tokens: 567                               │
│ Cost:          $0.0023                           │
│ Duration:      4.2s                              │
│ Tool Calls:    2                                 │
╰──────────────────────────────────────────────────╯

✓ OK Orchestrator completed 2 commands

Streaming mode (--stream):

╭─ Session ──────────────────────────────────────╮
│ ID:    01HXM2A6K1P2E9Q9D4GQ7J4S7Z              │
│ Actor: local/orchestrator                      │
│ Mode:  streaming                               │
╰────────────────────────────────────────────────╯

<streamed tokens appear here>

╭─ Usage ──────────────────────────────────────╮
│ Tokens:     1,801                            │
│ Duration:   6.1s                             │
│ Tool Calls: 2                                │
╰──────────────────────────────────────────────╯

✓ OK Stream complete

Steps to Reproduce

  1. Create a session: agents session create
  2. Run: agents session tell --session <SESSION_ID> "Hello, what can you do?"
  3. Observe: only "user: Hello, what can you do?" and "assistant: Acknowledged: Hello, what can you do?" are shown
  4. No panels, no token usage, no real orchestrator response

Code Location

src/cleveragents/cli/commands/session.py, tell() function, lines 682–753

Severity

Criticalsession tell is the primary user interface for interacting with CleverAgents (per spec: "This is the main natural-language interface for interacting with CleverAgents"). A stub implementation means the core product functionality is not working.

Subtasks

  • Replace stub actor execution with real orchestrator actor invocation via the actor service
  • Implement "Plan Request" Rich panel (Actor, Session, Automation, Prompt fields) for non-streaming mode
  • Implement "Commands Executed" Rich panel listing commands the orchestrator ran
  • Implement "Result" Rich panel showing created/modified artifacts
  • Implement "Usage" Rich panel with Input Tokens, Output Tokens, Cost, Duration, Tool Calls
  • Fix success message to: "✓ OK Orchestrator completed N commands"
  • Implement streaming mode: display "Session" panel (ID, Actor, Mode), stream tokens in real-time, display "Usage" panel (Tokens, Duration, Tool Calls), show "✓ OK Stream complete"
  • Implement JSON/YAML output path for the tell command (--output json / --output yaml)
  • Tests (Behave): Add/update scenarios for agents session tell covering non-streaming panels, streaming mode panels, usage tracking, and JSON/YAML output
  • Tests (Robot): Add integration test for agents session tell end-to-end execution
  • Verify coverage >= 97% via nox -s coverage_report
  • Run nox (all default sessions), fix any errors

Definition of Done

  • agents session tell sends the prompt to the bound orchestrator actor for real execution (no stub)
  • Non-streaming mode renders all four spec-required panels: "Plan Request", "Commands Executed", "Result", "Usage"
  • Non-streaming success message reads "✓ OK Orchestrator completed N commands"
  • Streaming mode renders "Session" panel before streaming, streams tokens in real-time, renders "Usage" panel after, and shows "✓ OK Stream complete"
  • JSON/YAML output path is implemented and spec-compliant
  • All Behave scenarios for agents session tell pass
  • A Git commit is created where the first line of the commit message matches the Commit Message in Metadata exactly, followed by a blank line, then additional lines providing relevant details about the implementation
  • The commit is pushed to the remote on the branch matching the Branch in Metadata exactly
  • The commit is submitted as a pull request to master, reviewed, and merged before this issue is marked done
  • All nox stages pass
  • Coverage >= 97%

Automated by CleverAgents Bot
Supervisor: UAT Testing | Agent: ca-new-issue-creator

## Metadata - **Branch**: `fix/session-tell-stub-missing-panels-and-actor-execution` - **Commit Message**: `fix(cli): implement real actor execution and spec-required output panels in agents session tell` - **Milestone**: *(none — backlog)* - **Parent Epic**: #397 > **Backlog note:** This issue was discovered during autonomous operation > on milestone v3.7.0. It does not block milestone completion and has been > placed in the backlog for human review and future milestone assignment. ## Background and Context The `agents session tell` command is implemented as a stub that echoes back the prompt as a simple acknowledgement. It is missing all the required output panels defined in the specification and does not perform real actor execution. **What was tested:** Code-level analysis of `src/cleveragents/cli/commands/session.py` against `docs/specification.md` §"agents session tell" (lines 2234–2390). ## Current Behavior (Actual) The `tell()` command (lines 682–753 of `session.py`) is a stub: ```python # Stub actor execution: generate simple assistant response assistant_content = ( f"Acknowledged: {prompt[:100]}" if not actor else f"[{actor}] Acknowledged: {prompt[:100]}" ) service.append_message(session_id=session_id, role=MessageRole.ASSISTANT, content=assistant_content) if stream: # Simulate streaming by printing character by character for char in assistant_content: sys.stdout.write(char) sys.stdout.flush() sys.stdout.write("\n") else: console.print(f"[dim]user:[/dim] {escape(prompt)}") console.print(f"[cyan]assistant:[/cyan] {escape(assistant_content)}") ``` Issues: 1. No real actor execution — just echoes "Acknowledged: {prompt}" 2. No "Plan Request" panel 3. No "Commands Executed" panel 4. No "Result" panel 5. No "Usage" panel (no token tracking) 6. Streaming is simulated by printing character by character, not real streaming 7. No JSON/YAML output path exists for the tell command 8. The docstring even says "For M3, the actor execution is stubbed" ## Expected Behavior (from spec §"agents session tell", lines 2234–2390) **Standard (non-streaming) mode:** ``` ╭─ Plan Request ─────────────────────────────────╮ │ Actor: local/orchestrator │ │ Session: 01HXM2A6K1P2E9Q9D4GQ7J4S7Z │ │ Automation: review │ │ Prompt: Hello, what can you do? │ ╰────────────────────────────────────────────────╯ ╭─ Commands Executed ──────────────────────────────────╮ │ • read_file src/main.py │ │ • search_code "def process" │ ╰──────────────────────────────────────────────────────╯ ╭─ Result ────────────────────────────────────────────╮ │ Created: plan-01HXM9D3B2W4CQYQ3P4ZB8A5T1 │ │ Modified: src/main.py │ ╰─────────────────────────────────────────────────────╯ ╭─ Usage ──────────────────────────────────────────╮ │ Input Tokens: 1,234 │ │ Output Tokens: 567 │ │ Cost: $0.0023 │ │ Duration: 4.2s │ │ Tool Calls: 2 │ ╰──────────────────────────────────────────────────╯ ✓ OK Orchestrator completed 2 commands ``` **Streaming mode (`--stream`):** ``` ╭─ Session ──────────────────────────────────────╮ │ ID: 01HXM2A6K1P2E9Q9D4GQ7J4S7Z │ │ Actor: local/orchestrator │ │ Mode: streaming │ ╰────────────────────────────────────────────────╯ <streamed tokens appear here> ╭─ Usage ──────────────────────────────────────╮ │ Tokens: 1,801 │ │ Duration: 6.1s │ │ Tool Calls: 2 │ ╰──────────────────────────────────────────────╯ ✓ OK Stream complete ``` ## Steps to Reproduce 1. Create a session: `agents session create` 2. Run: `agents session tell --session <SESSION_ID> "Hello, what can you do?"` 3. Observe: only `"user: Hello, what can you do?"` and `"assistant: Acknowledged: Hello, what can you do?"` are shown 4. No panels, no token usage, no real orchestrator response ## Code Location `src/cleveragents/cli/commands/session.py`, `tell()` function, lines 682–753 ## Severity **Critical** — `session tell` is the primary user interface for interacting with CleverAgents (per spec: "This is the main natural-language interface for interacting with CleverAgents"). A stub implementation means the core product functionality is not working. ## Subtasks - [ ] Replace stub actor execution with real orchestrator actor invocation via the actor service - [ ] Implement "Plan Request" Rich panel (Actor, Session, Automation, Prompt fields) for non-streaming mode - [ ] Implement "Commands Executed" Rich panel listing commands the orchestrator ran - [ ] Implement "Result" Rich panel showing created/modified artifacts - [ ] Implement "Usage" Rich panel with Input Tokens, Output Tokens, Cost, Duration, Tool Calls - [ ] Fix success message to: `"✓ OK Orchestrator completed N commands"` - [ ] Implement streaming mode: display "Session" panel (ID, Actor, Mode), stream tokens in real-time, display "Usage" panel (Tokens, Duration, Tool Calls), show `"✓ OK Stream complete"` - [ ] Implement JSON/YAML output path for the `tell` command (`--output json` / `--output yaml`) - [ ] Tests (Behave): Add/update scenarios for `agents session tell` covering non-streaming panels, streaming mode panels, usage tracking, and JSON/YAML output - [ ] Tests (Robot): Add integration test for `agents session tell` end-to-end execution - [ ] Verify coverage >= 97% via `nox -s coverage_report` - [ ] Run `nox` (all default sessions), fix any errors ## Definition of Done - [ ] `agents session tell` sends the prompt to the bound orchestrator actor for real execution (no stub) - [ ] Non-streaming mode renders all four spec-required panels: "Plan Request", "Commands Executed", "Result", "Usage" - [ ] Non-streaming success message reads `"✓ OK Orchestrator completed N commands"` - [ ] Streaming mode renders "Session" panel before streaming, streams tokens in real-time, renders "Usage" panel after, and shows `"✓ OK Stream complete"` - [ ] JSON/YAML output path is implemented and spec-compliant - [ ] All Behave scenarios for `agents session tell` pass - [ ] A Git commit is created where the **first line** of the commit message matches the Commit Message in Metadata exactly, followed by a blank line, then additional lines providing relevant details about the implementation - [ ] The commit is pushed to the remote on the branch matching the **Branch** in Metadata exactly - [ ] The commit is submitted as a **pull request** to `master`, reviewed, and **merged** before this issue is marked done - [ ] All nox stages pass - [ ] Coverage >= 97% --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: ca-new-issue-creator
freemo added this to the v3.5.0 milestone 2026-04-05 17:04:36 +00:00
Author
Owner

Issue triaged by project owner:

  • State: Verified
  • Priority: Critical — session tell is the primary user interface for interacting with CleverAgents. It is currently a stub that echoes prompts without real actor execution, missing all spec-required output panels.
  • Milestone: v3.5.0 (assigned — this requires real actor execution via the A2A facade, which is a v3.5.0 capability)
  • Story Points: 13 (XXL) — Massive implementation: real orchestrator actor invocation, 4 Rich output panels (Plan Request, Commands Executed, Result, Usage), streaming mode with real token streaming, JSON/YAML output path, comprehensive BDD + Robot tests.
  • MoSCoW: Should Have — While session tell is the primary NL interface per spec, the issue body itself notes this was placed in backlog and "does not block milestone completion." The core autonomy features (plan lifecycle, guard enforcement, parallel execution) are the v3.5.0 Must Haves. Real actor execution in session tell is important but the CLI plan commands provide an alternative path for milestone demos.
  • Parent Epic: #397 (Server & Autonomy Infrastructure)

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

Issue triaged by project owner: - **State**: Verified - **Priority**: Critical — `session tell` is the primary user interface for interacting with CleverAgents. It is currently a stub that echoes prompts without real actor execution, missing all spec-required output panels. - **Milestone**: v3.5.0 (assigned — this requires real actor execution via the A2A facade, which is a v3.5.0 capability) - **Story Points**: 13 (XXL) — Massive implementation: real orchestrator actor invocation, 4 Rich output panels (Plan Request, Commands Executed, Result, Usage), streaming mode with real token streaming, JSON/YAML output path, comprehensive BDD + Robot tests. - **MoSCoW**: Should Have — While `session tell` is the primary NL interface per spec, the issue body itself notes this was placed in backlog and "does not block milestone completion." The core autonomy features (plan lifecycle, guard enforcement, parallel execution) are the v3.5.0 Must Haves. Real actor execution in `session tell` is important but the CLI plan commands provide an alternative path for milestone demos. - **Parent Epic**: #397 (Server & Autonomy Infrastructure) --- **Automated by CleverAgents Bot** Supervisor: Project Owner | Agent: ca-project-owner
Author
Owner

Plan to transition issue #3430 from State/Verified to State/In Progress.

Preconditions check:

  • Current state: State/Verified (not Paused). No blocking issue check needed.
  • Issue does not currently hold Blocked label, so no Blocked removal required.

Changes to apply:

  • Remove existing State/* labels: State/Verified (and any additional State/* labels if present).
  • Add new State/In Progress label.

Notes:

  • I will perform label removal and addition via Forgejo label endpoints. If any step fails, I will retry up to 3 times with 5-second backoff as per policy.
  • No other labels will be touched.

Status: Proceeding to apply the changes now.


Automated by CleverAgents Bot
Supervisor: Implementation | Agent: ca-issue-state-updater

Plan to transition issue #3430 from State/Verified to State/In Progress. Preconditions check: - Current state: State/Verified (not Paused). No blocking issue check needed. - Issue does not currently hold Blocked label, so no Blocked removal required. Changes to apply: - Remove existing State/* labels: State/Verified (and any additional State/* labels if present). - Add new State/In Progress label. Notes: - I will perform label removal and addition via Forgejo label endpoints. If any step fails, I will retry up to 3 times with 5-second backoff as per policy. - No other labels will be touched. Status: Proceeding to apply the changes now. --- **Automated by CleverAgents Bot** Supervisor: Implementation | Agent: ca-issue-state-updater
Author
Owner

PR #3473 created on branch fix/session-tell-stub-missing-panels-and-actor-execution. I will monitor and handle all review feedback until merged.

Implementation summary:

  • Replaced stub actor execution with real LLM invocation via provider registry
  • Implemented all four spec-required Rich panels: Plan Request, Commands Executed, Result, Usage
  • Implemented streaming mode with Session panel, real-time token streaming, Usage panel
  • Added --format option for JSON/YAML/plain output
  • Updated all existing tests and added new session_tell_panels.feature
  • Quality gates: lint ✓, typecheck ✓ (0 errors), format ✓

Automated by CleverAgents Bot
Supervisor: Implementation | Agent: ca-issue-worker

PR #3473 created on branch `fix/session-tell-stub-missing-panels-and-actor-execution`. I will monitor and handle all review feedback until merged. **Implementation summary:** - Replaced stub actor execution with real LLM invocation via provider registry - Implemented all four spec-required Rich panels: Plan Request, Commands Executed, Result, Usage - Implemented streaming mode with Session panel, real-time token streaming, Usage panel - Added `--format` option for JSON/YAML/plain output - Updated all existing tests and added new `session_tell_panels.feature` - Quality gates: lint ✓, typecheck ✓ (0 errors), format ✓ --- **Automated by CleverAgents Bot** Supervisor: Implementation | Agent: ca-issue-worker
freemo removed this from the v3.5.0 milestone 2026-04-06 21:05:29 +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.

Blocks
#397 Epic: Server & Autonomy Infrastructure
cleveragents/cleveragents-core
Reference
cleveragents/cleveragents-core#3430
No description provided.