mirror of
https://github.com/anthropics/claude-code.git
synced 2026-02-19 04:27:33 -08:00
Compare commits
18 Commits
ThariqS-pa
...
v2.1.6
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f860f671dc | ||
|
|
76df7eea04 | ||
|
|
a8d107f9cc | ||
|
|
b640d94a49 | ||
|
|
b17c088cdc | ||
|
|
a856c62014 | ||
|
|
0359f24538 | ||
|
|
b8497141a5 | ||
|
|
9cc635aac1 | ||
|
|
4f18698a9e | ||
|
|
553d6ffc3e | ||
|
|
7b600bca3b | ||
|
|
4700be03eb | ||
|
|
9b08c1010b | ||
|
|
f34e2535b4 | ||
|
|
4297e57ef1 | ||
|
|
2c3884689b | ||
|
|
495d6a3d4b |
6
.github/workflows/claude-dedupe-issues.yml
vendored
6
.github/workflows/claude-dedupe-issues.yml
vendored
@@ -23,13 +23,13 @@ jobs:
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Run Claude Code slash command
|
||||
uses: anthropics/claude-code-base-action@beta
|
||||
uses: anthropics/claude-code-base-action@v1
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
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()
|
||||
|
||||
15
.github/workflows/claude-issue-triage.yml
vendored
15
.github/workflows/claude-issue-triage.yml
vendored
@@ -95,13 +95,14 @@ jobs:
|
||||
EOF
|
||||
|
||||
- name: Run Claude Code for Issue Triage
|
||||
uses: anthropics/claude-code-base-action@beta
|
||||
timeout-minutes: 5
|
||||
uses: anthropics/claude-code-base-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"
|
||||
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"
|
||||
|
||||
13
.github/workflows/oncall-triage.yml
vendored
13
.github/workflows/oncall-triage.yml
vendored
@@ -109,12 +109,13 @@ jobs:
|
||||
EOF
|
||||
|
||||
- name: Run Claude Code for Oncall Triage
|
||||
uses: anthropics/claude-code-base-action@beta
|
||||
timeout-minutes: 10
|
||||
uses: anthropics/claude-code-base-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"
|
||||
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"
|
||||
|
||||
78
CHANGELOG.md
78
CHANGELOG.md
@@ -1,5 +1,83 @@
|
||||
# Changelog
|
||||
|
||||
## 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
|
||||
|
||||
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.
|
||||
- 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,10 @@ 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
|
||||
```
|
||||
|
||||
**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]
|
||||
```
|
||||
8. 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
|
||||
|
||||
**IMPORTANT: Only post ONE comment per unique issue. Do not post duplicate comments.**
|
||||
|
||||
|
||||
Reference in New Issue
Block a user