UAT Bug: agents session tell does not invoke orchestrator actor — response is a hardcoded stub "Acknowledged: {prompt}" #3030

Open
opened 2026-04-05 04:07:28 +00:00 by freemo · 5 comments
Owner

Metadata

  • Branch: fix/session-tell-orchestrator-invocation
  • Commit Message: fix(cli): invoke orchestrator actor in session tell instead of returning hardcoded stub
  • Milestone: v3.5.0
  • Parent Epic: #933

Background and Context

The agents session tell command is the primary natural-language interface for interacting with CleverAgents. Per the specification (§agents session tell), this command must send the user's prompt to the orchestrator actor bound to the session via the A2A message/send operation. The orchestrator interprets the request and issues the necessary CleverAgents commands (creating actions, plans, or project changes).

The current implementation in src/cleveragents/cli/commands/session.py (tell(), lines ~690–750) is a hardcoded stub that simply echoes "Acknowledged: {prompt}" without invoking any actor or routing through A2A at all. The docstring explicitly acknowledges this: "For M3, the actor execution is stubbed — the assistant echoes an acknowledgement."

Stub code (current):

# 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,
)

Expected Behavior (per spec)

  • The command sends the natural-language prompt to the orchestrator actor bound to the session via A2A message/send
  • The orchestrator interprets the request and can issue CleverAgents commands (create actions, plans, project changes)
  • Output renders a "Plan Request" panel (Actor, Session, Automation, Prompt)
  • Output renders a "Commands Executed" panel showing what the orchestrator did
  • Output renders a "Result" panel showing the outcome
  • Output renders a "Usage" panel (Input Tokens, Output Tokens, Cost, Duration, Tool Calls)
  • The --stream flag streams orchestrator progress in real-time via A2A message/stream

Actual Behavior

  • The command appends a hardcoded "Acknowledged: {prompt}" message as the assistant response
  • No actor is invoked; no A2A operation is dispatched
  • No plan or action is created
  • Output shows only the user prompt and the stub acknowledgement
  • The --stream flag prints the stub string character-by-character

Impact

Criticalagents session tell is the core natural-language interface for the entire system. Without real orchestrator invocation, users cannot use the session to orchestrate any work. This renders the primary user-facing feature of the session management system completely non-functional.

Subtasks

  • Write a failing Behave scenario that reproduces the bug (TDD — must be merged to master before the fix)
  • Remove the hardcoded stub response from tell() in src/cleveragents/cli/commands/session.py
  • Wire tell() to dispatch a message/send A2A request to the orchestrator actor bound to the session
  • Implement --stream flag to use A2A message/stream for real-time progress output
  • Render the "Plan Request", "Commands Executed", "Result", and "Usage" output panels per spec
  • Add/update Behave unit test scenarios for the corrected tell() behaviour
  • Add Robot Framework integration test for end-to-end session tell → orchestrator invocation
  • Verify coverage >= 97% via nox -s coverage_report
  • Run nox (all default sessions) and fix any errors

Definition of Done

  • The failing Behave scenario that reproduces the bug is committed and merged to master before the fix
  • agents session tell <prompt> dispatches a real A2A message/send request to the orchestrator actor — no hardcoded stub remains
  • --stream flag streams orchestrator progress via A2A message/stream
  • Output panels (Plan Request, Commands Executed, Result, Usage) render correctly per spec
  • All Behave unit tests pass (nox -e unit_tests)
  • All Robot Framework integration tests pass (nox -e integration_tests)
  • All nox stages pass
  • Coverage >= 97%
  • Commit message matches exactly: fix(cli): invoke orchestrator actor in session tell instead of returning hardcoded stub
  • PR is merged to master on branch fix/session-tell-orchestrator-invocation

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

## Metadata - **Branch**: `fix/session-tell-orchestrator-invocation` - **Commit Message**: `fix(cli): invoke orchestrator actor in session tell instead of returning hardcoded stub` - **Milestone**: v3.5.0 - **Parent Epic**: #933 ## Background and Context The `agents session tell` command is the primary natural-language interface for interacting with CleverAgents. Per the specification (§`agents session tell`), this command must send the user's prompt to the orchestrator actor bound to the session via the A2A `message/send` operation. The orchestrator interprets the request and issues the necessary CleverAgents commands (creating actions, plans, or project changes). The current implementation in `src/cleveragents/cli/commands/session.py` (`tell()`, lines ~690–750) is a hardcoded stub that simply echoes `"Acknowledged: {prompt}"` without invoking any actor or routing through A2A at all. The docstring explicitly acknowledges this: *"For M3, the actor execution is stubbed — the assistant echoes an acknowledgement."* **Stub code (current):** ```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, ) ``` ## Expected Behavior (per spec) - The command sends the natural-language prompt to the orchestrator actor bound to the session via A2A `message/send` - The orchestrator interprets the request and can issue CleverAgents commands (create actions, plans, project changes) - Output renders a **"Plan Request"** panel (Actor, Session, Automation, Prompt) - Output renders a **"Commands Executed"** panel showing what the orchestrator did - Output renders a **"Result"** panel showing the outcome - Output renders a **"Usage"** panel (Input Tokens, Output Tokens, Cost, Duration, Tool Calls) - The `--stream` flag streams orchestrator progress in real-time via A2A `message/stream` ## Actual Behavior - The command appends a hardcoded `"Acknowledged: {prompt}"` message as the assistant response - No actor is invoked; no A2A operation is dispatched - No plan or action is created - Output shows only the user prompt and the stub acknowledgement - The `--stream` flag prints the stub string character-by-character ## Impact **Critical** — `agents session tell` is the core natural-language interface for the entire system. Without real orchestrator invocation, users cannot use the session to orchestrate any work. This renders the primary user-facing feature of the session management system completely non-functional. ## Subtasks - [ ] Write a failing Behave scenario that reproduces the bug (TDD — must be merged to `master` before the fix) - [ ] Remove the hardcoded stub response from `tell()` in `src/cleveragents/cli/commands/session.py` - [ ] Wire `tell()` to dispatch a `message/send` A2A request to the orchestrator actor bound to the session - [ ] Implement `--stream` flag to use A2A `message/stream` for real-time progress output - [ ] Render the "Plan Request", "Commands Executed", "Result", and "Usage" output panels per spec - [ ] Add/update Behave unit test scenarios for the corrected `tell()` behaviour - [ ] Add Robot Framework integration test for end-to-end `session tell` → orchestrator invocation - [ ] Verify coverage >= 97% via `nox -s coverage_report` - [ ] Run `nox` (all default sessions) and fix any errors ## Definition of Done - [ ] The failing Behave scenario that reproduces the bug is committed and merged to `master` before the fix - [ ] `agents session tell <prompt>` dispatches a real A2A `message/send` request to the orchestrator actor — no hardcoded stub remains - [ ] `--stream` flag streams orchestrator progress via A2A `message/stream` - [ ] Output panels (Plan Request, Commands Executed, Result, Usage) render correctly per spec - [ ] All Behave unit tests pass (`nox -e unit_tests`) - [ ] All Robot Framework integration tests pass (`nox -e integration_tests`) - [ ] All nox stages pass - [ ] Coverage >= 97% - [ ] Commit message matches exactly: `fix(cli): invoke orchestrator actor in session tell instead of returning hardcoded stub` - [ ] PR is merged to `master` on branch `fix/session-tell-orchestrator-invocation` --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: ca-uat-tester
freemo added this to the v3.5.0 milestone 2026-04-05 04:08:04 +00:00
Author
Owner

Label compliance fix applied:

  • Added missing labels: State/Unverified, Type/Bug
  • Reason: Issue was missing State/* and Type/* labels per CONTRIBUTING.md. Inferred Type/Bug from the "UAT Bug:" prefix. Applied State/Unverified as default. Kept existing Priority/Critical label.

Automated by CleverAgents Bot
Supervisor: Backlog Grooming | Agent: ca-backlog-groomer

Label compliance fix applied: - Added missing labels: `State/Unverified`, `Type/Bug` - Reason: Issue was missing `State/*` and `Type/*` labels per CONTRIBUTING.md. Inferred `Type/Bug` from the "UAT Bug:" prefix. Applied `State/Unverified` as default. Kept existing `Priority/Critical` label. --- **Automated by CleverAgents Bot** Supervisor: Backlog Grooming | Agent: ca-backlog-groomer
Author
Owner

Issue triaged by project owner:

  • State: Verified
  • Priority: Confirmed
  • MoSCoW: Should Have

Valid finding verified during batch triage.


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

Issue triaged by project owner: - **State**: Verified - **Priority**: Confirmed - **MoSCoW**: Should Have Valid finding verified during batch triage. --- **Automated by CleverAgents Bot** Supervisor: Project Owner | Agent: ca-project-owner
Author
Owner

Starting implementation on branch fix/session-tell-orchestrator-invocation.

Plan:

  1. Write failing Behave scenario (TDD) that verifies session tell dispatches a real message/send A2A request
  2. Add message/send and message/stream handlers to A2aLocalFacade
  3. Remove hardcoded stub from tell() in session.py
  4. Wire tell() to dispatch message/send via the A2A facade
  5. Implement --stream flag with message/stream
  6. Render output panels (Plan Request, Commands Executed, Result, Usage)
  7. Update all Behave unit test scenarios
  8. Run nox quality gates

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

Starting implementation on branch `fix/session-tell-orchestrator-invocation`. **Plan:** 1. Write failing Behave scenario (TDD) that verifies `session tell` dispatches a real `message/send` A2A request 2. Add `message/send` and `message/stream` handlers to `A2aLocalFacade` 3. Remove hardcoded stub from `tell()` in `session.py` 4. Wire `tell()` to dispatch `message/send` via the A2A facade 5. Implement `--stream` flag with `message/stream` 6. Render output panels (Plan Request, Commands Executed, Result, Usage) 7. Update all Behave unit test scenarios 8. Run nox quality gates --- **Automated by CleverAgents Bot** Supervisor: Implementation | Agent: ca-issue-worker
Author
Owner

Starting implementation on branch fix/session-tell-orchestrator-invocation.

Plan:

  1. Write failing Behave scenario (TDD) that verifies session tell dispatches a real message/send A2A request to the orchestrator actor
  2. Add message/send and message/stream handlers to A2aLocalFacade in src/cleveragents/a2a/facade.py
  3. Remove hardcoded stub from tell() in src/cleveragents/cli/commands/session.py
  4. Wire tell() to dispatch message/send via the A2A facade
  5. Implement --stream flag with message/stream
  6. Render output panels (Plan Request, Commands Executed, Result, Usage) per spec
  7. Update all Behave unit test scenarios
  8. Run nox quality gates

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

Starting implementation on branch `fix/session-tell-orchestrator-invocation`. **Plan:** 1. Write failing Behave scenario (TDD) that verifies `session tell` dispatches a real `message/send` A2A request to the orchestrator actor 2. Add `message/send` and `message/stream` handlers to `A2aLocalFacade` in `src/cleveragents/a2a/facade.py` 3. Remove hardcoded stub from `tell()` in `src/cleveragents/cli/commands/session.py` 4. Wire `tell()` to dispatch `message/send` via the A2A facade 5. Implement `--stream` flag with `message/stream` 6. Render output panels (Plan Request, Commands Executed, Result, Usage) per spec 7. Update all Behave unit test scenarios 8. Run nox quality gates --- **Automated by CleverAgents Bot** Supervisor: Implementation | Agent: ca-issue-worker
Author
Owner

[Stale Issue Alert] This Priority/Critical issue has been in State/In Progress for approximately 9 hours with no recent activity.

Current state: State/In Progress
Last updated: 2026-04-05T08:17:49Z

This is a critical bug (agents session tell stub). Is this blocked? If work has paused, please update the state to State/Paused. If work is complete, please transition to State/In Review.


Automated by CleverAgents Bot
Supervisor: Backlog Grooming | Agent: ca-backlog-groomer

**[Stale Issue Alert]** This `Priority/Critical` issue has been in `State/In Progress` for approximately 9 hours with no recent activity. Current state: `State/In Progress` Last updated: 2026-04-05T08:17:49Z This is a critical bug (`agents session tell` stub). Is this blocked? If work has paused, please update the state to `State/Paused`. If work is complete, please transition to `State/In Review`. --- **Automated by CleverAgents Bot** Supervisor: Backlog Grooming | Agent: ca-backlog-groomer
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#3030
No description provided.