Permission stream failures now produce distinct, specific error strings instead of a single generic failure: "tool permission stream closed before response received", "canUseTool returned a schema-invalid permission result", "tool permission request failed", "tool permission request aborted". Evidence: (search for "tool permission stream closed before response received")
UTF-8 BOM (byte order mark, ) is now stripped from file content at the point it is read, preventing it from appearing in tool results and diff output. Evidence: (search for "charCodeAt(0) === 65279")
Sessions interrupted by daemon shutdown are now tagged { kind: "interrupted_turn" } separately from other interruption types, enabling the host UI to show a different recovery prompt. Evidence: (search for "interruptedByShutdown")
Model routing telemetry (tengu_refusal_fallback_route_declined) now reports cascade chain details: chain_length, chain_entry_index, and chain_entry on unresolvable chain entries, giving better visibility into multi-hop fallback failures. Evidence: (search for "chain_entry_unresolvable")
The removeAgentWorktree function no longer requires a git root when the worktree path is rootless; it now delegates to the new UZt safe-remove path rather than returning a "no git root for the worktree" hard error. Evidence: String removed from old version (search for "Removed agent worktree with no git root at:" in new).
Worktree-isolated agent shell commands that redirect git into the shared checkout are now blocked with a clear explanation: "Refusing to run it — a worktree-isolated agent's git operations must target its own worktree." Evidence: (search for "commands from a worktree-isolated agent must run inside its worktree")
MCP OAuth token revocation errors (Failed to revoke replaced tokens:) are now caught and logged without blocking the token replacement flow. Evidence: (search for "Failed to revoke replaced tokens:")