Claude Code 2.1.300: no more ghost background commands, optional VS Code selection

2.1.300 force-kills leftover background commands on exit and adds a VS Code setting to stop sending your editor selection with every message.

claude-code changelog vscode digest-standard

Claude Code 2.1.300, released on October 14, 2026, is a cleanup release rather than a flashy one: 12 additions, 13 changes, 4 improvements, and 59 fixes, with a large share of them touching mods, VS Code, and cloud sessions. Two things matter for daily use: closing Claude Code no longer leaves a background command running on its own, and the VS Code extension finally ships a setting to stop sending your editor selection with every message.

Quitting Claude Code now actually kills forgotten background commands

A command started with run_in_background: true keeps running after the final response, until it finishes, is stopped from /tasks, or hits its time limit. None of that said anything about closing the session itself: a dev server or a watch build started in the background could stay alive after you quit Claude Code in fullscreen mode.

2.1.300 fixes that: on exit, any background command still running gets told to stop, and if it's still alive 1.5 seconds later, Claude Code force-kills it. If you start servers or builds in the background and occasionally find an orphaned process after quitting Claude Code, this is the behavior that changed.

VS Code can finally stop sending your selection on every message

When you select text in the editor, Claude sees your highlighted code automatically, and the prompt box footer shows how many lines are selected. Handy when you want Claude to see the block you're looking at, less handy when you select text for some other reason (copying, searching, navigating). Until now, the only workaround was clicking the X on the selection indicator, again for every new selection.

2.1.300 adds the claudeCode.attachSelection setting, which stops text selected in the editor from being added to your messages.

The rest, briefly

  • Large requests get compressed: large requests to the Anthropic API now use gzip even when telemetry is off, cutting bandwidth without changing how you work. CLAUDE_CODE_GZIP_REQUEST_BODIES=0 turns it off.
  • More faithful transcripts: local session transcripts now also record each API request's system prompt, tools, and parameters, not just the exchanged text, so a transcript you share can reproduce the original request exactly.
  • MCP handles a bad schema better: when the API rejected an MCP tool's input schema, the whole conversation used to fail on every turn with a 400 error. Claude Code now sends that tool without parameters for the rest of the conversation instead of getting stuck.
  • Dead flags removed from claude remote-control: --sandbox and --no-sandbox, which already had no effect, now make the command exit with an error instead of being silently ignored. Use sandbox.enabled in settings if you want to sandbox a session.
  • Stricter hook validation: updatedInput returned by PreToolUse and PermissionRequest hooks is now validated like Claude's own input. Unknown keys are dropped, and input the tool rejects denies the call. If your hooks rewrite tool parameters, check that they still match the schema.
  • The rest is mostly mod development, Claude Tag in Slack, and Cowork cloud sessions.

The takeaway

Nothing here changes a daily habit overnight, but if you leave servers running in the background or code in VS Code with the editor attached all the time, the first two points are worth the update: no more orphaned processes after closing, and a setting that lets you decide what your selection sends to Claude.

Pierre Rondeau

Pierre Rondeau

Developer and indie builder. I build products and automations with AI. Creator of Claude Hub.

LinkedIn