mirror of
https://github.com/anthropics/claude-code.git
synced 2026-04-25 22:42:41 +00:00
Compare commits
25 Commits
docs/updat
...
kurt/setti
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4936302293 | ||
|
|
43d0eac708 | ||
|
|
90c07d1c7e | ||
|
|
f93f614768 | ||
|
|
74cc597eb5 | ||
|
|
923d727492 | ||
|
|
fb3a947cb5 | ||
|
|
2961ddcafe | ||
|
|
fd8f3801b9 | ||
|
|
26315247e7 | ||
|
|
5a91286a82 | ||
|
|
3196f36cee | ||
|
|
7d22b6e167 | ||
|
|
19a829ba68 | ||
|
|
18979efb8d | ||
|
|
f77acdf149 | ||
|
|
c13cf781ef | ||
|
|
cc70d3ab50 | ||
|
|
250b257c4e | ||
|
|
dec754edc9 | ||
|
|
6a2936ab79 | ||
|
|
f860f671dc | ||
|
|
76df7eea04 | ||
|
|
a8d107f9cc | ||
|
|
495d6a3d4b |
5
.github/workflows/claude-dedupe-issues.yml
vendored
5
.github/workflows/claude-dedupe-issues.yml
vendored
@@ -17,16 +17,19 @@ 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@v1
|
||||
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"
|
||||
|
||||
69
.github/workflows/claude-issue-triage.yml
vendored
69
.github/workflows/claude-issue-triage.yml
vendored
@@ -11,15 +11,45 @@ jobs:
|
||||
permissions:
|
||||
contents: read
|
||||
issues: write
|
||||
id-token: write
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Create triage prompt
|
||||
- name: Setup GitHub MCP Server
|
||||
run: |
|
||||
mkdir -p /tmp/claude-prompts
|
||||
cat > /tmp/claude-prompts/triage-prompt.txt << 'EOF'
|
||||
mkdir -p /tmp/mcp-config
|
||||
cat > /tmp/mcp-config/mcp-servers.json << 'EOF'
|
||||
{
|
||||
"mcpServers": {
|
||||
"github": {
|
||||
"command": "docker",
|
||||
"args": [
|
||||
"run",
|
||||
"-i",
|
||||
"--rm",
|
||||
"-e",
|
||||
"GITHUB_PERSONAL_ACCESS_TOKEN",
|
||||
"ghcr.io/github/github-mcp-server:sha-7aced2b"
|
||||
],
|
||||
"env": {
|
||||
"GITHUB_PERSONAL_ACCESS_TOKEN": "${{ secrets.GITHUB_TOKEN }}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
EOF
|
||||
|
||||
- name: Run Claude Code for Issue Triage
|
||||
timeout-minutes: 5
|
||||
uses: anthropics/claude-code-action@v1
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
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.
|
||||
@@ -68,39 +98,6 @@ jobs:
|
||||
- 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
|
||||
cat > /tmp/mcp-config/mcp-servers.json << 'EOF'
|
||||
{
|
||||
"mcpServers": {
|
||||
"github": {
|
||||
"command": "docker",
|
||||
"args": [
|
||||
"run",
|
||||
"-i",
|
||||
"--rm",
|
||||
"-e",
|
||||
"GITHUB_PERSONAL_ACCESS_TOKEN",
|
||||
"ghcr.io/github/github-mcp-server:sha-7aced2b"
|
||||
],
|
||||
"env": {
|
||||
"GITHUB_PERSONAL_ACCESS_TOKEN": "${{ secrets.GITHUB_TOKEN }}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
EOF
|
||||
|
||||
- name: Run Claude Code for Issue Triage
|
||||
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
|
||||
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
|
||||
claude_args: |
|
||||
--model claude-sonnet-4-5-20250929
|
||||
|
||||
69
.github/workflows/oncall-triage.yml
vendored
69
.github/workflows/oncall-triage.yml
vendored
@@ -16,15 +16,45 @@ jobs:
|
||||
permissions:
|
||||
contents: read
|
||||
issues: write
|
||||
id-token: write
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Create oncall triage prompt
|
||||
- name: Setup GitHub MCP Server
|
||||
run: |
|
||||
mkdir -p /tmp/claude-prompts
|
||||
cat > /tmp/claude-prompts/oncall-triage-prompt.txt << 'EOF'
|
||||
mkdir -p /tmp/mcp-config
|
||||
cat > /tmp/mcp-config/mcp-servers.json << 'EOF'
|
||||
{
|
||||
"mcpServers": {
|
||||
"github": {
|
||||
"command": "docker",
|
||||
"args": [
|
||||
"run",
|
||||
"-i",
|
||||
"--rm",
|
||||
"-e",
|
||||
"GITHUB_PERSONAL_ACCESS_TOKEN",
|
||||
"ghcr.io/github/github-mcp-server:sha-7aced2b"
|
||||
],
|
||||
"env": {
|
||||
"GITHUB_PERSONAL_ACCESS_TOKEN": "${{ secrets.GITHUB_TOKEN }}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
EOF
|
||||
|
||||
- name: Run Claude Code for Oncall Triage
|
||||
timeout-minutes: 10
|
||||
uses: anthropics/claude-code-action@v1
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
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.
|
||||
@@ -82,39 +112,6 @@ jobs:
|
||||
- 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
|
||||
cat > /tmp/mcp-config/mcp-servers.json << 'EOF'
|
||||
{
|
||||
"mcpServers": {
|
||||
"github": {
|
||||
"command": "docker",
|
||||
"args": [
|
||||
"run",
|
||||
"-i",
|
||||
"--rm",
|
||||
"-e",
|
||||
"GITHUB_PERSONAL_ACCESS_TOKEN",
|
||||
"ghcr.io/github/github-mcp-server:sha-7aced2b"
|
||||
],
|
||||
"env": {
|
||||
"GITHUB_PERSONAL_ACCESS_TOKEN": "${{ secrets.GITHUB_TOKEN }}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
EOF
|
||||
|
||||
- name: Run Claude Code for Oncall Triage
|
||||
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
|
||||
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
|
||||
claude_args: |
|
||||
--mcp-config /tmp/mcp-config/mcp-servers.json
|
||||
|
||||
76
CHANGELOG.md
76
CHANGELOG.md
@@ -1,5 +1,81 @@
|
||||
# Changelog
|
||||
|
||||
## 2.1.12
|
||||
|
||||
- Fixed message rendering bug
|
||||
|
||||
## 2.1.11
|
||||
|
||||
- Fixed excessive MCP connection requests for HTTP/SSE transports
|
||||
|
||||
## 2.1.10
|
||||
|
||||
- Added new `Setup` hook event that can be triggered via `--init`, `--init-only`, or `--maintenance` CLI flags for repository setup and maintenance operations
|
||||
- Added keyboard shortcut 'c' to copy OAuth URL when browser doesn't open automatically during login
|
||||
- Fixed a crash when running bash commands containing heredocs with JavaScript template literals like `${index + 1}`
|
||||
- Improved startup to capture keystrokes typed before the REPL is fully ready
|
||||
- Improved file suggestions to show as removable attachments instead of inserting text when accepted
|
||||
- [VSCode] Added install count display to plugin listings
|
||||
- [VSCode] Added trust warning when installing plugins
|
||||
|
||||
## 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 `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
|
||||
|
||||
31
examples/settings/README.md
Normal file
31
examples/settings/README.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# Settings Examples
|
||||
|
||||
Example Claude Code settings files, primarily intended for organization-wide deployments. Use these are starting points — adjust them to fit your needs.
|
||||
|
||||
These may be applied at any level of the [settings hierarchy](https://code.claude.com/docs/en/settings#settings-files), though certain properties only take effect if specified in enterprise settings (e.g. `strictKnownMarketplaces`, `allowManagedHooksOnly`, `allowManagedPermissionRulesOnly`).
|
||||
|
||||
|
||||
## Configuration Examples
|
||||
|
||||
> [!WARNING]
|
||||
> These examples are community-maintained snippets which may be unsupported or incorrect. You are responsible for the correctness of your own settings configuration.
|
||||
|
||||
| Setting | [`settings-lax.json`](./settings-lax.json) | [`settings-strict.json`](./settings-strict.json) | [`settings-bash-sandbox.json`](./settings-bash-sandbox.json) |
|
||||
|---------|:---:|:---:|:---:|
|
||||
| Disable `--dangerously-skip-permissions` | ✅ | ✅ | |
|
||||
| Block plugin marketplaces | ✅ | ✅ | |
|
||||
| Block user and project-defined permission `allow` / `ask` / `deny` | | ✅ | ✅ |
|
||||
| Block user and project-defined hooks | | ✅ | |
|
||||
| Deny web fetch and search tools | | ✅ | |
|
||||
| Bash tool requires approval | | ✅ | |
|
||||
| Bash tool must run inside of sandbox | | | ✅ |
|
||||
|
||||
## Tips
|
||||
- Consider merging snippets of the above examples to reach your desired configuration
|
||||
- Settings files must be valid JSON
|
||||
- Before deploying configuration files to your organization, test them locally by applying to `managed-settings.json`, `settings.json` or `settings.local.json`
|
||||
- The `sandbox` property only applies to the `Bash` tool; it does not apply to other tools (like Read, Write, WebSearch, WebFetch, MCPs), hooks, or internal commands
|
||||
|
||||
## Full Documentation
|
||||
|
||||
See https://code.claude.com/docs/en/settings for complete documentation on all available managed settings.
|
||||
18
examples/settings/settings-bash-sandbox.json
Normal file
18
examples/settings/settings-bash-sandbox.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"allowManagedPermissionRulesOnly": true,
|
||||
"sandbox": {
|
||||
"enabled": true,
|
||||
"autoAllowBashIfSandboxed": false,
|
||||
"allowUnsandboxedCommands": false,
|
||||
"excludedCommands": [],
|
||||
"network": {
|
||||
"allowUnixSockets": [],
|
||||
"allowAllUnixSockets": false,
|
||||
"allowLocalBinding": false,
|
||||
"allowedDomains": [],
|
||||
"httpProxyPort": null,
|
||||
"socksProxyPort": null
|
||||
},
|
||||
"enableWeakerNestedSandbox": false
|
||||
}
|
||||
}
|
||||
6
examples/settings/settings-lax.json
Normal file
6
examples/settings/settings-lax.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"permissions": {
|
||||
"disableBypassPermissionsMode": "disable"
|
||||
},
|
||||
"strictKnownMarketplaces": []
|
||||
}
|
||||
28
examples/settings/settings-strict.json
Normal file
28
examples/settings/settings-strict.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"permissions": {
|
||||
"disableBypassPermissionsMode": "disable",
|
||||
"ask": [
|
||||
"Bash"
|
||||
],
|
||||
"deny": [
|
||||
"WebSearch",
|
||||
"WebFetch"
|
||||
]
|
||||
},
|
||||
"allowManagedPermissionRulesOnly": true,
|
||||
"allowManagedHooksOnly": true,
|
||||
"strictKnownMarketplaces": [],
|
||||
"sandbox": {
|
||||
"autoAllowBashIfSandboxed": false,
|
||||
"excludedCommands": [],
|
||||
"network": {
|
||||
"allowUnixSockets": [],
|
||||
"allowAllUnixSockets": false,
|
||||
"allowLocalBinding": false,
|
||||
"allowedDomains": [],
|
||||
"httpProxyPort": null,
|
||||
"socksProxyPort": null
|
||||
},
|
||||
"enableWeakerNestedSandbox": false
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,7 @@ 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.
|
||||
- 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:
|
||||
@@ -61,10 +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`. For each comment:
|
||||
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.
|
||||
|
||||
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