codetether_agent/tui/app/autochat/
handler.rs1use crate::tui::app::state::AppState;
4use crate::tui::chat::message::{ChatMessage, MessageType};
5
6use super::events::AutochatUiEvent;
7
8pub fn handle_autochat_event(app: &mut AppState, event: AutochatUiEvent) {
10 match event {
11 AutochatUiEvent::Progress(msg) => {
12 app.status = msg;
13 }
14 AutochatUiEvent::SystemMessage(msg) => {
15 app.messages
16 .push(ChatMessage::new(MessageType::System, msg));
17 app.scroll_to_bottom();
18 }
19 AutochatUiEvent::AgentEvent {
20 agent_name,
21 event: _,
22 } => {
23 app.status = format!("🔄 {agent_name} processing…");
24 }
25 AutochatUiEvent::Completed {
26 summary,
27 okr_id,
28 okr_run_id,
29 relay_id,
30 } => {
31 app.autochat.running = false;
32 let mut msg = format!("âś… Autochat relay completed: {summary}");
33 if let Some(oid) = okr_id {
34 msg.push_str(&format!("\nOKR: {oid}"));
35 }
36 if let Some(rid) = relay_id {
37 msg.push_str(&format!("\nRelay: {rid}"));
38 }
39 let _ = okr_run_id;
40 app.messages
41 .push(ChatMessage::new(MessageType::System, msg));
42 app.scroll_to_bottom();
43 }
44 }
45}