Claude Code 2.1.229 Stabilizes Remote Control
Claude Code 2.1.229 steadies Remote Control, MCP OAuth, streaming, hooks, and plugin command sources.

Claude Code 2.1.229 is an August 12, 2026 official changelog release from @anthropic for Claude Code, Anthropic’s coding agent. It deals with the parts of a real coding session that are most annoying when they fail: Remote Control resumes, gateway streaming, self-hosted runner hooks, plugin command sources, and strict MCP OAuth redirects. The takeaway is simple: this release stabilizes the session edges more than it adds a big new surface. For people tracking claude code mcp behavior, the important fix is OAuth redirect compatibility with strict authorization servers.
Resume the last Remote Control session without guessing
The headline change is documentation for claude remote-control --continue, which resumes the most recent Remote Control session. Remote Control is Claude Code’s way to keep working with a session across a local terminal and remote clients, without treating every handoff as a fresh conversation.
That matters when a session moves from a laptop terminal to a cloud or remote client and back again. Before this, the human habit was often “find the right session, hope it is the one I meant, and reopen it.” The new documented command gives that habit a name.
The trap is assuming --continue fixes every stale session problem. The same changelog also says ListAgents now marks disconnected Remote Control sessions as offline and labels cloud sessions as cloud. In other words, resuming is cleaner, but you still need to notice when the thing you are resuming is no longer alive.
A small example: you start a Claude Code session on payments-api, step away, then reopen your laptop after a remote client has been driving the work. claude remote-control --continue should be the first thing you try before rebuilding context by hand.
Keep long streams alive through quiet pauses
Claude Code 2.1.229 adds SSE keepalive pings to gateway streaming responses during long thinking pauses. The changelog calls out Vertex and Bedrock upstreams, where an idle timeout can disconnect a stream while Claude is still thinking.
This is one of those changes that feels invisible when it works. A long tool-heavy answer no longer has to look like a dead connection just because no tokens are arriving for a while.
It also pairs with two terminal-output fixes: long responses that partly disappeared while streaming, and long responses that were printed twice. If you review work from terminal logs, those bugs were not cosmetic. Missing output can change what you think the agent did.
The limit is that keepalive pings do not make slow work fast. They only reduce false disconnects during quiet windows. If a gateway, proxy, or corporate network has its own aggressive rules, you still need to test the real path your repo uses.
Match hooks and plugin sources across environments
The release adds server-supplied Claude Code hook support for self-hosted runner sessions, matching managed-environment behavior. A hook is a configured command that runs at a defined point in the Claude Code lifecycle, such as before a tool call or after a file edit.
That closes an awkward gap. A repo can have a hook boundary that works in a managed environment, then silently behave differently when the same workflow runs on self-hosted infrastructure. Version 2.1.229 makes that less surprising.
The changelog also adds plugin marketplace command sources. A local command, such as one exposed by an IDE, can print the plugin directory; Claude Code re-resolves that directory each session and applies it without a restart. With mode: "link", the directory is used in place.
That is handy for local plugin development. It is also a trust boundary. If an IDE command chooses the plugin directory, treat that command as part of the environment you are trusting, not as a neutral file picker.
Read the smaller fixes as boundary hardening
Several fixes in 2.1.229 are about bad-shaped data crossing a boundary. Claude Code fixed a crash to the error screen when a tool call had a non-string glob, file_path, or command value. It also fixed a Windows crash when a message or tool call referenced a file by an extended-length or UNC path.
There is a narrow-terminal fix too. A progress bar or markdown table could trigger a RangeError in a very small terminal window, including at startup when running claude --continue or claude --resume.
The MCP OAuth fix is in the same family. MCP is the Model Context Protocol, a standard way for Claude Code to connect to external tools and context servers. In 2.1.229, Claude Code uses 127.0.0.1 instead of localhost in the redirect URI, which helps with strict authorization servers.
The release also fixes auto mode failures for users who disable the attribution header through CLAUDE_CODE_ATTRIBUTION_HEADER on direct Anthropic API connections, and fixes /model rejecting Sonnet or Opus 1M for claude.ai subscribers behind a custom ANTHROPIC_BASE_URL gateway. These are not glamorous changes. They are the kind that keep edge-case setups from turning into all-day debugging.
If you keep lightweight repo conventions, link these notes beside the relevant Claude Code workflow rather than burying them in chat history. The related Claude Code team conventions page is a good place to keep the durable pattern, while incident-specific details can stay in the issue or PR. For a different kind of boundary problem, see the Claude Code User-Agent Email Leak Report.
Try 2.1.229 safely in one repo
Use one active repo and test the paths this release actually touches. Do not make this a giant environment exercise. Pick the repo where Remote Control, a gateway, hooks, or an MCP OAuth flow already exists.
Copy this as a small receipt for payments-api or your equivalent repo:
# Claude Code 2.1.229 smoke receipt
Repo: payments-api
Date:
Claude Code version: 2.1.229
Tester:
## Remote Control
- [ ] Start a Remote Control session.
- [ ] Disconnect one client.
- [ ] Run: claude remote-control --continue
- [ ] Confirm the resumed session is the expected one.
- [ ] Confirm disconnected sessions show as offline, not active.
## Streaming through gateway
- [ ] Run one long task through the normal gateway path.
- [ ] Watch for idle-timeout disconnects during long thinking pauses.
- [ ] Confirm long output is not missing and not duplicated.
## Hooks and plugins
- [ ] Run the repo’s normal hook path in the self-hosted runner.
- [ ] Compare behavior with the managed environment, if one exists.
- [ ] If using marketplace command sources, confirm the local command prints only the intended plugin directory.
- [ ] If using mode: "link", confirm edits are intentionally live.
## MCP OAuth
- [ ] Reconnect one strict MCP authorization server.
- [ ] Confirm the redirect URI uses 127.0.0.1 behavior successfully.
- [ ] Record any server that still rejects the flow.
## Terminal and platform checks
- [ ] Try claude --continue in a very narrow terminal window.
- [ ] On Windows, open a file path that uses UNC or extended-length form, if your repo has one.
- [ ] Record crashes, duplicated output, or missing output with exact command and terminal size.
The practical claude code mcp check is the OAuth line. If your repo connects Claude Code to GitHub, Jira, a document store, or an internal knowledge base through MCP, test the strictest authorization server first. That is where the localhost versus 127.0.0.1 change should matter.
One methodology lens
One useful way to read this through our methodology is the Plan step: delegate first-pass decomposition and dependency mapping, review the sequencing and assumptions, and keep ownership of scope and priorities. If that split is still fuzzy, the workflow usually is too.
Practical starter checklist
- [ ] Name the Claude Code artifact first: a hook boundary, an MCP permission note, a slash-command workflow, a Claude skill outline, a review checklist, or a concise CLAUDE.md note when repository memory is the topic.
- [ ] Write the review checklist before generation starts: scope, owner, tests, rollback.
- [ ] Keep the first step small enough that a reviewer can inspect the receipt without replaying the whole chat.
Common questions
-
What should teams know about claude code mcp?
Start by writing down one visible team rule for Claude Code, not a loose preference. That usually means a short repository convention, a review checklist, and one owner who can reject agent output when the evidence is missing.
-
Which Claude Code artifact should teams standardize first?
Standardize the smallest artifact that reviewers already touch: a hook checklist, MCP permission rule, slash-command workflow, skill outline, or concise CLAUDE.md note. The point is not documentation volume; it is a shared place where scope, allowed tools, expected tests, and rollback notes are visible before generated code reaches review.
-
How do teams know the convention is working?
The convention is working when reviewers can approve or reject agent output from the artifact and evidence alone. Track whether pull requests name the rule used, include the promised checks, and avoid replaying long sessions just to understand what changed.
Best ways to use this research
- Best for: Claude Code teams deciding which hook, skill, MCP boundary, slash-command workflow, review habit, or repository-memory convention to standardize next around “Claude Code 2.1.229 Stabilizes Remote Control.”
- Best first artifact: turn the named fix into a hook checklist, skill note, MCP permission note, review receipt, or concise CLAUDE.md convention when repository memory is the real topic before the next automated run.
- Best comparison angle: compare the workflow against the current Claude Code handoff, hook behavior, and MCP scope; keep the path that leaves the shortest auditable trail.
Further reading
- @anthropic — source
- Model Context Protocol — specification
- Anthropic — Claude Code product page
- Claude Code docs: en getting started
What to do next
Take this into the related training topic and test whether a new reviewer can defend the merge without replaying the chat.
Related training topics
Related research

Claude Code 2.1.139 team conventions
Claude Code 2.1.139 team conventions: a CLAUDE TOC, red-folder approvals, data-class tags on MCP connectors, and a weekly retro note.

claude_code_stop_hook_block_cap in Claude Code 2.1.143
What claude_code_stop_hook_block_cap searchers need: the Claude Code 2.1.143 hook change handled as convention, with rollback paths and receipts.

Claude Code 2.1.142 team conventions
Claude Code 2.1.142 team conventions for parallel agent streams: a skill index, a hook budget, a CLAUDE TOC, and red-folder approvals.