feat: back-port RichUIHandler output improvements to InteractiveUIHandler - #54
Conversation
Three domain reviews (functional, api-architect, ui-ux-designer) + owner corrections. RichUIHandler output + old InteractiveUIHandler input = new InteractiveUIHandler. LiveDisplay removed. Lazy PromptSession. erase_when_done + output_prompt. rich.status for processing feedback. 🤖 Implemented together with a coding agent.
Implementation Plan — Back-port RichUIHandler output improvements to InteractiveUIHandlerConfirmed Design (with owner corrections)Base: RichUIHandler (from Input: prompt_toolkit with lazy PromptSession (created on first Input rendering: Processing feedback: Removed: Added back from old InteractiveUIHandler (adapted to stable Preserved from RichUIHandler: inline tool args ( Preserved from old InteractiveUIHandler: Preserved per owner correction: Fixed: Guard: Method-by-method plan (35+ methods)
FilesModified:
Deleted:
Unchanged:
Acceptance Criteria (14)
Open questions (from functional-analyst, with sensible defaults)
These defaults will be applied unless you object. Waiting for your approval before proceeding with implementation. |
|
Approved, proceed 👍 |
…moval, 5 missing tests 🤖 Implemented together with a coding agent.
|
Addressed the consolidated PR #54 review feedback. Commit 1. testing-engineer's 5 test gaps — all closedFive new tests added to
2. code-reviewer M1 (erase_when_day try/finally) — implemented
3. code-reviewer M3 + L3 (dead code + wrap_width) — deletedRemoved the unused helpers 4. functional-analyst obs #1 (is_password reset on interrupt) — folded into finallyThe 5. Deliberately skipped (non-blocking)
6. Re-review outcomeThe scoped re-review (Stage a + Stage c testing + Stage c code) all approved. |
…dler (Phase 1: implementation + docs) 🤖 Implemented together with a coding agent.
|
Implementation complete. The UI back-port merges RichUIHandler's stable append-only output with the old InteractiveUIHandler's input machinery. Key features: lazy PromptSession, erase_when_done input-erased-then-Panel, rich.status manual start/stop processing feedback, all RichUIHandler visual formatting preserved (inline tool args, result size, prompt Panel, tools banner). LiveDisplay removed (spinner.py deleted). Passed the full review cycle (Phase 5.6):
Ready for your review. |
…moval, 5 missing tests 🤖 Implemented together with a coding agent.
🤖 Implemented together with a coding agent.
Summary
Back-port RichUIHandler's output improvements into InteractiveUIHandler, producing a single unified interactive handler that combines RichUIHandler's stable append-only output with the old InteractiveUIHandler's prompt_toolkit-based input handling.
This PR contains the design and consensus documents only — implementation will follow in subsequent commits.
Background
Three domain reviews were conducted:
__init__params to preserve, found an f-string bug inoutput_statsOwner corrections were applied as binding decisions (see
reporting/ui-back-port/consensus.md).Confirmed Design
console.print, no Live region)get_input, not in__init__)erase_when_done=True→ input erased →output_promptrenders in Panelrich.statusmanual start/stop — stop on first tokenspinner.py),_exit_live,_ensure_live, state flags, spinneroutput_step_title,output_command_result,output_content,confirm_approval,agent_spawned/agent_finished,_print_wrapped,shutdown— adapted to stableconsole.printset_input_messages,history_file,wrap_width,show_*flags,show_stats=Truedefaultoutput_statsf-string bug (missing f prefix in RichUIHandler)_format_tool_detailscaps values > 60 chars, suppressescontent/old_string/new_stringfor write/updateOwner Corrections (binding)
start()signature: KEEPtitle/versionkwargs — external consumers (yoker-assistant) use them.output_prompt: KEEP as a SEPARATE method — not absorbed intoget_input. yoker-assistant gets prompts from email (MCP), not terminal input.rich.statuswith manual start/stop (not context manager) — stop when first response token arrives. NOT a LiveDisplay grid.Changes
analysis/ui-back-port-design.md— functional-analyst designanalysis/ui-back-port-api-review.md— api-architect reviewanalysis/ui-back-port-ux-review.md— ui-ux-designer reviewreporting/ui-back-port/consensus.md— consensus document with owner corrections and 14 acceptance criteriaTest Plan
reporting/ui-back-port/consensus.mdmake checkpasses🤖 Implemented together with a coding agent.