Cortex Code Desktop v1.21.7 release notes

v1.21.7 lets the agent manage your local automations from chat and makes MCP server connections easier to control. It also makes Stop reliable for multi-statement SQL runs and fixes issues with restored sessions, stream recovery, and SSH.

What’s new

  • Manage automations from chat: The agent can list, create, update, delete, and run your local automations from chat. It asks for confirmation before every change, even when Bypass Approvals is on. To turn this off, set scheduledTasks.agentTool.enabled to false.

  • Redesigned MCP connection controls: Each MCP server has a single Connect/Disconnect button, and a disconnected server stays disconnected across sessions. Agent settings have new tabs and a per-tool checklist, and chat shows a notice when a server needs you to sign in.

  • Fewer MCP sign-in prompts: OAuth MCP servers no longer ask you to sign in again about every 10 minutes, and network errors or temporary server failures during a token refresh no longer force a browser sign-in. MCP servers whose OAuth metadata names a parent path as the resource, such as Microsoft Fabric, can now authenticate.

  • Stop cancels multi-statement SQL runs: Pressing Stop during a multi-statement SQL run now ends the whole run. Previously, the remaining statements continued to run.

  • dbt Docs from the editor: A View Docs button in the editor title of dbt SQL models opens a single Docs editor that follows whichever model is active. dbt Docs now scrolls inside its own pane and keeps its scroll position after a compile.

  • Per-model thinking effort options: The thinking effort options and default in the model picker now come from the server for each model.

  • Subagents limited to specific skills: Subagent definitions accept a skills setting with allowed and advertise lists that control which skills the subagent can see and use. A subagent with tools: ['*'] no longer gets the whole skill catalog automatically.

  • Simpler Streamlit sharing: The Streamlit share dialog has one searchable picker for roles.

  • New Open in button: The conversation header has a compact Open in split button that shows where the workspace will open (Editor, Finder, or Terminal) and remembers your last choice.

  • More bundled skills for every account: The bundled snowpipe and copy-load skills are now available to every account.

Reliability and fixes

  • No repeated replies after a dropped connection: When the connection drops partway through a reply, the assistant no longer repeats itself or runs tool calls twice. The “tool calls may have run more than once” banner now appears only when a tool or subagent call was actually in progress.

  • Restored sessions are accurate: After a restore, each tool result shows with the call it belongs to, so a stopped command no longer appears to have succeeded. A stopped prompt goes back into the composer, and a transcript that fails to load is no longer overwritten by a later save.

  • Your next message works after Stop: After you press Stop mid-reply, the next message no longer fails, and the composer no longer fills with instruction pills for rule files you didn’t attach.

  • Agent SQL keeps your database and role: After the agent token refreshes, which happens after about an hour, agent SQL keeps your chat’s database and role instead of falling back to the connection defaults.

  • More reliable SSH connections: Remote connections, including Cloud Workspaces, no longer fail with Tunnel failed on port … ECONNREFUSED when the handshake is slow. Two SSH hosts can share one window, and bash calls recover after a network drop without reloading the app.

  • Edits no longer hang on path capitalization: On macOS and Windows, edits no longer stall at “Applying N edits” when the agent spells a path with different capitalization, for example skill.md and SKILL.md.

  • New skills are found right away: A skill installed mid-session, from the terminal or into a new project, is found in the same turn instead of failing with “Skill not found”.

  • Hooks are enforced correctly: A PreToolUse hook that returns permissionDecision: 'deny' now blocks the tool and shows its reason, and a hook that fails is never treated as allowing the tool. Hooks now also run for subagents’ tool calls.

  • Multi-select answers keep your selected options: When you select options and also enter text in Other…, the agent receives both.

  • Composer menus fit the composer: The +, model, and approval mode menus line up with the composer and open upward when there isn’t room below, and menu items are no longer cut off.

  • Panels stay with their session: The Files and SQL Playground panels no longer open another session’s file or query.

  • Lower memory use in long sessions: Memory leaks that kept every chat you’d opened in memory are fixed.

Security and trust

  • Patched bundled viewer extension: The bundled omni-viewer extension is updated to a patched build that closes a filename cross-site scripting (XSS) issue that could lead to an arbitrary file write.