mirror of
https://github.com/anthropics/claude-code.git
synced 2026-01-30 04:02:03 +00:00
Compare commits
36 Commits
v2.1.0
...
fvolcic/mi
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fd8f3801b9 | ||
|
|
26315247e7 | ||
|
|
5a91286a82 | ||
|
|
3196f36cee | ||
|
|
7d22b6e167 | ||
|
|
19a829ba68 | ||
|
|
18979efb8d | ||
|
|
f77acdf149 | ||
|
|
c13cf781ef | ||
|
|
cc70d3ab50 | ||
|
|
250b257c4e | ||
|
|
dec754edc9 | ||
|
|
6a2936ab79 | ||
|
|
f860f671dc | ||
|
|
76df7eea04 | ||
|
|
a8d107f9cc | ||
|
|
b640d94a49 | ||
|
|
b17c088cdc | ||
|
|
a856c62014 | ||
|
|
0359f24538 | ||
|
|
b8497141a5 | ||
|
|
9cc635aac1 | ||
|
|
4f18698a9e | ||
|
|
553d6ffc3e | ||
|
|
7b600bca3b | ||
|
|
4700be03eb | ||
|
|
9b08c1010b | ||
|
|
f34e2535b4 | ||
|
|
4297e57ef1 | ||
|
|
0d0221fd0a | ||
|
|
5aac2b1b6a | ||
|
|
2bb8af55fa | ||
|
|
a19dd76dcf | ||
|
|
63eefe157a | ||
|
|
2c3884689b | ||
|
|
495d6a3d4b |
9
.github/workflows/claude-dedupe-issues.yml
vendored
9
.github/workflows/claude-dedupe-issues.yml
vendored
@@ -17,19 +17,22 @@ jobs:
|
||||
permissions:
|
||||
contents: read
|
||||
issues: write
|
||||
id-token: write
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Run Claude Code slash command
|
||||
uses: anthropics/claude-code-base-action@beta
|
||||
uses: anthropics/claude-code-action@v1
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
allowed_non_write_users: "*"
|
||||
prompt: "/dedupe ${{ github.repository }}/issues/${{ github.event.issue.number || inputs.issue_number }}"
|
||||
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
|
||||
claude_args: "--model claude-sonnet-4-5-20250929"
|
||||
claude_env: |
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Log duplicate comment event to Statsig
|
||||
if: always()
|
||||
|
||||
122
.github/workflows/claude-issue-triage.yml
vendored
122
.github/workflows/claude-issue-triage.yml
vendored
@@ -11,65 +11,12 @@ jobs:
|
||||
permissions:
|
||||
contents: read
|
||||
issues: write
|
||||
id-token: write
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Create triage prompt
|
||||
run: |
|
||||
mkdir -p /tmp/claude-prompts
|
||||
cat > /tmp/claude-prompts/triage-prompt.txt << 'EOF'
|
||||
You're an issue triage assistant for GitHub issues. Your task is to analyze the issue and select appropriate labels from the provided list.
|
||||
|
||||
IMPORTANT: Don't post any comments or messages to the issue. Your only action should be to apply labels.
|
||||
|
||||
Issue Information:
|
||||
- REPO: ${{ github.repository }}
|
||||
- ISSUE_NUMBER: ${{ github.event.issue.number }}
|
||||
|
||||
TASK OVERVIEW:
|
||||
|
||||
1. First, fetch the list of labels available in this repository by running: `gh label list`. Run exactly this command with nothing else.
|
||||
|
||||
2. Next, use the GitHub tools to get context about the issue:
|
||||
- You have access to these tools:
|
||||
- mcp__github__get_issue: Use this to retrieve the current issue's details including title, description, and existing labels
|
||||
- mcp__github__get_issue_comments: Use this to read any discussion or additional context provided in the comments
|
||||
- mcp__github__update_issue: Use this to apply labels to the issue (do not use this for commenting)
|
||||
- mcp__github__search_issues: Use this to find similar issues that might provide context for proper categorization and to identify potential duplicate issues
|
||||
- mcp__github__list_issues: Use this to understand patterns in how other issues are labeled
|
||||
- Start by using mcp__github__get_issue to get the issue details
|
||||
|
||||
3. Analyze the issue content, considering:
|
||||
- The issue title and description
|
||||
- The type of issue (bug report, feature request, question, etc.)
|
||||
- Technical areas mentioned
|
||||
- Severity or priority indicators
|
||||
- User impact
|
||||
- Components affected
|
||||
|
||||
4. Select appropriate labels from the available labels list provided above:
|
||||
- Choose labels that accurately reflect the issue's nature
|
||||
- Be specific but comprehensive
|
||||
- Select priority labels if you can determine urgency (high-priority, med-priority, or low-priority)
|
||||
- Consider platform labels (android, ios) if applicable
|
||||
- If you find similar issues using mcp__github__search_issues, consider using a "duplicate" label if appropriate. Only do so if the issue is a duplicate of another OPEN issue.
|
||||
|
||||
5. Apply the selected labels:
|
||||
- Use mcp__github__update_issue to apply your selected labels
|
||||
- DO NOT post any comments explaining your decision
|
||||
- DO NOT communicate directly with users
|
||||
- If no labels are clearly applicable, do not apply any labels
|
||||
|
||||
IMPORTANT GUIDELINES:
|
||||
- Be thorough in your analysis
|
||||
- Only select labels from the provided list above
|
||||
- DO NOT post any comments to the issue
|
||||
- Your ONLY action should be to apply labels using mcp__github__update_issue
|
||||
- It's okay to not add any labels if none are clearly applicable
|
||||
EOF
|
||||
|
||||
- name: Setup GitHub MCP Server
|
||||
run: |
|
||||
mkdir -p /tmp/mcp-config
|
||||
@@ -95,13 +42,64 @@ jobs:
|
||||
EOF
|
||||
|
||||
- name: Run Claude Code for Issue Triage
|
||||
uses: anthropics/claude-code-base-action@beta
|
||||
timeout-minutes: 5
|
||||
uses: anthropics/claude-code-action@v1
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
prompt_file: /tmp/claude-prompts/triage-prompt.txt
|
||||
allowed_tools: "Bash(gh label list),mcp__github__get_issue,mcp__github__get_issue_comments,mcp__github__update_issue,mcp__github__search_issues,mcp__github__list_issues"
|
||||
timeout_minutes: "5"
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
allowed_non_write_users: "*"
|
||||
prompt: |
|
||||
You're an issue triage assistant for GitHub issues. Your task is to analyze the issue and select appropriate labels from the provided list.
|
||||
|
||||
IMPORTANT: Don't post any comments or messages to the issue. Your only action should be to apply labels.
|
||||
|
||||
Issue Information:
|
||||
- REPO: ${{ github.repository }}
|
||||
- ISSUE_NUMBER: ${{ github.event.issue.number }}
|
||||
|
||||
TASK OVERVIEW:
|
||||
|
||||
1. First, fetch the list of labels available in this repository by running: `gh label list`. Run exactly this command with nothing else.
|
||||
|
||||
2. Next, use the GitHub tools to get context about the issue:
|
||||
- You have access to these tools:
|
||||
- mcp__github__get_issue: Use this to retrieve the current issue's details including title, description, and existing labels
|
||||
- mcp__github__get_issue_comments: Use this to read any discussion or additional context provided in the comments
|
||||
- mcp__github__update_issue: Use this to apply labels to the issue (do not use this for commenting)
|
||||
- mcp__github__search_issues: Use this to find similar issues that might provide context for proper categorization and to identify potential duplicate issues
|
||||
- mcp__github__list_issues: Use this to understand patterns in how other issues are labeled
|
||||
- Start by using mcp__github__get_issue to get the issue details
|
||||
|
||||
3. Analyze the issue content, considering:
|
||||
- The issue title and description
|
||||
- The type of issue (bug report, feature request, question, etc.)
|
||||
- Technical areas mentioned
|
||||
- Severity or priority indicators
|
||||
- User impact
|
||||
- Components affected
|
||||
|
||||
4. Select appropriate labels from the available labels list provided above:
|
||||
- Choose labels that accurately reflect the issue's nature
|
||||
- Be specific but comprehensive
|
||||
- Select priority labels if you can determine urgency (high-priority, med-priority, or low-priority)
|
||||
- Consider platform labels (android, ios) if applicable
|
||||
- If you find similar issues using mcp__github__search_issues, consider using a "duplicate" label if appropriate. Only do so if the issue is a duplicate of another OPEN issue.
|
||||
|
||||
5. Apply the selected labels:
|
||||
- Use mcp__github__update_issue to apply your selected labels
|
||||
- DO NOT post any comments explaining your decision
|
||||
- DO NOT communicate directly with users
|
||||
- If no labels are clearly applicable, do not apply any labels
|
||||
|
||||
IMPORTANT GUIDELINES:
|
||||
- Be thorough in your analysis
|
||||
- Only select labels from the provided list above
|
||||
- DO NOT post any comments to the issue
|
||||
- Your ONLY action should be to apply labels using mcp__github__update_issue
|
||||
- It's okay to not add any labels if none are clearly applicable
|
||||
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
|
||||
mcp_config: /tmp/mcp-config/mcp-servers.json
|
||||
claude_args: "--model claude-sonnet-4-5-20250929"
|
||||
claude_env: |
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
claude_args: |
|
||||
--model claude-sonnet-4-5-20250929
|
||||
--mcp-config /tmp/mcp-config/mcp-servers.json
|
||||
--allowedTools "Bash(gh label list),mcp__github__get_issue,mcp__github__get_issue_comments,mcp__github__update_issue,mcp__github__search_issues,mcp__github__list_issues"
|
||||
|
||||
2
.github/workflows/claude.yml
vendored
2
.github/workflows/claude.yml
vendored
@@ -31,7 +31,7 @@ jobs:
|
||||
|
||||
- name: Run Claude Code
|
||||
id: claude
|
||||
uses: anthropics/claude-code-action@beta
|
||||
uses: anthropics/claude-code-action@v1
|
||||
with:
|
||||
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
|
||||
claude_args: "--model claude-sonnet-4-5-20250929"
|
||||
|
||||
138
.github/workflows/oncall-triage.yml
vendored
138
.github/workflows/oncall-triage.yml
vendored
@@ -16,74 +16,12 @@ jobs:
|
||||
permissions:
|
||||
contents: read
|
||||
issues: write
|
||||
id-token: write
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Create oncall triage prompt
|
||||
run: |
|
||||
mkdir -p /tmp/claude-prompts
|
||||
cat > /tmp/claude-prompts/oncall-triage-prompt.txt << 'EOF'
|
||||
You're an oncall triage assistant for GitHub issues. Your task is to identify critical issues that require immediate oncall attention.
|
||||
|
||||
Important: Don't post any comments or messages to the issues. Your only action should be to apply the "oncall" label to qualifying issues.
|
||||
|
||||
Repository: ${{ github.repository }}
|
||||
|
||||
Task overview:
|
||||
1. Fetch all open issues updated in the last 3 days:
|
||||
- Use mcp__github__list_issues with:
|
||||
- state="open"
|
||||
- first=5 (fetch only 5 issues per page)
|
||||
- orderBy="UPDATED_AT"
|
||||
- direction="DESC"
|
||||
- This will give you the most recently updated issues first
|
||||
- For each page of results, check the updatedAt timestamp of each issue
|
||||
- Add issues updated within the last 3 days (72 hours) to your TODO list as you go
|
||||
- Keep paginating using the 'after' parameter until you encounter issues older than 3 days
|
||||
- Once you hit issues older than 3 days, you can stop fetching (no need to fetch all open issues)
|
||||
|
||||
2. Build your TODO list incrementally as you fetch:
|
||||
- As you fetch each page, immediately add qualifying issues to your TODO list
|
||||
- One TODO item per issue number (e.g., "Evaluate issue #123")
|
||||
- This allows you to start processing while still fetching more pages
|
||||
|
||||
3. For each issue in your TODO list:
|
||||
- Use mcp__github__get_issue to read the issue details (title, body, labels)
|
||||
- Use mcp__github__get_issue_comments to read all comments
|
||||
- Evaluate whether this issue needs the oncall label:
|
||||
a) Is it a bug? (has "bug" label or describes bug behavior)
|
||||
b) Does it have at least 50 engagements? (count comments + reactions)
|
||||
c) Is it truly blocking? Read and understand the full content to determine:
|
||||
- Does this prevent core functionality from working?
|
||||
- Can users work around it?
|
||||
- Consider severity indicators: "crash", "stuck", "frozen", "hang", "unresponsive", "cannot use", "blocked", "broken"
|
||||
- Be conservative - only flag issues that truly prevent users from getting work done
|
||||
|
||||
4. For issues that meet all criteria and do not already have the "oncall" label:
|
||||
- Use mcp__github__update_issue to add the "oncall" label
|
||||
- Do not post any comments
|
||||
- Do not remove any existing labels
|
||||
- Do not remove the "oncall" label from issues that already have it
|
||||
|
||||
Important guidelines:
|
||||
- Use the TODO list to track your progress through ALL candidate issues
|
||||
- Process issues efficiently - don't read every single issue upfront, work through your TODO list systematically
|
||||
- Be conservative in your assessment - only flag truly critical blocking issues
|
||||
- Do not post any comments to issues
|
||||
- Your only action should be to add the "oncall" label using mcp__github__update_issue
|
||||
- Mark each issue as complete in your TODO list as you process it
|
||||
|
||||
7. After processing all issues in your TODO list, provide a summary of your actions:
|
||||
- Total number of issues processed (candidate issues evaluated)
|
||||
- Number of issues that received the "oncall" label
|
||||
- For each issue that got the label: list issue number, title, and brief reason why it qualified
|
||||
- Close calls: List any issues that almost qualified but didn't quite meet the criteria (e.g., borderline blocking, had workarounds)
|
||||
- If no issues qualified, state that clearly
|
||||
- Format the summary clearly for easy reading
|
||||
EOF
|
||||
|
||||
- name: Setup GitHub MCP Server
|
||||
run: |
|
||||
mkdir -p /tmp/mcp-config
|
||||
@@ -109,12 +47,72 @@ jobs:
|
||||
EOF
|
||||
|
||||
- name: Run Claude Code for Oncall Triage
|
||||
uses: anthropics/claude-code-base-action@beta
|
||||
timeout-minutes: 10
|
||||
uses: anthropics/claude-code-action@v1
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
prompt_file: /tmp/claude-prompts/oncall-triage-prompt.txt
|
||||
allowed_tools: "mcp__github__list_issues,mcp__github__get_issue,mcp__github__get_issue_comments,mcp__github__update_issue"
|
||||
timeout_minutes: "10"
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
allowed_non_write_users: "*"
|
||||
prompt: |
|
||||
You're an oncall triage assistant for GitHub issues. Your task is to identify critical issues that require immediate oncall attention.
|
||||
|
||||
Important: Don't post any comments or messages to the issues. Your only action should be to apply the "oncall" label to qualifying issues.
|
||||
|
||||
Repository: ${{ github.repository }}
|
||||
|
||||
Task overview:
|
||||
1. Fetch all open issues updated in the last 3 days:
|
||||
- Use mcp__github__list_issues with:
|
||||
- state="open"
|
||||
- first=5 (fetch only 5 issues per page)
|
||||
- orderBy="UPDATED_AT"
|
||||
- direction="DESC"
|
||||
- This will give you the most recently updated issues first
|
||||
- For each page of results, check the updatedAt timestamp of each issue
|
||||
- Add issues updated within the last 3 days (72 hours) to your TODO list as you go
|
||||
- Keep paginating using the 'after' parameter until you encounter issues older than 3 days
|
||||
- Once you hit issues older than 3 days, you can stop fetching (no need to fetch all open issues)
|
||||
|
||||
2. Build your TODO list incrementally as you fetch:
|
||||
- As you fetch each page, immediately add qualifying issues to your TODO list
|
||||
- One TODO item per issue number (e.g., "Evaluate issue #123")
|
||||
- This allows you to start processing while still fetching more pages
|
||||
|
||||
3. For each issue in your TODO list:
|
||||
- Use mcp__github__get_issue to read the issue details (title, body, labels)
|
||||
- Use mcp__github__get_issue_comments to read all comments
|
||||
- Evaluate whether this issue needs the oncall label:
|
||||
a) Is it a bug? (has "bug" label or describes bug behavior)
|
||||
b) Does it have at least 50 engagements? (count comments + reactions)
|
||||
c) Is it truly blocking? Read and understand the full content to determine:
|
||||
- Does this prevent core functionality from working?
|
||||
- Can users work around it?
|
||||
- Consider severity indicators: "crash", "stuck", "frozen", "hang", "unresponsive", "cannot use", "blocked", "broken"
|
||||
- Be conservative - only flag issues that truly prevent users from getting work done
|
||||
|
||||
4. For issues that meet all criteria and do not already have the "oncall" label:
|
||||
- Use mcp__github__update_issue to add the "oncall" label
|
||||
- Do not post any comments
|
||||
- Do not remove any existing labels
|
||||
- Do not remove the "oncall" label from issues that already have it
|
||||
|
||||
Important guidelines:
|
||||
- Use the TODO list to track your progress through ALL candidate issues
|
||||
- Process issues efficiently - don't read every single issue upfront, work through your TODO list systematically
|
||||
- Be conservative in your assessment - only flag truly critical blocking issues
|
||||
- Do not post any comments to issues
|
||||
- Your only action should be to add the "oncall" label using mcp__github__update_issue
|
||||
- Mark each issue as complete in your TODO list as you process it
|
||||
|
||||
7. After processing all issues in your TODO list, provide a summary of your actions:
|
||||
- Total number of issues processed (candidate issues evaluated)
|
||||
- Number of issues that received the "oncall" label
|
||||
- For each issue that got the label: list issue number, title, and brief reason why it qualified
|
||||
- Close calls: List any issues that almost qualified but didn't quite meet the criteria (e.g., borderline blocking, had workarounds)
|
||||
- If no issues qualified, state that clearly
|
||||
- Format the summary clearly for easy reading
|
||||
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
|
||||
mcp_config: /tmp/mcp-config/mcp-servers.json
|
||||
claude_env: |
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
claude_args: |
|
||||
--mcp-config /tmp/mcp-config/mcp-servers.json
|
||||
--allowedTools "mcp__github__list_issues,mcp__github__get_issue,mcp__github__get_issue_comments,mcp__github__update_issue"
|
||||
|
||||
113
CHANGELOG.md
113
CHANGELOG.md
@@ -1,6 +1,115 @@
|
||||
# Changelog
|
||||
|
||||
## 2.1.0 (2026-01-07)
|
||||
## 2.1.9
|
||||
|
||||
- Added `auto:N` syntax for configuring the MCP tool search auto-enable threshold, where N is the context window percentage (0-100)
|
||||
- Added `plansDirectory` setting to customize where plan files are stored
|
||||
- Added external editor support (Ctrl+G) in AskUserQuestion "Other" input field
|
||||
- Added session URL attribution to commits and PRs created from web sessions
|
||||
- Added support for `PreToolUse` hooks to return `additionalContext` to the model
|
||||
- Added `${CLAUDE_SESSION_ID}` string substitution for skills to access the current session ID
|
||||
- Fixed long sessions with parallel tool calls failing with an API error about orphan tool_result blocks
|
||||
- Fixed MCP server reconnection hanging when cached connection promise never resolves
|
||||
- Fixed Ctrl+Z suspend not working in terminals using Kitty keyboard protocol (Ghostty, iTerm2, kitty, WezTerm)
|
||||
|
||||
## 2.1.7
|
||||
|
||||
- Added customizable keyboard shortcuts via `~/.claude/keybindings.json`. Run `/keybindings` to get started. Learn more at https://code.claude.com/docs/en/keybindings
|
||||
- Added `showTurnDuration` setting to hide turn duration messages (e.g., "Cooked for 1m 6s")
|
||||
- Added ability to provide feedback when accepting permission prompts
|
||||
- Added inline display of agent's final response in task notifications, making it easier to see results without reading the full transcript file
|
||||
- Fixed security vulnerability where wildcard permission rules could match compound commands containing shell operators
|
||||
- Fixed false "file modified" errors on Windows when cloud sync tools, antivirus scanners, or Git touch file timestamps without changing content
|
||||
- Fixed orphaned tool_result errors when sibling tools fail during streaming execution
|
||||
- Fixed context window blocking limit being calculated using the full context window instead of the effective context window (which reserves space for max output tokens)
|
||||
- Fixed spinner briefly flashing when running local slash commands like `/model` or `/theme`
|
||||
- Fixed terminal title animation jitter by using fixed-width braille characters
|
||||
- Fixed plugins with git submodules not being fully initialized when installed
|
||||
- Fixed bash commands failing on Windows when temp directory paths contained characters like `t` or `n` that were misinterpreted as escape sequences
|
||||
- Improved typing responsiveness by reducing memory allocation overhead in terminal rendering
|
||||
- Enabled MCP tool search auto mode by default for all users. When MCP tool descriptions exceed 10% of the context window, they are automatically deferred and discovered via the MCPSearch tool instead of being loaded upfront. This reduces context usage for users with many MCP tools configured. Users can disable this by adding `MCPSearch` to `disallowedTools` in their settings.
|
||||
- Changed OAuth and API Console URLs from console.anthropic.com to platform.claude.com
|
||||
- [VSCode] Fixed `claudeProcessWrapper` setting passing the wrapper path instead of the Claude binary path
|
||||
|
||||
## 2.1.6
|
||||
|
||||
- Added search functionality to `/config` command for quickly filtering settings
|
||||
- Added Updates section to `/doctor` showing auto-update channel and available npm versions (stable/latest)
|
||||
- Added date range filtering to `/stats` command - press `r` to cycle between Last 7 days, Last 30 days, and All time
|
||||
- Added automatic discovery of skills from nested `.claude/skills` directories when working with files in subdirectories
|
||||
- Added `context_window.used_percentage` and `context_window.remaining_percentage` fields to status line input for easier context window display
|
||||
- Added an error display when the editor fails during Ctrl+G
|
||||
- Fixed permission bypass via shell line continuation that could allow blocked commands to execute
|
||||
- Fixed false "File has been unexpectedly modified" errors when file watchers touch files without changing content
|
||||
- Fixed text styling (bold, colors) getting progressively misaligned in multi-line responses
|
||||
- Fixed the feedback panel closing unexpectedly when typing 'n' in the description field
|
||||
- Fixed rate limit warning appearing at low usage after weekly reset (now requires 70% usage)
|
||||
- Fixed rate limit options menu incorrectly auto-opening when resuming a previous session
|
||||
- Fixed numpad keys outputting escape sequences instead of characters in Kitty keyboard protocol terminals
|
||||
- Fixed Option+Return not inserting newlines in Kitty keyboard protocol terminals
|
||||
- Fixed corrupted config backup files accumulating in the home directory (now only one backup is created per config file)
|
||||
- Fixed `mcp list` and `mcp get` commands leaving orphaned MCP server processes
|
||||
- Fixed visual artifacts in ink2 mode when nodes become hidden via `display:none`
|
||||
- Improved the external CLAUDE.md imports approval dialog to show which files are being imported and from where
|
||||
- Improved the `/tasks` dialog to go directly to task details when there's only one background task running
|
||||
- Improved @ autocomplete with icons for different suggestion types and single-line formatting
|
||||
- Updated "Help improve Claude" setting fetch to refresh OAuth and retry when it fails due to a stale OAuth token
|
||||
- Changed task notification display to cap at 3 lines with overflow summary when multiple background tasks complete simultaneously
|
||||
- Changed terminal title to "Claude Code" on startup for better window identification
|
||||
- Removed ability to @-mention MCP servers to enable/disable - use `/mcp enable <name>` instead
|
||||
- [VSCode] Fixed usage indicator not updating after manual compact
|
||||
|
||||
## 2.1.5
|
||||
|
||||
- Added `CLAUDE_CODE_TMPDIR` environment variable to override the temp directory used for internal temp files, useful for environments with custom temp directory requirements
|
||||
|
||||
## 2.1.4
|
||||
|
||||
- Added `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` environment variable to disable all background task functionality including auto-backgrounding and the Ctrl+B shortcut
|
||||
- Fixed "Help improve Claude" setting fetch to refresh OAuth and retry when it fails due to a stale OAuth token
|
||||
|
||||
## 2.1.3
|
||||
|
||||
- Merged slash commands and skills, simplifying the mental model with no change in behavior
|
||||
- Added release channel (`stable` or `latest`) toggle to `/config`
|
||||
- Added detection and warnings for unreachable permission rules, with warnings in `/doctor` and after saving rules that include the source of each rule and actionable fix guidance
|
||||
- Fixed plan files persisting across `/clear` commands, now ensuring a fresh plan file is used after clearing a conversation
|
||||
- Fixed false skill duplicate detection on filesystems with large inodes (e.g., ExFAT) by using 64-bit precision for inode values
|
||||
- Fixed mismatch between background task count in status bar and items shown in tasks dialog
|
||||
- Fixed sub-agents using the wrong model during conversation compaction
|
||||
- Fixed web search in sub-agents using incorrect model
|
||||
- Fixed trust dialog acceptance when running from the home directory not enabling trust-requiring features like hooks during the session
|
||||
- Improved terminal rendering stability by preventing uncontrolled writes from corrupting cursor state
|
||||
- Improved slash command suggestion readability by truncating long descriptions to 2 lines
|
||||
- Changed tool hook execution timeout from 60 seconds to 10 minutes
|
||||
- [VSCode] Added clickable destination selector for permission requests, allowing you to choose where settings are saved (this project, all projects, shared with team, or session only)
|
||||
|
||||
## 2.1.2
|
||||
|
||||
- Added source path metadata to images dragged onto the terminal, helping Claude understand where images originated
|
||||
- Added clickable hyperlinks for file paths in tool output in terminals that support OSC 8 (like iTerm)
|
||||
- Added support for Windows Package Manager (winget) installations with automatic detection and update instructions
|
||||
- Added Shift+Tab keyboard shortcut in plan mode to quickly select "auto-accept edits" option
|
||||
- Added `FORCE_AUTOUPDATE_PLUGINS` environment variable to allow plugin autoupdate even when the main auto-updater is disabled
|
||||
- Added `agent_type` to SessionStart hook input, populated if `--agent` is specified
|
||||
- Fixed a command injection vulnerability in bash command processing where malformed input could execute arbitrary commands
|
||||
- Fixed a memory leak where tree-sitter parse trees were not being freed, causing WASM memory to grow unbounded over long sessions
|
||||
- Fixed binary files (images, PDFs, etc.) being accidentally included in memory when using `@include` directives in CLAUDE.md files
|
||||
- Fixed updates incorrectly claiming another installation is in progress
|
||||
- Fixed crash when socket files exist in watched directories (defense-in-depth for EOPNOTSUPP errors)
|
||||
- Fixed remote session URL and teleport being broken when using `/tasks` command
|
||||
- Fixed MCP tool names being exposed in analytics events by sanitizing user-specific server configurations
|
||||
- Improved Option-as-Meta hint on macOS to show terminal-specific instructions for native CSIu terminals like iTerm2, Kitty, and WezTerm
|
||||
- Improved error message when pasting images over SSH to suggest using `scp` instead of the unhelpful clipboard shortcut hint
|
||||
- Improved permission explainer to not flag routine dev workflows (git fetch/rebase, npm install, tests, PRs) as medium risk
|
||||
- Changed large bash command outputs to be saved to disk instead of truncated, allowing Claude to read the full content
|
||||
- Changed large tool outputs to be persisted to disk instead of truncated, providing full output access via file references
|
||||
- Changed `/plugins` installed tab to unify plugins and MCPs with scope-based grouping
|
||||
- Deprecated Windows managed settings path `C:\ProgramData\ClaudeCode\managed-settings.json` - administrators should migrate to `C:\Program Files\ClaudeCode\managed-settings.json`
|
||||
- [SDK] Changed minimum zod peer dependency to ^4.0.0
|
||||
- [VSCode] Fixed usage display not updating after manual compact
|
||||
|
||||
## 2.1.0
|
||||
|
||||
- Added automatic skill hot-reload - skills created or modified in `~/.claude/skills` or `.claude/skills` are now immediately available without restarting the session
|
||||
- Added support for running skills and slash commands in a forked sub-agent context using `context: fork` in skill frontmatter
|
||||
@@ -8,7 +117,7 @@
|
||||
- Added `language` setting to configure Claude's response language (e.g., language: "japanese")
|
||||
- Changed Shift+Enter to work out of the box in iTerm2, WezTerm, Ghostty, and Kitty without modifying terminal configs
|
||||
- Added `respectGitignore` support in `settings.json` for per-project control over @-mention file picker behavior
|
||||
- Added `CLAUDE_CODE_HIDE_ACCOUNT_INFO` environment variable to hide email and organization from the UI, useful for streaming or recording sessions
|
||||
- Added `IS_DEMO` environment variable to hide email and organization from the UI, useful for streaming or recording sessions
|
||||
- Fixed security issue where sensitive data (OAuth tokens, API keys, passwords) could be exposed in debug logs
|
||||
- Fixed files and skills not being properly discovered when resuming sessions with `-c` or `--resume`
|
||||
- Fixed pasted content being lost when replaying prompts from history using up arrow or Ctrl+R search
|
||||
|
||||
41
README.md
41
README.md
@@ -11,30 +11,37 @@ Claude Code is an agentic coding tool that lives in your terminal, understands y
|
||||
<img src="./demo.gif" />
|
||||
|
||||
## Get started
|
||||
> [!NOTE]
|
||||
> Installation via npm is deprecated. Use one of the recommended methods below.
|
||||
|
||||
For more installation options, uninstall steps, and troubleshooting, see the [setup documentation](https://code.claude.com/docs/en/setup).
|
||||
|
||||
1. Install Claude Code:
|
||||
|
||||
**MacOS/Linux:**
|
||||
```bash
|
||||
curl -fsSL https://claude.ai/install.sh | bash
|
||||
```
|
||||
**MacOS/Linux (Recommended):**
|
||||
```bash
|
||||
curl -fsSL https://claude.ai/install.sh | bash
|
||||
```
|
||||
|
||||
**Homebrew (MacOS):**
|
||||
```bash
|
||||
brew install --cask claude-code
|
||||
```
|
||||
**Homebrew (MacOS/Linux):**
|
||||
```bash
|
||||
brew install --cask claude-code
|
||||
```
|
||||
|
||||
**Windows:**
|
||||
```powershell
|
||||
irm https://claude.ai/install.ps1 | iex
|
||||
```
|
||||
**Windows (Recommended):**
|
||||
```powershell
|
||||
irm https://claude.ai/install.ps1 | iex
|
||||
```
|
||||
|
||||
**NPM:**
|
||||
```bash
|
||||
npm install -g @anthropic-ai/claude-code
|
||||
```
|
||||
**WinGet (Windows):**
|
||||
```powershell
|
||||
winget install Anthropic.ClaudeCode
|
||||
```
|
||||
|
||||
NOTE: If installing with NPM, you also need to install [Node.js 18+](https://nodejs.org/en/download/)
|
||||
**NPM (Deprecated):**
|
||||
```bash
|
||||
npm install -g @anthropic-ai/claude-code
|
||||
```
|
||||
|
||||
2. Navigate to your project directory and run `claude`.
|
||||
|
||||
|
||||
@@ -5,6 +5,10 @@ description: Code review a pull request
|
||||
|
||||
Provide a code review for the given pull request.
|
||||
|
||||
**Agent assumptions (applies to all agents and subagents):**
|
||||
- All tools are functional and will work without error. Do not test tools or make exploratory calls. Make sure this is clear to every subagent that is launched.
|
||||
- Only call a tool if it is required to complete the task. Every tool call should have a clear purpose.
|
||||
|
||||
To do this, follow these steps precisely:
|
||||
|
||||
1. Launch a haiku agent to check if any of the following are true:
|
||||
@@ -34,15 +38,15 @@ Note: Still review Claude generated PR's.
|
||||
Agent 4: Opus bug agent (parallel subagent with agent 3)
|
||||
Look for problems that exist in the introduced code. This could be security issues, incorrect logic, etc. Only look for issues that fall within the changed code.
|
||||
|
||||
**CRITICAL: We only want HIGH SIGNAL issues.** This means:
|
||||
- Objective bugs that will cause incorrect behavior at runtime
|
||||
**CRITICAL: We only want HIGH SIGNAL issues.** Flag issues where:
|
||||
- The code will fail to compile or parse (syntax errors, type errors, missing imports, unresolved references)
|
||||
- The code will definitely produce wrong results regardless of inputs (clear logic errors)
|
||||
- Clear, unambiguous CLAUDE.md violations where you can quote the exact rule being broken
|
||||
|
||||
We do NOT want:
|
||||
- Subjective concerns or "suggestions"
|
||||
- Style preferences not explicitly required by CLAUDE.md
|
||||
- Potential issues that "might" be problems
|
||||
- Anything requiring interpretation or judgment calls
|
||||
Do NOT flag:
|
||||
- Code style or quality concerns
|
||||
- Potential issues that depend on specific inputs or state
|
||||
- Subjective suggestions or improvements
|
||||
|
||||
If you are not certain an issue is real, do not flag it. False positives erode trust and waste reviewer time.
|
||||
|
||||
@@ -57,23 +61,13 @@ Note: Still review Claude generated PR's.
|
||||
If NO issues were found, post a summary comment using `gh pr comment` (if `--comment` argument is provided):
|
||||
"No issues found. Checked for bugs and CLAUDE.md compliance."
|
||||
|
||||
8. Post inline comments for each issue using `mcp__github_inline_comment__create_inline_comment`:
|
||||
- `path`: the file path
|
||||
- `line` (and `startLine` for ranges): select the buggy lines so the user sees them
|
||||
- `body`: Brief description of the issue (no "Bug:" prefix). For small fixes (up to 5 lines changed), include a committable suggestion:
|
||||
```suggestion
|
||||
corrected code here
|
||||
```
|
||||
8. Create a list of all comments that you plan on leaving. This is only for you to make sure you are comfortable with the comments. Do not post this list anywhere.
|
||||
|
||||
**Suggestions must be COMPLETE.** If a fix requires additional changes elsewhere (e.g., renaming a variable requires updating all usages), do NOT use a suggestion block. The author should be able to click "Commit suggestion" and have a working fix - no followup work required.
|
||||
|
||||
For larger fixes (6+ lines, structural changes, or changes spanning multiple locations), do NOT use suggestion blocks. Instead:
|
||||
1. Describe what the issue is
|
||||
2. Explain the suggested fix at a high level
|
||||
3. Include a copyable prompt for Claude Code that the user can use to fix the issue, formatted as:
|
||||
```
|
||||
Fix [file:line]: [brief description of issue and suggested fix]
|
||||
```
|
||||
9. Post inline comments for each issue using `mcp__github_inline_comment__create_inline_comment`. For each comment:
|
||||
- Provide a brief description of the issue
|
||||
- For small, self-contained fixes, include a committable suggestion block
|
||||
- For larger fixes (6+ lines, structural changes, or changes spanning multiple locations), describe the issue and suggested fix without a suggestion block
|
||||
- Never post a committable suggestion UNLESS committing the suggestion fixes the issue entirely. If follow up steps are required, do not leave a committable suggestion.
|
||||
|
||||
**IMPORTANT: Only post ONE comment per unique issue. Do not post duplicate comments.**
|
||||
|
||||
|
||||
Reference in New Issue
Block a user