diff --git a/work-items/open/20260531-074258-tui-extract-single-pod-runtime/item.md b/work-items/open/20260531-074258-tui-extract-single-pod-runtime/item.md index 02eaceac..93bb4143 100644 --- a/work-items/open/20260531-074258-tui-extract-single-pod-runtime/item.md +++ b/work-items/open/20260531-074258-tui-extract-single-pod-runtime/item.md @@ -7,7 +7,7 @@ kind: task priority: P2 labels: [tui, cleanup] created_at: 2026-05-31T07:42:58Z -updated_at: 2026-05-31T13:46:30Z +updated_at: 2026-05-31T13:56:32Z assignee: null legacy_ticket: null --- diff --git a/work-items/open/20260531-074258-tui-extract-single-pod-runtime/thread.md b/work-items/open/20260531-074258-tui-extract-single-pod-runtime/thread.md index a08eaaa4..82f222bd 100644 --- a/work-items/open/20260531-074258-tui-extract-single-pod-runtime/thread.md +++ b/work-items/open/20260531-074258-tui-extract-single-pod-runtime/thread.md @@ -55,4 +55,37 @@ Validation: - `git diff --check` +--- + + + +## Review: approve + +External reviewer: `tui-runtime-reviewer-20260531` +Reviewed implementation commit: `4d89718` (`tui: extract single pod runtime`) +Verdict: approve + +Summary: +- This is a behavior-preserving mechanical extraction. +- `crates/tui/src/lib.rs` is now a façade/high-level dispatcher. +- Single-Pod runtime/event-loop code now lives in `crates/tui/src/single_pod.rs`. +- Public `tui::launch`, `LaunchOptions`, and `LaunchMode` signatures remain stable. + +Requirements mapping: +- `lib.rs` keeps module declarations, public launch API/types, and high-level mode dispatch. +- `single_pod.rs` owns Pod-name/spawn/resume attach paths, fullscreen terminal helpers, main loop/drain logic, key/mouse handling, and the focused tests that cover those behaviors. +- Terminal setup/restore behavior is preserved: raw mode/bracketed paste global setup remains in `lib.rs`, while fullscreen/alternate-screen helpers moved with single-Pod runtime code. +- Input queueing, interruption, task reminders, compact/rewind handling, and Pod socket behavior are moved with tests and unchanged by inspection. +- No render helper move, `multi_pod.rs` split, App rewrite, keybinding redesign, Pod protocol/profile/manifest change, crate rename, or CLI ownership regression was introduced. + +Blockers: none. + +Non-blocking follow-up: +- `single_pod.rs` now contains a thin `run_multi` dashboard bridge. This is acceptable here because it bridges dashboard open requests into private single-Pod attach helpers, but if dashboard orchestration grows a future cleanup could move that bridge into a small launch/runtime coordination module. + +Validation adequacy: +- Coder validation covered fmt, full TUI tests, TUI/insomnia check, doctor, and diff check. +- Reviewer reran `cargo fmt --check`, `cargo test -p tui`, `cargo check -p tui -p insomnia`, `./tickets.sh doctor`, and `git diff --check HEAD^ HEAD`; all passed with existing dead-code warnings. + + ---