
Claude Code v2.1.300 Major Updates - Addition of OpenTelemetry GenAI Attributes and /advisor Support for Claude Platform on AWS
This page has been translated by machine translation. View original
This is Ishikawa from the Cloud Business Division. I'd like to introduce the updates for Claude Code v2.1.300 (released October 14, 2026). This feels like a release with many changes relevant to those using Claude Code on AWS, or those who have configured hooks and telemetry for operations.
The previous update article is here.
Update Summary
v2.1.300 includes 88 changes. In the official documentation changelog, these are divided into 12 Added, 13 Changed, 4 Improved, and 59 Bug fixes. In this article, I've reclassified them by content as 57 fixes, 11 new features, 9 improvements, 6 security changes, and 5 breaking changes.
New features are centered around APIs and hooks for mods, OpenTelemetry attributes, and Claude Tag (Claude in Slack) additions. There are also changes that affect existing configurations and scripts, such as how hook inputs are handled and flags for claude remote-control. Fixes include many related to cloud sessions, Remote Control, the VS Code extension, and --worktree.
Additionally, according to the official X account, the Claude Code desktop app has been optimized to run multiple sessions in parallel, speeding up session startup, making it easier to split work into several tasks, and allowing you to always see what each one is doing.
Notable Updates
OpenTelemetry GenAI Attributes and Cache Write Breakdown (New Feature)
OpenTelemetry GenAI semantic convention attributes have been added to trace spans. The CHANGELOG lists gen_ai.provider.name, gen_ai.conversation.id, gen_ai.tool.name, and error.type as examples.
Additionally, cache_creation_5m_tokens and cache_creation_1h_tokens have been added to api_request events, allowing you to check the number of cache write tokens broken down by TTL (5 minutes / 1 hour).
Tracing is a beta feature, enabled by setting CLAUDE_CODE_ENABLE_TELEMETRY=1 and CLAUDE_CODE_ENHANCED_TELEMETRY_BETA=1, with the output destination specified via OTEL_TRACES_EXPORTER.
For those already sending traces to existing monitoring infrastructure via an OpenTelemetry Collector, I expect it will be easier to reuse queries and dashboards aligned with GenAI conventions.
Relatedly, as a current public beta, the Claude Platform can now send OpenTelemetry traces from the Messages API, Claude Managed Agents, and the Claude SDK to your observability stack.
/advisor on Claude Platform on AWS (New Feature)
/advisor is now available on Claude Platform on AWS. The advisor won't work until you select an advisor model using the /advisor command, advisorModel setting, or --advisor flag. Setting CLAUDE_CODE_DISABLE_ADVISOR_TOOL=1 disables it.
The advisor is a server-side tool where the main model consults a different, typically more capable model during work. Claude Platform on AWS is a service that uses Anthropic's managed Claude API with AWS authentication (SigV4 or workspace API keys), IAM, and AWS Marketplace billing, and is separate from Amazon Bedrock. The advisor documentation states that Amazon Bedrock is not supported.
Note that as of October 15, 2026, the advisor documentation and the Claude Code documentation for Claude Platform on AWS still contain statements saying "advisor cannot be used on Claude Platform on AWS." This article is based on the CHANGELOG entry.
For those running Claude Code on Claude Platform on AWS and delegating long tasks, I think it's worth trying a configuration where Sonnet is the main model and Opus is consulted only at key points.
Validation of updatedInput in Hooks (Security / Breaking Change)
The updatedInput returned by PreToolUse and PermissionRequest hooks is now validated the same way as Claude's own input. Keys not present in the tool's input will be removed, and if the input is not accepted by the tool, the tool call will be rejected. Specific examples are provided in the "Breaking Changes / Deprecations" section below.
For those returning updatedInput from hooks, I recommend checking that you aren't including keys that don't exist, and that the rewritten input is accepted by the tool.
Fix for forceLoginOrgUUID and agent Hook model (Security)
A bug where tokens from organizations rejected by forceLoginOrgUUID remained stored or stayed valid after /login has been fixed.
Also fixed is a bug where agent hooks were ignoring the model specification. Aliases like haiku are now resolved, and the subagent's model will no longer be overridden. If the specified model is unavailable, it falls back to the caller's model rather than allowing the operation.
For administrators restricting organizations with forceLoginOrgUUID, or those specifying model in agent hooks, this feels like a fix worth updating for promptly.
Fix for Repeated 400 Errors from MCP Tool Input Schema (Bug Fix)
A bug where the API rejecting an MCP tool's input schema would cause every turn in that conversation to fail with a 400 error has been fixed. Going forward in that conversation, Claude Code will send the affected tool without parameters.
For those connecting MCP tools with input schemas that the API doesn't accept, while you'll now be able to continue the conversation, note that the tool will subsequently be sent without parameters, so it may not work as expected.
Update Details
New Features
/advisoris now available on Claude Platform on AWS (see Notable Updates).- OpenTelemetry GenAI semantic convention attributes have been added to trace spans, and
cache_creation_5m_tokensandcache_creation_1h_tokenshave been added toapi_requestevents (see Notable Updates). - The following APIs and hooks have been added for mods:
- Added
virtualTextfor prompt decoration. It appears in the prompt field but is not included in drafts or the submitted prompt. - Added
$.ui.view({ agentId }). Displays the specified agent's transcript in the main view, and$.ui.view({})returns to the previous view. - Added a
dirproperty toTextfor right-to-left languages. On Windows and VS Code terminals, lines are displayed in that direction and right-aligned. - The
agent.spawnhook can now rewrite thepromptandmodelof workflow agents. Previously, it could only deny the launch of workflow agents. - Added the
prompt.changehook. Called when the text in the prompt field changes without character input editing, such as history recall, clear, undo, or plugin input.
- Added
- [VSCode] Added a
claudeCode.attachSelectionsetting to prevent selected text in the editor from being added to messages. - [Claude Tag] Added support for Slack Connect channels. Owners or Claude Tag administrators can configure Claude in Slack to respond in channels shared with other organizations (disabled by default).
- [Claude Tag] Added support for Slack voice clips. If Slack has a transcript of the clip, Claude will read it.
Improvements
- For Artifact updates, small changes are now applied and republished in a single call, while larger edits are edited and republished within a single response.
- On exit, background commands still running 1.5 seconds after a stop request are now forcibly terminated. Previously, they could remain running in fullscreen mode.
- Large requests to api.anthropic.com are now gzip-compressed even when telemetry is disabled. This can be disabled with
CLAUDE_CODE_GZIP_REQUEST_BODIES=0. - Local session transcripts now also record the system prompt, tools, and parameters for each API request. This allows requests to be accurately reproduced from shared transcripts.
- In Cowork cloud sessions, WebFetch will no longer retry pages that recently failed to fetch, and will instead inform Claude that the fetch failed.
- Improved the notes passed to Claude 3 models about @-mentioned PDFs, reducing cases where Claude answers without reading the PDF.
- The
claude-apiskill now retains Managed Agents sessions unless asked to archive or delete them. - The mode option label in
/sandboxhas been changed from "Sandbox BashTool" to "Sandbox commands." - [Claude Tag] Access bundles attached by administrators to Slack channels now continue to apply after a channel becomes a Slack Connect channel, without needing to be reattached.
Security
- Fixed issues where tokens from organizations rejected by
forceLoginOrgUUIDpersisted, and where agent hooks were ignoringmodel(see Notable Updates). - When sharing mods using the built-in
plugin-authoringskill, Claude now scans for keys before opening mod files, and prompts for confirmation before scanning folders outside the project. - When
forceLoginGatewayUrlpoints to an Anthropic-managed gateway that provides session hostnames, the Claude Desktop Code tab now applies managed settings. The gateway must be reachable at startup. - When resuming inherited workflows in background sessions, they now go through Workflow tool approval rather than executing directly from the handoff file.
- [Claude Tag] For connector operations requiring approval, an Allow once / Deny card is now shown in Slack threads visible only to the requester. Instead of denying, Claude asks for confirmation, and other participants only see that approval is pending.
Fixes (Key Items)
- Fixed repeated 400 errors per turn from MCP tool input schema: MCP tools whose input schema is rejected by the API will be sent without parameters for the remainder of that conversation.
- Fixed loss of compaction content when resuming headless / Agent SDK sessions: Fixed a bug where the most recent messages that should have been retained were lost during compaction after a response cut off by the output token limit (applies to compactions from this version onward), and a bug where summaries were lost or pre-compaction history was restored during compaction performed after retries or incomplete responses within the same turn.
- Fixed MCP server tools connected after compaction not being communicated to Claude: If an MCP server connection completed after compaction, that server's tools and instructions were not communicated to Claude until the next tool call.
- Fixed automatic tool search being disabled mid-conversation:
ENABLE_TOOL_SEARCH=autowas being disabled during periods such as when MCP servers were reconnecting after a resume. - Fixed SessionEnd hook not executing: The SessionEnd hook sometimes did not execute when exiting while background commands were running.
- Fixed rewritten prompts from the prompt.submit hook being recorded as originally entered: Prompts rewritten or discarded by a mod's
prompt.submithook were being recorded as originally entered in OpenTelemetryuser_promptevents, interaction spans, and session title requests. - Fixed --worktree starting commit and hook issues: Fixed a bug where
--worktreesessions could start from the wrong commit when tags or branches had names resembling commit IDs, and a bug where pluginWorktreeCreate/WorktreeRemovehooks were not executed on startup with--worktree(not yet supported when used with--tmux). - Fixed feature flags not updating behind TLS inspection proxies: Feature flags and staged rollouts were remaining stale behind proxies using certificates trusted only in the OS certificate store.
- Fixed Cowork cloud sessions falsely reporting success for writes to local paths: Write, Edit, and NotebookEdit were reporting success for paths on the user's computer, but the files were not being delivered.
- Fixed cloud sessions stalling for 5 minutes per turn: Turns that were stalling when organization policies could not be read now terminate immediately and display the reason.
- Fixed fast mode continuing after credits run out in the VS Code extension: Each request was being rejected and retried. Fast mode is now turned off until re-enabled, and an error notification is displayed.
- In addition, numerous minor bugs have been fixed in Remote Control and cloud sessions, mod hooks, git integration in repositories using reftable ref storage, the VS Code extension, Claude Tag and Code Review, and more.
Breaking Changes / Deprecations
updatedInput in PreToolUse / PermissionRequest Hooks Now Validated
The updatedInput returned by hooks is now validated the same way as Claude's own input. Keys not present in the tool's input will be removed, and if the input is not accepted by the tool, the call will be rejected. Since updatedInput replaces the entire input object, all fields including unchanged ones must be returned (as stated in the official documentation).
Below is a constructed example based on the PermissionRequest hook output example in the official documentation, with an extra key note that doesn't exist in the Bash tool's input.
Before revision (example):
{
"hookSpecificOutput": {
"hookEventName": "PermissionRequest",
"decision": {
"behavior": "allow",
"updatedInput": {
"command": "npm run lint",
"note": "rewritten by hook"
}
}
}
}
In v2.1.300, note will be removed and only command will be passed to the tool. Since the CHANGELOG does not document how note was handled previously, this example shows the approach of returning only keys that exist in the tool's input.
After revision (example):
{
"hookSpecificOutput": {
"hookEventName": "PermissionRequest",
"decision": {
"behavior": "allow",
"updatedInput": {
"command": "npm run lint"
}
}
}
}
--sandbox / --no-sandbox Removed from claude remote-control
The --sandbox and --no-sandbox flags have been removed from claude remote-control. These flags had no effect. Starting with v2.1.300, specifying either will cause an error and exit. Use sandbox.enabled in settings to sandbox a session.
Before the change (up to v2.1.299):
# Flags were accepted but had no effect
claude remote-control --sandbox
After the change (v2.1.300 onward):
# Remove the flags, as --sandbox / --no-sandbox now causes an error and exit
claude remote-control
The following is an example of enabling sandbox in the settings file:
{
"sandbox": {
"enabled": true
}
}
setMode in PermissionRequest Hook Now Ignored in Cowork Cloud Sessions
In Cowork cloud sessions, setMode updates included in a PermissionRequest hook's allow response will now be ignored. All other allow content continues to be applied. The following is a constructed example that includes setMode in updatedPermissions.
{
"hookSpecificOutput": {
"hookEventName": "PermissionRequest",
"decision": {
"behavior": "allow",
"updatedPermissions": [
{ "type": "setMode", "mode": "acceptEdits", "destination": "session" }
]
}
}
}
| Cowork Cloud Sessions | Up to v2.1.299 | v2.1.300 onward |
|---|---|---|
Approval via behavior: "allow" |
Applied | Applied |
Mode change via setMode |
Applied | Ignored |
Other Behavior Changes
claude gateway now stops at startup and indicates the key name if there are desktop: policy keys that Claude Desktop cannot use via the gateway.
claude gateway
When desktop: policy keys are present |
Up to v2.1.299 | v2.1.300 onward |
|---|---|---|
Behavior of claude gateway |
Starts with a warning | Stops at startup indicating key names |
In CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST sessions, CA bundle, tool proxy, git TLS, and git config-related variables in settings files (such as SSL_CERT_FILE) will now be ignored. Under Claude Desktop, only those written in project settings are subject to being ignored. The following is an example of specifying SSL_CERT_FILE in the env section of a settings file.
{
"env": {
"SSL_CERT_FILE": "/path/to/ca-bundle.pem"
}
}
| The above setting | Up to v2.1.299 | v2.1.300 onward |
|---|---|---|
CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST sessions |
Not ignored | Ignored |
| Same (under Claude Desktop) | Not ignored | Ignored only when written in project settings |
Closing
With the addition of OpenTelemetry GenAI attributes and cache write breakdowns, I feel it has become easier to analyze Claude Code usage with existing monitoring infrastructure. Combined with the advisor support on Claude Platform on AWS, this feels like a release with a lot worth checking out for teams running Claude Code on AWS.
For those using Claude Code on Claude Platform on AWS, monitoring Claude Code with OpenTelemetry, or configuring PreToolUse / PermissionRequest hooks, why not update and give it a try?
References
