# Claude Code v2.1.229 is out! A sweep of streaming display and MCP OAuth fixes

Hey everyone, it's Shiichan! There's a new Claude Code release out, so let's dig into what's inside!

## What was announced?

According to the Claude Code Release notes on GitHub, **v2.1.229** just shipped. Alongside documentation updates and new features, it carries a large batch of bug fixes that touch day-to-day usability, from streaming display to MCP OAuth.

## What changes

New features and improvements in this release:

- Documented `claude remote-control --continue` for resuming the most recent Remote Control session
- Added server-supplied Claude Code hook support for self-hosted runner sessions, matching managed-environment behavior
- Added SSE keepalive pings to gateway streaming responses during long thinking pauses, preventing idle-timeout disconnects on Vertex and Bedrock upstreams
- Added plugin marketplace `command` sources: a local command (like an IDE) prints the plugin directory, which is re-resolved each session and applied without a restart (`mode: "link"` can use it in place)
- `ListAgents` now marks disconnected Remote Control sessions as `offline` and labels your cloud sessions as `cloud`

## Dive Deep

There's a hefty list of bug fixes too. Here are the ones that caught my eye:

- Fixed long responses partly disappearing while streaming and being printed twice in the terminal
- Fixed a crash to the error screen (including on `--resume` of the affected session) when a tool call had a non-string `glob`, `file_path`, or `command` value
- Fixed a RangeError crash when a progress bar or markdown table rendered in a very narrow terminal window (this could also crash `claude --continue` / `--resume` at startup)
- Fixed a crash on Windows when a tool call or message referenced a file by an extended-length (`\\?\`) or UNC path
- Fixed auto mode failing on every tool call for users who disable the attribution header via `CLAUDE_CODE_ATTRIBUTION_HEADER` (direct Anthropic API connections)
- Fixed `/model` rejecting Sonnet/Opus 1M for claude.ai subscribers using a custom `ANTHROPIC_BASE_URL` gateway
- Fixed MCP OAuth with strict authorization servers by using `127.0.0.1` instead of `localhost` in the redirect URI
- Fixed Remote Control clients showing a stuck working spinner after a slash command typed in the laptop terminal
- Fixed the Claude Code Review workflow generated by `/install-github-app` completing without posting its review on the pull request
- Fixed multi-second UI stalls after editing a file with thousands of IDE diagnostics

On top of these, there are several smaller fixes, including dynamic workflows inside CPU-limited containers using the host machine's core count instead of the container's limit, and a file-watcher handle leak after atomic file replacements.

On the security and operations side, it's worth noting that `/commit-push-pr` no longer auto-approves git/gh commands with dangerous flags like `--force`, `--amend`, and `--no-verify`.

On the VSCode side, "Report a problem" and `/bug` now open the built-in feedback dialog instead of a retired survey link, the `/btw` side-question panel can now be resized by dragging its boundary, and the sidebar gained session groups (right-click to create, rename, or delete; Cmd/Ctrl- or Shift-click to move several sessions at once).

## Wrap-up

- New features include gateway SSE keepalive pings and plugin marketplace `command` source support
- Fixed several usability-facing bugs: duplicated/disappearing streamed text and crashes from non-string tool-call arguments
- Fixed smaller but annoying issues like the MCP OAuth redirect problem and `/model` rejecting the 1M context window
- `/commit-push-pr` no longer auto-approves dangerous git/gh flags, a safety-side change
- VSCode gained session groups, making it easier to manage multiple sessions

If you use Claude Code daily, this release packs in fixes you'll likely notice right after updating!
