1.2 KiB
Cleanups
-
Parallelize tool-use execution in
run_turn-- requires refactoringOrchestratorto use&self+ interior mutability (Arc<Mutex<...>>aroundevent_tx,action_rx,history) so multiple futures can borrow self simultaneously viafutures::future::join_all. -
Move keyboard/event reads in the TUI to a separate thread or async/io loop
-
Keep UI and orchestrator in sync (i.e. messages display out of order if you queue up many.)
-
update_scrollauto-follows in Insert mode, yanking viewport to bottom on mode switch. Only auto-follow when new content arrives (indrain_ui_events), not every frame. -
Gsets scroll tou16::MAXand relies onupdate_scrollclamping. Compute actual max_scroll inline, or document the contract thatupdate_scrollmust always run before render. -
:clearclears TUI state immediately but sendsClearHistoryto orchestrator async. A mid-stream response can ghost back in after clear. Need synchronization (e.g. clear onTurnComplete, or have orchestrator ack the clear). -
Command overlay width:
(out.width / 2).max(80)makes overlay full-bleed on 80-col terminals. Consider.max(40)or a different minimum.