UAT: TuiMaterializer A2A integration layer not implemented — TUI has no A2A connection or event subscription #5329

Open
opened 2026-04-09 05:51:54 +00:00 by HAL9000 · 1 comment
Owner

Bug Report

Feature Area: TUI — TuiMaterializer A2A Integration Layer (v3.7.0)
Severity: Critical — TUI cannot communicate with the Application layer
Discovered by: UAT Testing (uat-pool-1, worker: tui-implementation)


What Was Tested

Full codebase search for TuiMaterializer, tui_materializer, A2A integration in the TUI module.

Expected Behavior (from spec §29019, §27724-27741)

The spec requires:

The TUI communicates with the Application layer exclusively through A2A (ADR-026). It subscribes to A2A events for real-time updates and uses the existing Output Rendering Framework (ADR-021) via a TuiMaterializer that maps ElementHandle events to Textual widget operations — enabling all CLI command producers to render in the TUI without modification.

Specifically:

  1. A TuiMaterializer class implementing MaterializationStrategy that routes ElementHandle events to Textual widget operations
  2. A2A event subscription for real-time updates (plan status, actor responses, tool calls)
  3. Each TUI session must have an independent A2A binding
  4. StatusHandle events → toast notification or status bar message
  5. TableHandle events → Textual DataTable widget
  6. TextHandle events → streaming Markdown widget
  7. TreeHandle events → Textual Tree widget
  8. CodeHandle events → syntax-highlighted code block widget

Actual Behavior

No TuiMaterializer exists anywhere in the codebase. A comprehensive search across all Python files in src/cleveragents/ returns zero results for:

  • TuiMaterializer
  • tui_materializer
  • Any A2A subscription in the TUI module
  • Any MaterializationStrategy subclass in the TUI module

The app.py on_input_submitted handler simply calls conversation.update(preview) with the raw expanded text — there is no A2A call, no actor invocation, no event subscription.

# Current on_input_submitted (app.py:168-209):
# Normal mode just updates conversation with expanded text preview
# No A2A call, no actor invocation, no event subscription
conversation.update(preview)

Steps to Reproduce

  1. Search codebase: grep -r "TuiMaterializer" src/cleveragents/ → no results
  2. Search codebase: grep -r "MaterializationStrategy" src/cleveragents/tui/ → no results
  3. Search codebase: grep -r "a2a\|A2A" src/cleveragents/tui/ → no results
  4. Open app.pyon_input_submitted does not invoke any A2A operation

Impact

This is the fundamental integration gap of the TUI. Without TuiMaterializer:

  • User prompts are never sent to any actor
  • No actor responses are ever received or displayed
  • No real-time plan monitoring is possible
  • The TUI is essentially a non-functional UI shell

This blocks the v3.7.0 milestone acceptance criteria.

Code Location

  • src/cleveragents/tui/ — entire directory lacks A2A integration
  • src/cleveragents/tui/app.py:168-209on_input_submitted needs A2A call

Definition of Done

  • TuiMaterializer class implementing MaterializationStrategy in src/cleveragents/tui/
  • TuiMaterializer maps ElementHandle events to Textual widget operations
  • A2A session binding per TUI session tab
  • on_input_submitted sends prompt via A2A message/send or message/stream
  • A2A event subscription for real-time updates (SSE or polling)
  • StatusHandle → flash message or status bar
  • TextHandle → streaming Markdown conversation block
  • ToolCall events → expandable tool call widget

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

## Bug Report **Feature Area:** TUI — TuiMaterializer A2A Integration Layer (v3.7.0) **Severity:** Critical — TUI cannot communicate with the Application layer **Discovered by:** UAT Testing (uat-pool-1, worker: tui-implementation) --- ## What Was Tested Full codebase search for `TuiMaterializer`, `tui_materializer`, A2A integration in the TUI module. ## Expected Behavior (from spec §29019, §27724-27741) The spec requires: > The TUI communicates with the Application layer exclusively through A2A (ADR-026). It subscribes to A2A events for real-time updates and uses the existing Output Rendering Framework (ADR-021) via a `TuiMaterializer` that maps `ElementHandle` events to Textual widget operations — enabling all CLI command producers to render in the TUI without modification. Specifically: 1. A `TuiMaterializer` class implementing `MaterializationStrategy` that routes `ElementHandle` events to Textual widget operations 2. A2A event subscription for real-time updates (plan status, actor responses, tool calls) 3. Each TUI session must have an independent A2A binding 4. `StatusHandle` events → toast notification or status bar message 5. `TableHandle` events → Textual DataTable widget 6. `TextHandle` events → streaming Markdown widget 7. `TreeHandle` events → Textual Tree widget 8. `CodeHandle` events → syntax-highlighted code block widget ## Actual Behavior **No `TuiMaterializer` exists anywhere in the codebase.** A comprehensive search across all Python files in `src/cleveragents/` returns zero results for: - `TuiMaterializer` - `tui_materializer` - Any A2A subscription in the TUI module - Any `MaterializationStrategy` subclass in the TUI module The `app.py` `on_input_submitted` handler simply calls `conversation.update(preview)` with the raw expanded text — there is no A2A call, no actor invocation, no event subscription. ```python # Current on_input_submitted (app.py:168-209): # Normal mode just updates conversation with expanded text preview # No A2A call, no actor invocation, no event subscription conversation.update(preview) ``` ## Steps to Reproduce 1. Search codebase: `grep -r "TuiMaterializer" src/cleveragents/` → no results 2. Search codebase: `grep -r "MaterializationStrategy" src/cleveragents/tui/` → no results 3. Search codebase: `grep -r "a2a\|A2A" src/cleveragents/tui/` → no results 4. Open `app.py` → `on_input_submitted` does not invoke any A2A operation ## Impact This is the **fundamental integration gap** of the TUI. Without `TuiMaterializer`: - User prompts are never sent to any actor - No actor responses are ever received or displayed - No real-time plan monitoring is possible - The TUI is essentially a non-functional UI shell This blocks the v3.7.0 milestone acceptance criteria. ## Code Location - `src/cleveragents/tui/` — entire directory lacks A2A integration - `src/cleveragents/tui/app.py:168-209` — `on_input_submitted` needs A2A call ## Definition of Done - [ ] `TuiMaterializer` class implementing `MaterializationStrategy` in `src/cleveragents/tui/` - [ ] `TuiMaterializer` maps `ElementHandle` events to Textual widget operations - [ ] A2A session binding per TUI session tab - [ ] `on_input_submitted` sends prompt via A2A `message/send` or `message/stream` - [ ] A2A event subscription for real-time updates (SSE or polling) - [ ] `StatusHandle` → flash message or status bar - [ ] `TextHandle` → streaming Markdown conversation block - [ ] `ToolCall` events → expandable tool call widget --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: uat-tester
HAL9000 added this to the v3.7.0 milestone 2026-04-09 05:51:58 +00:00
Author
Owner

Issue triaged by project owner:

  • State: Verified
  • Priority: High — (adjusting from Critical) TuiMaterializer A2A integration is the core bridge between TUI and the agent system, but v3.7.0 has no deadline and focus is on M1-M6 first
  • Milestone: v3.7.0
  • Story Points: 8 — XL — implementing the full A2A event subscription and conversation materialization layer
  • MoSCoW: Must Have — TuiMaterializer is the core integration layer without which the TUI cannot function with the agent system
  • Parent Epic: Needs linking to TUI epic

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

Issue triaged by project owner: - **State**: Verified - **Priority**: High — (adjusting from Critical) TuiMaterializer A2A integration is the core bridge between TUI and the agent system, but v3.7.0 has no deadline and focus is on M1-M6 first - **Milestone**: v3.7.0 - **Story Points**: 8 — XL — implementing the full A2A event subscription and conversation materialization layer - **MoSCoW**: Must Have — TuiMaterializer is the core integration layer without which the TUI cannot function with the agent system - **Parent Epic**: Needs linking to TUI epic --- **Automated by CleverAgents Bot** Supervisor: Project Owner | Agent: project-owner
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#5329
No description provided.