M2 — TUI

New Issue

Goal

A ratatui-based terminal UI driving the M1 engine loop interactively.

Scope

  • EngineHandle bridging the async engine to the render loop
  • Event loop + chat viewport, with a markdown renderer and a render cache
  • Input handling
  • Permission modal wired to the real oneshot ask path
  • Session picker / resume
  • Abort (cancel an in-flight turn)
  • TestBackend snapshot tests: empty session, tool cards (running/completed/error),
    permission modal, session picker, user/assistant messages

Acceptance criteria

  • Manually drive a multi-turn session with permission-gated edits.
  • TestBackend snapshot tests pass.
No due date
0% Completed