Skills-directory plugins now auto-load from .claude/skills/ without a marketplace install, and a new claude plugin init command scaffolds them in place
WebSocket (type: "ws") added as a fourth MCP server transport type for persistent bidirectional connections
Auto mode is now available on Bedrock, Vertex, and Foundry for Opus 4.7 and Opus 4.8 (opt in with CLAUDE_CODE_ENABLE_AUTO_MODE=1)
EnterWorktree can now switch between Claude-managed worktrees mid-session without returning to the canonical repo root
Memory stores documented with a 2,000-memory limit and new best practices section for staying under it
Major rewrite: page expanded from a brief FAQ into a comprehensive self-hosting guide. New sections cover the subprocess model, session patterns (ephemeral, long-running, hybrid, multi-agent container), container provisioning, and production concerns (persistence, observability, auth/secrets, scaling, cost, multi-tenant isolation). [line 9] [Source]
New section "Scale up with dynamic workflows" recommends the Workflow tool for dozens-to-hundreds of agents; notes availability in TypeScript Agent SDK v0.3.149+
Clarified multi-agent limitation: parallel session orchestration is CLI-only, but dynamic workflows (available in Desktop) support multi-agent work within one session
New fix documented for "thinking blocks cannot be modified" error: run claude update first if using Opus 4.7 or Opus 4.8 — versions before v2.1.156 can trigger this error during normal tool use
New "Option 4: Add a remote WebSocket server" — type: "ws" entries with url, headers, headersHelper, timeout, alwaysLoad fields; authentication is header-only; claude mcp add --transport does not accept ws. [line 114] [Source]
Plugin MCP transport support updated: WebSocket added alongside stdio, SSE, and HTTP
New behavior: if headers.Authorization is configured and the server rejects it, Claude reports connection failure instead of falling back to OAuth
autoMemoryDirectory: now accepted from any settings scope (user, project, local, policy, --settings); when set in project/local settings, requires workspace trust dialog acceptance
New tool_parameters attribute added to tool_decision (permission decision) event when OTEL_LOG_TOOL_DETAILS=1; documents shape per tool type including new WorkspaceBash. [line 533] [Source]
MCP monitoring: tool_decision now includes mcp_server_name and mcp_tool_name in tool_parameters. [line 969] [Source]
Security use-case table updated: "rejected commands" now queries tool_decision event
New section "Develop a plugin in your skills directory" — documents claude plugin init scaffolding a plugin in ~/.claude/skills/<name>/ that auto-loads as <name>@skills-dir without a marketplace install step
New major section "Skills-directory plugins" — documents auto-loading from skills directories, scope/trust rules, project-scope restrictions, and /reload-plugins. [line 330] [Source]
New CLI command plugin init documented with full options table (--description, --author, --author-email, --with, --force) and examples. [line 763] [Source]
agent setting now also sets the default agent for sessions dispatched from claude agents
autoMemoryDirectory: now accepted from any settings scope; requires workspace trust dialog when set in project/local settings
New workflowKeywordTriggerEnabled setting: controls whether typing "workflow" in a prompt triggers a dynamic workflow (default true). [line 250] [Source]
/terminal-setup behavior change in VS Code, Cursor, and Windsurf: now also sets terminal.integrated.gpuAcceleration to "off" to prevent garbled text; documented how to undo this change
EnterWorktree: from within a worktree or a subagent with pinned working directory, only the path form is available and the target must be under .claude/worktrees/
New Workflow tool documented: runs a dynamic workflow script that orchestrates many subagents in the background; requires permission approval. [line 53] [Source]
EnterWorktree: from within a worktree, Claude can now switch directly to another worktree under .claude/worktrees/ by calling EnterWorktree with the target path. [line 33] [Source]
Cleanup behavior clarified: automatic cleanup sweep covers both subagent and background-session worktrees
New section "When Claude uses MCP tools" — explains trigger conditions (explicit/implicit requests vs. general knowledge) and guidance on steering tool-use frequency via system prompt
Denylist section: added recommendation to denylist write/destructive tools for read-only assistants or human-confirmation workflows
Multi-server section: new note that clear, specific tool descriptions improve selection accuracy; recommendation to use defer_loading with Tool Search for large tool sets
New tip #7: when using computer_20251124 with enable_zoom: true, Claude zooms in on small text or specific UI elements; guidance on how to trigger zoom behavior
New section "When Claude uses tools" — explains the default auto tool_choice behavior, when Claude calls tools vs. responds directly, and how to steer behavior via system prompt or tool_choice
high effort level description changed from "always thinks" to "almost always thinks"
New guidance on system prompt phrases to encourage thinking (e.g., "Think carefully before responding")
New per-message thinking steering from the user turn: appending "Please think hard before responding." encourages thinking; "Answer directly without deliberating." suppresses it. [line 163] [Source]
New note: Claude's tool selection is designed to work with 100K+ token contexts; references tool context management and Tool Search for large tool sets
New behavior note: updating an agent does not automatically update coordinator rosters that reference it — coordinators keep the version pinned at their last create/update; must update the coordinator explicitly to delegate to a newer version
Memory store cap documented: a store holds a maximum of 2,000 memories; writes to new memories fail when the limit is reached (existing memories remain readable/editable). [line 46] [Source]
"Limits" section replaced with "Best practices for memory management": guidance on focused stores, condensing/pruning before hitting the limit, attaching a new store, and limiting write access
Version pinning clarified: {"type": "agent", "id": ...} without a version pins to the latest version at coordinator creation time, not the agent's future latest version
New explicit note: coordinator configuration (including multiagent.agents roster) is snapshotted at create/update time and does not automatically pick up later agent updates