EPIC: TUI A2A Integration Layer — TuiMaterializer & Session Binding (v3.7.0) #5306

Open
opened 2026-04-09 05:48:25 +00:00 by HAL9000 · 2 comments
Owner

Epic: TUI A2A Integration Layer

Milestone: v3.7.0
Parent Legendary: #4946 (LEGENDARY: TUI Implementation)

Background

The TUI connects to agent execution through the A2A protocol via a TuiMaterializer layer. Each TUI session has an independent A2A binding. The materializer streams plan execution events to the conversation view in real-time. Defined in ADR-044.

Scope

  • TuiMaterializer that bridges A2A event queue to TUI conversation view
  • Per-session A2A binding with independent session state
  • Real-time streaming of plan execution events to conversation
  • ThoughtBlockWidget for displaying actor reasoning (max 10 lines collapsed)
  • Loading states and throbber animation during actor execution
  • ctrl+c double-tap interrupt behavior (first press interrupts actor, second quits)
  • escape double-tap for terminal focus exit

Child Issues

  • TBD

Definition of Done

  • All child issues are closed
  • TuiMaterializer streams A2A events to conversation view
  • Each session has independent A2A binding
  • ThoughtBlockWidget displays with correct max-height
  • Interrupt behavior works correctly
  • All nox stages pass
  • Coverage >= 97%

Metadata

  • Branch Naming Convention: feat/tui-v370/a2a-integration
  • Milestone: v3.7.0

Automated by CleverAgents Bot
Supervisor: Epic Planning | Agent: epic-planner

## Epic: TUI A2A Integration Layer **Milestone**: v3.7.0 **Parent Legendary**: #4946 (LEGENDARY: TUI Implementation) ### Background The TUI connects to agent execution through the A2A protocol via a `TuiMaterializer` layer. Each TUI session has an independent A2A binding. The materializer streams plan execution events to the conversation view in real-time. Defined in ADR-044. ### Scope - `TuiMaterializer` that bridges A2A event queue to TUI conversation view - Per-session A2A binding with independent session state - Real-time streaming of plan execution events to conversation - `ThoughtBlockWidget` for displaying actor reasoning (max 10 lines collapsed) - Loading states and throbber animation during actor execution - `ctrl+c` double-tap interrupt behavior (first press interrupts actor, second quits) - `escape` double-tap for terminal focus exit ### Child Issues <!-- Updated by automation after child issues are created --> - [ ] TBD ### Definition of Done - [ ] All child issues are closed - [ ] TuiMaterializer streams A2A events to conversation view - [ ] Each session has independent A2A binding - [ ] ThoughtBlockWidget displays with correct max-height - [ ] Interrupt behavior works correctly - [ ] All nox stages pass - [ ] Coverage >= 97% ## Metadata - **Branch Naming Convention**: `feat/tui-v370/a2a-integration` - **Milestone**: v3.7.0 --- **Automated by CleverAgents Bot** Supervisor: Epic Planning | Agent: epic-planner
HAL9000 added this to the v3.7.0 milestone 2026-04-09 05:48:25 +00:00
Author
Owner

Label compliance fix applied:

  • Added missing labels: MoSCoW/Must have, Points/21
  • Reason: New Epic issue was missing MoSCoW classification and story points estimate. Applied MoSCoW/Must have based on Priority/High and TUI milestone scope. Applied Points/21 as standard Epic estimate.

Note: MoSCoW labels are normally set by the project owner. If this classification is incorrect, please update accordingly.


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

Label compliance fix applied: - Added missing labels: `MoSCoW/Must have`, `Points/21` - Reason: New Epic issue was missing MoSCoW classification and story points estimate. Applied `MoSCoW/Must have` based on Priority/High and TUI milestone scope. Applied `Points/21` as standard Epic estimate. Note: MoSCoW labels are normally set by the project owner. If this classification is incorrect, please update accordingly. --- **Automated by CleverAgents Bot** Supervisor: Backlog Grooming | Agent: backlog-groomer
Author
Owner

Child Issues — Epic #5306: TUI A2A Integration Layer

Updated: 2026-04-10 (Cycle 1 — Epic Planning)

Feature Issues (foundational)

  • #5326 — feat(tui): implement TuiMaterializer bridging A2A event queue to conversation view with ThoughtBlockWidget (foundational — must be done first)
  • #5327 — feat(tui): implement ctrl+c double-tap interrupt behavior and escape double-tap terminal focus exit (depends on #5326)

Bug Issues (must fix)

  • #5938 — UAT: TuiMaterializer not implemented — A2A output rendering integration missing per ADR-044
  • #5984 — UAT: A2A event subscription not implemented in TUI — no real-time plan/session updates
  • #6421 — UAT: TUI conversation stream blocks not implemented — no UserInput, ActorResponse, ToolCall, etc.
  • #6444 — UAT: TUI TuiMaterializer not implemented — no ElementHandle-to-widget mapping
  • #6460 — UAT: TUI does not communicate via A2A — TuiCommandRouter calls get_container() directly
  • #6603 — BUG-HUNT: on_input_submitted calls subprocess.run() synchronously on Textual event loop

Total: 8 child issues (2 features + 6 bugs)

Dependency Chain: #5326#5327 → Epic #5306


Automated by CleverAgents Bot
Supervisor: Epic Planning | Agent: epic-planner

## Child Issues — Epic #5306: TUI A2A Integration Layer **Updated**: 2026-04-10 (Cycle 1 — Epic Planning) ### Feature Issues (foundational) - [ ] #5326 — feat(tui): implement TuiMaterializer bridging A2A event queue to conversation view with ThoughtBlockWidget *(foundational — must be done first)* - [ ] #5327 — feat(tui): implement ctrl+c double-tap interrupt behavior and escape double-tap terminal focus exit *(depends on #5326)* ### Bug Issues (must fix) - [ ] #5938 — UAT: TuiMaterializer not implemented — A2A output rendering integration missing per ADR-044 - [ ] #5984 — UAT: A2A event subscription not implemented in TUI — no real-time plan/session updates - [ ] #6421 — UAT: TUI conversation stream blocks not implemented — no UserInput, ActorResponse, ToolCall, etc. - [ ] #6444 — UAT: TUI TuiMaterializer not implemented — no ElementHandle-to-widget mapping - [ ] #6460 — UAT: TUI does not communicate via A2A — TuiCommandRouter calls get_container() directly - [ ] #6603 — BUG-HUNT: on_input_submitted calls subprocess.run() synchronously on Textual event loop **Total**: 8 child issues (2 features + 6 bugs) **Dependency Chain**: #5326 → #5327 → Epic #5306 --- **Automated by CleverAgents Bot** Supervisor: Epic Planning | Agent: epic-planner
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#5306
No description provided.