Files
cleveragents-core/features/steps
freemo a5361a93ae feat(tui): implement TuiMaterializer A2A integration layer
Implement the TuiMaterializer — the glue layer between the Output
Rendering Framework and the Textual widget tree. It maps ElementHandle
events from A2A task updates to Textual widgets.

Key design:
- TuiMaterializer implements the MaterializationStrategy protocol
- Widget registry maps element kinds to Textual widget factories:
  panel → RichLog, table → DataTable, progress/status → Static
- Per-session isolation: each tab gets its own materializer instance
  with independent widget map
- Streaming via on_element_updated pushes incremental deltas directly
  into mounted widgets
- Same widget tree serves TUI, Web (Textual Web), and IDE plugin
- Callbacks (on_widget_created, on_widget_removed) let the host screen
  mount/unmount widgets into the DOM
- Thread-safe via internal lock on widget/snapshot maps

New files:
- src/cleveragents/tui/materializer.py — TuiMaterializer class
- features/tui_materializer.feature — 20 BDD scenarios
- features/steps/tui_materializer_steps.py — Behave step definitions
- robot/tui_materializer.robot — 12 Robot Framework integration tests
- robot/helper_tui_materializer.py — Robot helper script

Quality checks: typecheck (0 errors), lint (clean), format (clean),
unit_tests (20/20 pass), integration_tests (12/12 pass)

ISSUES CLOSED: #696
2026-04-03 08:20:52 +00:00
..
2026-02-20 20:38:53 +00:00