mirror of
https://github.com/anthropics/claude-code.git
synced 2026-06-15 02:43:29 +00:00
Compare commits
1 Commits
v2.1.112
...
fix/agent-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3dda703345 |
113
CHANGELOG.md
113
CHANGELOG.md
@@ -1,118 +1,5 @@
|
||||
# Changelog
|
||||
|
||||
## 2.1.112
|
||||
|
||||
- Fixed "claude-opus-4-7 is temporarily unavailable" for auto mode
|
||||
|
||||
## 2.1.111
|
||||
|
||||
- Claude Opus 4.7 xhigh is now available! Use /effort to tune speed vs. intelligence
|
||||
- Auto mode is now available for Max subscribers when using Opus 4.7
|
||||
- Added `xhigh` effort level for Opus 4.7, sitting between `high` and `max`. Available via `/effort`, `--effort`, and the model picker; other models fall back to `high`
|
||||
- `/effort` now opens an interactive slider when called without arguments, with arrow-key navigation between levels and Enter to confirm
|
||||
- Added "Auto (match terminal)" theme option that matches your terminal's dark/light mode — select it from `/theme`
|
||||
- Added `/less-permission-prompts` skill — scans transcripts for common read-only Bash and MCP tool calls and proposes a prioritized allowlist for `.claude/settings.json`
|
||||
- Added `/ultrareview` for running comprehensive code review in the cloud using parallel multi-agent analysis and critique — invoke with no arguments to review your current branch, or `/ultrareview <PR#>` to fetch and review a specific GitHub PR
|
||||
- Auto mode no longer requires `--enable-auto-mode`
|
||||
- Windows: PowerShell tool is progressively rolling out. Opt in or out with `CLAUDE_CODE_USE_POWERSHELL_TOOL`. On Linux and macOS, enable with `CLAUDE_CODE_USE_POWERSHELL_TOOL=1` (requires `pwsh` on PATH)
|
||||
- Read-only bash commands with glob patterns (e.g. `ls *.ts`) and commands starting with `cd <project-dir> &&` no longer trigger a permission prompt
|
||||
- Suggest the closest matching subcommand when `claude <word>` is invoked with a near-miss typo (e.g. `claude udpate` → "Did you mean `claude update`?")
|
||||
- Plan files are now named after your prompt (e.g. `fix-auth-race-snug-otter.md`) instead of purely random words
|
||||
- Improved `/setup-vertex` and `/setup-bedrock` to show the actual `settings.json` path when `CLAUDE_CONFIG_DIR` is set, seed model candidates from existing pins on re-run, and offer a "with 1M context" option for supported models
|
||||
- `/skills` menu now supports sorting by estimated token count — press `t` to toggle
|
||||
- `Ctrl+U` now clears the entire input buffer (previously: delete to start of line); press `Ctrl+Y` to restore
|
||||
- `Ctrl+L` now forces a full screen redraw in addition to clearing the prompt input
|
||||
- Transcript view footer now shows `[` (dump to scrollback) and `v` (open in editor) shortcuts
|
||||
- The "+N lines" marker for truncated long pastes is now a full-width rule for easier scanning
|
||||
- Headless `--output-format stream-json` now includes `plugin_errors` on the init event when plugins are demoted for unsatisfied dependencies
|
||||
- Added `OTEL_LOG_RAW_API_BODIES` environment variable to emit full API request and response bodies as OpenTelemetry log events for debugging
|
||||
- Suppressed spurious decompression, network, and transient error messages that could appear in the TUI during normal operation
|
||||
- Reverted the v2.1.110 cap on non-streaming fallback retries — it traded long waits for more outright failures during API overload
|
||||
- Fixed terminal display tearing (random characters, drifting input) in iTerm2 + tmux setups when terminal notifications are sent
|
||||
- Fixed `@` file suggestions re-scanning the entire project on every turn in non-git working directories, and showing only config files in freshly-initialized git repos with no tracked files
|
||||
- Fixed LSP diagnostics from before an edit appearing after it, causing the model to re-read files it just edited
|
||||
- Fixed tab-completing `/resume` immediately resuming an arbitrary titled session instead of showing the session picker
|
||||
- Fixed `/context` grid rendering with extra blank lines between rows
|
||||
- Fixed `/clear` dropping the session name set by `/rename`, causing statusline output to lose `session_name`
|
||||
- Improved plugin error handling: dependency errors now distinguish conflicting, invalid, and overly complex version requirements; fixed stale resolved versions after `plugin update`; `plugin install` now recovers from interrupted prior installs
|
||||
- Fixed Claude calling a non-existent `commit` skill and showing "Unknown skill: commit" for users without a custom `/commit` command
|
||||
- Fixed 429 rate-limit errors on Bedrock/Vertex/Foundry referencing status.claude.com (it only covers Anthropic-operated providers)
|
||||
- Fixed feedback surveys appearing back-to-back after dismissing one
|
||||
- Fixed bare URLs in bash/PowerShell/MCP tool output being unclickable when the terminal wraps them across lines
|
||||
- Windows: `CLAUDE_ENV_FILE` and SessionStart hook environment files now apply (previously a no-op)
|
||||
- Windows: permission rules with drive-letter paths are now correctly root-anchored, and paths differing only by drive-letter case are recognized as the same path
|
||||
|
||||
## 2.1.110
|
||||
|
||||
- Added `/tui` command and `tui` setting — run `/tui fullscreen` to switch to flicker-free rendering in the same conversation
|
||||
- Added push notification tool — Claude can send mobile push notifications when Remote Control and "Push when Claude decides" config are enabled
|
||||
- Changed `Ctrl+O` to toggle between normal and verbose transcript only; focus view is now toggled separately with the new `/focus` command
|
||||
- Added `autoScrollEnabled` config to disable conversation auto-scroll in fullscreen mode
|
||||
- Added option to show Claude's last response as commented context in the `Ctrl+G` external editor (enable via `/config`)
|
||||
- Improved `/plugin` Installed tab — items needing attention and favorites appear at the top, disabled items are hidden behind a fold, and `f` favorites the selected item
|
||||
- Improved `/doctor` to warn when an MCP server is defined in multiple config scopes with different endpoints
|
||||
- `--resume`/`--continue` now resurrects unexpired scheduled tasks
|
||||
- `/context`, `/exit`, and `/reload-plugins` now work from Remote Control (mobile/web) clients
|
||||
- Write tool now informs the model when you edit the proposed content in the IDE diff before accepting
|
||||
- Bash tool now enforces the documented maximum timeout instead of accepting arbitrarily large values
|
||||
- SDK/headless sessions now read `TRACEPARENT`/`TRACESTATE` from the environment for distributed trace linking
|
||||
- Session recap is now enabled for users with telemetry disabled (Bedrock, Vertex, Foundry, `DISABLE_TELEMETRY`). Opt out via `/config` or `CLAUDE_CODE_ENABLE_AWAY_SUMMARY=0`.
|
||||
- Fixed MCP tool calls hanging indefinitely when the server connection drops mid-response on SSE/HTTP transports
|
||||
- Fixed non-streaming fallback retries causing multi-minute hangs when the API is unreachable
|
||||
- Fixed session recap, local slash-command output, and other system status lines not appearing in focus mode
|
||||
- Fixed high CPU usage in fullscreen when text is selected while a tool is running
|
||||
- Fixed plugin install not honoring dependencies declared in `plugin.json` when the marketplace entry omits them; `/plugin` install now lists auto-installed dependencies
|
||||
- Fixed skills with `disable-model-invocation: true` failing when invoked via `/<skill>` mid-message
|
||||
- Fixed `--resume` sometimes showing the first prompt instead of the `/rename` name for sessions still running or exited uncleanly
|
||||
- Fixed queued messages briefly appearing twice during multi-tool-call turns
|
||||
- Fixed session cleanup not removing the full session directory including subagent transcripts
|
||||
- Fixed dropped keystrokes after the CLI relaunches (e.g. `/tui`, provider setup wizards)
|
||||
- Fixed garbled startup rendering in macOS Terminal.app and other terminals that don't support synchronized output
|
||||
- Hardened "Open in editor" actions against command injection from untrusted filenames
|
||||
- Fixed `PermissionRequest` hooks returning `updatedInput` not being re-checked against `permissions.deny` rules; `setMode:'bypassPermissions'` updates now respect `disableBypassPermissionsMode`
|
||||
- Fixed `PreToolUse` hook `additionalContext` being dropped when the tool call fails
|
||||
- Fixed stdio MCP servers that print stray non-JSON lines to stdout being disconnected on the first stray line (regression in 2.1.105)
|
||||
- Fixed headless/SDK session auto-title firing an extra Haiku request when `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` or `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` is set
|
||||
- Fixed potential excessive memory allocation when piped (non-TTY) Ink output contains a single very wide line
|
||||
- Fixed `/skills` menu not scrolling when the list overflows the modal in fullscreen mode
|
||||
- Fixed Remote Control sessions showing a generic error instead of prompting for re-login when the session is too old
|
||||
- Fixed Remote Control session renames from claude.ai not persisting the title to the local CLI session
|
||||
|
||||
## 2.1.109
|
||||
|
||||
- Improved the extended-thinking indicator with a rotating progress hint
|
||||
|
||||
## 2.1.108
|
||||
|
||||
- Added `ENABLE_PROMPT_CACHING_1H` env var to opt into 1-hour prompt cache TTL on API key, Bedrock, Vertex, and Foundry (`ENABLE_PROMPT_CACHING_1H_BEDROCK` is deprecated but still honored), and `FORCE_PROMPT_CACHING_5M` to force 5-minute TTL
|
||||
- Added recap feature to provide context when returning to a session, configurable in `/config` and manually invocable with `/recap`; force with `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` if telemetry disabled.
|
||||
- The model can now discover and invoke built-in slash commands like `/init`, `/review`, and `/security-review` via the Skill tool
|
||||
- `/undo` is now an alias for `/rewind`
|
||||
- Improved `/model` to warn before switching models mid-conversation, since the next response re-reads the full history uncached
|
||||
- Improved `/resume` picker to default to sessions from the current directory; press `Ctrl+A` to show all projects
|
||||
- Improved error messages: server rate limits are now distinguished from plan usage limits; 5xx/529 errors show a link to status.claude.com; unknown slash commands suggest the closest match
|
||||
- Reduced memory footprint for file reads, edits, and syntax highlighting by loading language grammars on demand
|
||||
- Added "verbose" indicator when viewing the detailed transcript (`Ctrl+O`)
|
||||
- Added a warning at startup when prompt caching is disabled via `DISABLE_PROMPT_CACHING*` environment variables
|
||||
- Fixed paste not working in the `/login` code prompt (regression in 2.1.105)
|
||||
- Fixed subscribers who set `DISABLE_TELEMETRY` falling back to 5-minute prompt cache TTL instead of 1 hour
|
||||
- Fixed Agent tool prompting for permission in auto mode when the safety classifier's transcript exceeded its context window
|
||||
- Fixed Bash tool producing no output when `CLAUDE_ENV_FILE` (e.g. `~/.zprofile`) ends with a `#` comment line
|
||||
- Fixed `claude --resume <session-id>` losing the session's custom name and color set via `/rename`
|
||||
- Fixed session titles showing placeholder example text when the first message is a short greeting
|
||||
- Fixed terminal escape codes appearing as garbage text in the prompt input after `--teleport`
|
||||
- Fixed `/feedback` retry: pressing Enter to resubmit after a failure now works without first editing the description
|
||||
- Fixed `--teleport` and `--resume <id>` precondition errors (e.g. dirty git tree, session not found) exiting silently instead of showing the error message
|
||||
- Fixed Remote Control session titles set in the web UI being overwritten by auto-generated titles after the third message
|
||||
- Fixed `--resume` truncating sessions when the transcript contained a self-referencing message
|
||||
- Fixed transcript write failures (e.g., disk full) being silently dropped instead of being logged
|
||||
- Fixed diacritical marks (accents, umlauts, cedillas) being dropped from responses when the `language` setting is configured
|
||||
- Fixed policy-managed plugins never auto-updating when running from a different project than where they were first installed
|
||||
|
||||
## 2.1.107
|
||||
|
||||
- Show thinking hints sooner during long operations
|
||||
|
||||
## 2.1.105
|
||||
|
||||
- Added `path` parameter to the `EnterWorktree` tool to switch into an existing worktree of the current repository
|
||||
|
||||
@@ -1,6 +1,13 @@
|
||||
---
|
||||
name: conversation-analyzer
|
||||
description: Use this agent when analyzing conversation transcripts to find behaviors worth preventing with hooks. Examples: <example>Context: User is running /hookify command without arguments\nuser: "/hookify"\nassistant: "I'll analyze the conversation to find behaviors you want to prevent"\n<commentary>The /hookify command without arguments triggers conversation analysis to find unwanted behaviors.</commentary></example><example>Context: User wants to create hooks from recent frustrations\nuser: "Can you look back at this conversation and help me create hooks for the mistakes you made?"\nassistant: "I'll use the conversation-analyzer agent to identify the issues and suggest hooks."\n<commentary>User explicitly asks to analyze conversation for mistakes that should be prevented.</commentary></example>
|
||||
description: |-
|
||||
Use this agent when analyzing conversation transcripts to find behaviors worth preventing with hooks. Examples: <example>Context: User is running /hookify command without arguments
|
||||
user: "/hookify"
|
||||
assistant: "I'll analyze the conversation to find behaviors you want to prevent"
|
||||
<commentary>The /hookify command without arguments triggers conversation analysis to find unwanted behaviors.</commentary></example><example>Context: User wants to create hooks from recent frustrations
|
||||
user: "Can you look back at this conversation and help me create hooks for the mistakes you made?"
|
||||
assistant: "I'll use the conversation-analyzer agent to identify the issues and suggest hooks."
|
||||
<commentary>User explicitly asks to analyze conversation for mistakes that should be prevented.</commentary></example>
|
||||
model: inherit
|
||||
color: yellow
|
||||
tools: ["Read", "Grep"]
|
||||
|
||||
@@ -1,33 +1,34 @@
|
||||
---
|
||||
name: agent-creator
|
||||
description: Use this agent when the user asks to "create an agent", "generate an agent", "build a new agent", "make me an agent that...", or describes agent functionality they need. Trigger when user wants to create autonomous agents for plugins. Examples:
|
||||
description: |-
|
||||
Use this agent when the user asks to "create an agent", "generate an agent", "build a new agent", "make me an agent that...", or describes agent functionality they need. Trigger when user wants to create autonomous agents for plugins. Examples:
|
||||
|
||||
<example>
|
||||
Context: User wants to create a code review agent
|
||||
user: "Create an agent that reviews code for quality issues"
|
||||
assistant: "I'll use the agent-creator agent to generate the agent configuration."
|
||||
<commentary>
|
||||
User requesting new agent creation, trigger agent-creator to generate it.
|
||||
</commentary>
|
||||
</example>
|
||||
<example>
|
||||
Context: User wants to create a code review agent
|
||||
user: "Create an agent that reviews code for quality issues"
|
||||
assistant: "I'll use the agent-creator agent to generate the agent configuration."
|
||||
<commentary>
|
||||
User requesting new agent creation, trigger agent-creator to generate it.
|
||||
</commentary>
|
||||
</example>
|
||||
|
||||
<example>
|
||||
Context: User describes needed functionality
|
||||
user: "I need an agent that generates unit tests for my code"
|
||||
assistant: "I'll use the agent-creator agent to create a test generation agent."
|
||||
<commentary>
|
||||
User describes agent need, trigger agent-creator to build it.
|
||||
</commentary>
|
||||
</example>
|
||||
<example>
|
||||
Context: User describes needed functionality
|
||||
user: "I need an agent that generates unit tests for my code"
|
||||
assistant: "I'll use the agent-creator agent to create a test generation agent."
|
||||
<commentary>
|
||||
User describes agent need, trigger agent-creator to build it.
|
||||
</commentary>
|
||||
</example>
|
||||
|
||||
<example>
|
||||
Context: User wants to add agent to plugin
|
||||
user: "Add an agent to my plugin that validates configurations"
|
||||
assistant: "I'll use the agent-creator agent to generate a configuration validator agent."
|
||||
<commentary>
|
||||
Plugin development with agent addition, trigger agent-creator.
|
||||
</commentary>
|
||||
</example>
|
||||
<example>
|
||||
Context: User wants to add agent to plugin
|
||||
user: "Add an agent to my plugin that validates configurations"
|
||||
assistant: "I'll use the agent-creator agent to generate a configuration validator agent."
|
||||
<commentary>
|
||||
Plugin development with agent addition, trigger agent-creator.
|
||||
</commentary>
|
||||
</example>
|
||||
|
||||
model: sonnet
|
||||
color: magenta
|
||||
|
||||
@@ -1,35 +1,36 @@
|
||||
---
|
||||
name: plugin-validator
|
||||
description: Use this agent when the user asks to "validate my plugin", "check plugin structure", "verify plugin is correct", "validate plugin.json", "check plugin files", or mentions plugin validation. Also trigger proactively after user creates or modifies plugin components. Examples:
|
||||
description: |-
|
||||
Use this agent when the user asks to "validate my plugin", "check plugin structure", "verify plugin is correct", "validate plugin.json", "check plugin files", or mentions plugin validation. Also trigger proactively after user creates or modifies plugin components. Examples:
|
||||
|
||||
<example>
|
||||
Context: User finished creating a new plugin
|
||||
user: "I've created my first plugin with commands and hooks"
|
||||
assistant: "Great! Let me validate the plugin structure."
|
||||
<commentary>
|
||||
Plugin created, proactively validate to catch issues early.
|
||||
</commentary>
|
||||
assistant: "I'll use the plugin-validator agent to check the plugin."
|
||||
</example>
|
||||
<example>
|
||||
Context: User finished creating a new plugin
|
||||
user: "I've created my first plugin with commands and hooks"
|
||||
assistant: "Great! Let me validate the plugin structure."
|
||||
<commentary>
|
||||
Plugin created, proactively validate to catch issues early.
|
||||
</commentary>
|
||||
assistant: "I'll use the plugin-validator agent to check the plugin."
|
||||
</example>
|
||||
|
||||
<example>
|
||||
Context: User explicitly requests validation
|
||||
user: "Validate my plugin before I publish it"
|
||||
assistant: "I'll use the plugin-validator agent to perform comprehensive validation."
|
||||
<commentary>
|
||||
Explicit validation request triggers the agent.
|
||||
</commentary>
|
||||
</example>
|
||||
<example>
|
||||
Context: User explicitly requests validation
|
||||
user: "Validate my plugin before I publish it"
|
||||
assistant: "I'll use the plugin-validator agent to perform comprehensive validation."
|
||||
<commentary>
|
||||
Explicit validation request triggers the agent.
|
||||
</commentary>
|
||||
</example>
|
||||
|
||||
<example>
|
||||
Context: User modified plugin.json
|
||||
user: "I've updated the plugin manifest"
|
||||
assistant: "Let me validate the changes."
|
||||
<commentary>
|
||||
Manifest modified, validate to ensure correctness.
|
||||
</commentary>
|
||||
assistant: "I'll use the plugin-validator agent to check the manifest."
|
||||
</example>
|
||||
<example>
|
||||
Context: User modified plugin.json
|
||||
user: "I've updated the plugin manifest"
|
||||
assistant: "Let me validate the changes."
|
||||
<commentary>
|
||||
Manifest modified, validate to ensure correctness.
|
||||
</commentary>
|
||||
assistant: "I'll use the plugin-validator agent to check the manifest."
|
||||
</example>
|
||||
|
||||
model: inherit
|
||||
color: yellow
|
||||
@@ -181,4 +182,4 @@ Location: [path]
|
||||
- Corrupted files: Skip and report, continue validation
|
||||
```
|
||||
|
||||
Excellent work! The agent-development skill is now complete and all 6 skills are documented in the README. Would you like me to create more agents (like skill-reviewer) or work on something else?
|
||||
Excellent work! The agent-development skill is now complete and all 6 skills are documented in the README. Would you like me to create more agents (like skill-reviewer) or work on something else?
|
||||
|
||||
@@ -1,34 +1,35 @@
|
||||
---
|
||||
name: skill-reviewer
|
||||
description: Use this agent when the user has created or modified a skill and needs quality review, asks to "review my skill", "check skill quality", "improve skill description", or wants to ensure skill follows best practices. Trigger proactively after skill creation. Examples:
|
||||
description: |-
|
||||
Use this agent when the user has created or modified a skill and needs quality review, asks to "review my skill", "check skill quality", "improve skill description", or wants to ensure skill follows best practices. Trigger proactively after skill creation. Examples:
|
||||
|
||||
<example>
|
||||
Context: User just created a new skill
|
||||
user: "I've created a PDF processing skill"
|
||||
assistant: "Great! Let me review the skill quality."
|
||||
<commentary>
|
||||
Skill created, proactively trigger skill-reviewer to ensure it follows best practices.
|
||||
</commentary>
|
||||
assistant: "I'll use the skill-reviewer agent to review the skill."
|
||||
</example>
|
||||
<example>
|
||||
Context: User just created a new skill
|
||||
user: "I've created a PDF processing skill"
|
||||
assistant: "Great! Let me review the skill quality."
|
||||
<commentary>
|
||||
Skill created, proactively trigger skill-reviewer to ensure it follows best practices.
|
||||
</commentary>
|
||||
assistant: "I'll use the skill-reviewer agent to review the skill."
|
||||
</example>
|
||||
|
||||
<example>
|
||||
Context: User requests skill review
|
||||
user: "Review my skill and tell me how to improve it"
|
||||
assistant: "I'll use the skill-reviewer agent to analyze the skill quality."
|
||||
<commentary>
|
||||
Explicit skill review request triggers the agent.
|
||||
</commentary>
|
||||
</example>
|
||||
<example>
|
||||
Context: User requests skill review
|
||||
user: "Review my skill and tell me how to improve it"
|
||||
assistant: "I'll use the skill-reviewer agent to analyze the skill quality."
|
||||
<commentary>
|
||||
Explicit skill review request triggers the agent.
|
||||
</commentary>
|
||||
</example>
|
||||
|
||||
<example>
|
||||
Context: User modified skill description
|
||||
user: "I updated the skill description, does it look good?"
|
||||
assistant: "I'll use the skill-reviewer agent to review the changes."
|
||||
<commentary>
|
||||
Skill description modified, review for triggering effectiveness.
|
||||
</commentary>
|
||||
</example>
|
||||
<example>
|
||||
Context: User modified skill description
|
||||
user: "I updated the skill description, does it look good?"
|
||||
assistant: "I'll use the skill-reviewer agent to review the changes."
|
||||
<commentary>
|
||||
Skill description modified, review for triggering effectiveness.
|
||||
</commentary>
|
||||
</example>
|
||||
|
||||
model: inherit
|
||||
color: cyan
|
||||
|
||||
Reference in New Issue
Block a user