You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
safeExecute now runs tools in a goroutine with context cancellation select. If a tool blocks on I/O and ignores ctx cancellation, the agent loop still unblocks when the user cancels. The leaked goroutine completes in the background but the agent is no longer stuck.
multi_file_write / multi_file_edit: replaced _ = ctx with actual ctx.Err() checks in write loops so cancellation propagates into the file-writing tools themselves.
applyAtomicPlans now accepts ctx and rolls back on cancellation.
Added Replace bool field to systemNotifyMsg. When true, uses SetText instead of AppendText.
Retry status messages set Replace=true so each retry replaces the previous status line instead of appending duplicates.
Non-retry system messages keep AppendText (default false), preserving existing behavior.
IM Binding Session ID Migration (runtime.go, model.go)
When session ID changes within the same workspace (e.g. /clear, /branch), bindings are now migrated from the old session to the new one. Previously, reloadBindingLocked would see the old LastSessionID as "foreign" and mute everything, causing the binding watcher to re-mute every 3 seconds.
detectAndAutoMute is now called during SetSession when it was skipped during SetIMManager (because session was nil at startup).