mind: zero UiMessages from Mind's run loop

UserInput display moved to UI diff — when MindState.input goes from
populated to empty (consumed by a turn), the UI displays it. Mind
no longer sends any UiMessage from its event loop.

Remaining UiMessages are only in the startup function (one-time
init info).

Co-Authored-By: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
Kent Overstreet 2026-04-05 03:54:01 -04:00
parent 84fe757260
commit 3ee1aa69b0
2 changed files with 5 additions and 3 deletions

View file

@ -246,9 +246,6 @@ impl Mind {
);
}
MindCommand::Turn(input, target) => {
if target == StreamTarget::Conversation {
let _ = self.ui_tx.send(UiMessage::UserInput(input.clone()));
}
self.shared.lock().unwrap().turn_active = true;
let _ = self.turn_watch.send(true);
let agent = self.agent.clone();

View file

@ -263,6 +263,11 @@ pub async fn run(
}));
dirty = true;
}
if cur.turn_active && !prev_mind.turn_active && !prev_mind.input.is_empty() {
let text = prev_mind.input.join("\n");
let _ = ui_tx.send(UiMessage::UserInput(text));
dirty = true;
}
if cur.turn_active != prev_mind.turn_active {
dirty = true;
}