feat(lsp): add LSP provision progress messages to toast notifications

This commit is contained in:
asepharyana
2026-07-12 15:19:13 +07:00
parent c36c819304
commit b20bb95ada
2 changed files with 38 additions and 0 deletions
+18
View File
@@ -331,6 +331,24 @@ pub fn apply_action(state: &mut AppStateRest, action: Action) {
let _ = crate::app::review::process_pending_lessons(&rt.session_dir, &state.memory_dir);
}
// Drain LSP provision progress messages into toast notifications.
// Collect messages under the lock, then push toasts outside it to avoid
// a borrow-conflict with state.push_toast (which also accesses state).
let pending: Vec<String> = state.lsp_provision_msgs.lock()
.ok()
.map(|mut q| q.drain(..).collect())
.unwrap_or_default();
for msg in &pending {
let kind = if msg.contains("not available") || msg.contains("failed") {
ToastKind::Warning
} else if msg.contains("connected") || msg.contains("") {
ToastKind::Success
} else {
ToastKind::Info
};
state.push_toast(Toast::new(kind, msg.clone()));
}
let events: Vec<TurnEvent> = {
if let Ok(mut q) = state.turn_events.lock() {
q.drain(..).collect()