From ffaf182e7747ea0e03bcf356321ea5f936196e9a Mon Sep 17 00:00:00 2001 From: Mitesh Ashar Date: Sun, 1 Mar 2026 14:31:13 +0530 Subject: [PATCH] feat(claude-code-settings): sync to Claude Code v2.1.63 (#5421) Co-authored-by: domdomegg --- src/schemas/json/claude-code-settings.json | 86 ++++++++++++++++++- .../claude-code-settings/hooks-complete.json | 10 +++ .../modern-complete-config.json | 16 ++++ 3 files changed, 108 insertions(+), 4 deletions(-) diff --git a/src/schemas/json/claude-code-settings.json b/src/schemas/json/claude-code-settings.json index 173b9e72358..5e380813cdb 100644 --- a/src/schemas/json/claude-code-settings.json +++ b/src/schemas/json/claude-code-settings.json @@ -121,6 +121,48 @@ "description": "Custom spinner message displayed while the hook runs" } } + }, + { + "type": "object", + "description": "HTTP webhook hook. POST JSON to a URL and receive JSON response. See https://code.claude.com/docs/en/hooks#http-hooks", + "additionalProperties": false, + "required": ["type", "url"], + "properties": { + "type": { + "type": "string", + "description": "Hook type", + "const": "http" + }, + "url": { + "type": "string", + "description": "URL to POST hook input JSON to. Endpoint must accept POST requests and return JSON.", + "minLength": 1 + }, + "headers": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Custom HTTP headers (e.g., Authorization: Bearer token). Values support $VAR_NAME or ${VAR_NAME} interpolation." + }, + "allowedEnvVars": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + }, + "description": "List of environment variable names permitted for interpolation in headers. If not set, no env var interpolation is allowed." + }, + "timeout": { + "type": "number", + "description": "Optional timeout in seconds (default: 30)", + "exclusiveMinimum": 0 + }, + "statusMessage": { + "type": "string", + "description": "Custom spinner message displayed while the hook runs" + } + } } ] }, @@ -159,10 +201,15 @@ "examples": ["/bin/generate_temp_api_key.sh"], "minLength": 1 }, + "autoMemoryEnabled": { + "type": "boolean", + "description": "Enable automatic memory saves that capture useful context to .claude/memory/. Also configurable via CLAUDE_CODE_DISABLE_AUTO_MEMORY environment variable (set to 1 to disable, 0 to enable). See https://code.claude.com/docs/en/memory#auto-memory", + "default": true + }, "autoUpdatesChannel": { "type": "string", "enum": ["stable", "latest"], - "description": "Release channel to follow for updates. Use \"stable\" for a version that is typically about one week old and skips versions with major regressions, or \"latest\" (default) for the most recent release", + "description": "Release channel to follow for updates. Use \"stable\" for a version that is typically about one week old and skips versions with major regressions, or \"latest\" (default) for the most recent release. Set DISABLE_AUTOUPDATER=1 to disable updates entirely.", "default": "latest" }, "awsCredentialExport": { @@ -187,7 +234,7 @@ "env": { "type": "object", "additionalProperties": false, - "description": "Environment variables to set for Claude Code sessions. See https://code.claude.com/docs/en/model-config#environment-variables for notable variables like CLAUDE_CODE_DISABLE_1M_CONTEXT (disables 1M token context window variants)", + "description": "Environment variables to set for Claude Code sessions. Many environment variables provide settings dimensions not available as dedicated settings.json properties (e.g., thinking tokens, prompt caching, bash timeouts, shell configuration). See https://code.claude.com/docs/en/settings#environment-variables for the full list.\nUNDOCUMENTED: CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS (plugin marketplace git timeout in ms, default 120000, see https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2151).\nUNDOCUMENTED: ENABLE_CLAUDEAI_MCP_SERVERS (set to false to opt out of claude.ai MCP servers, see https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2163).", "examples": [ { "ANTHROPIC_MODEL": "claude-opus-4-1", @@ -306,7 +353,7 @@ }, "model": { "type": "string", - "description": "Override the default model used by Claude Code. See https://code.claude.com/docs/en/model-config" + "description": "Override the default model used by Claude Code. For finer control, use environment variables: ANTHROPIC_MODEL (runtime override), ANTHROPIC_DEFAULT_OPUS_MODEL, ANTHROPIC_DEFAULT_SONNET_MODEL, ANTHROPIC_DEFAULT_HAIKU_MODEL (per-class pinning), CLAUDE_CODE_SUBAGENT_MODEL (subagent model). See https://code.claude.com/docs/en/model-config" }, "availableModels": { "type": "array", @@ -319,7 +366,7 @@ "effortLevel": { "type": "string", "enum": ["low", "medium", "high"], - "description": "Control Opus 4.6 adaptive reasoning effort. Lower effort is faster and cheaper for straightforward tasks, higher effort provides deeper reasoning. See https://code.claude.com/docs/en/model-config#adjust-effort-level", + "description": "Control Opus 4.6 adaptive reasoning effort. Lower effort is faster and cheaper for straightforward tasks, higher effort provides deeper reasoning. Also configurable via CLAUDE_CODE_EFFORT_LEVEL environment variable. See https://code.claude.com/docs/en/model-config#adjust-effort-level", "default": "high" }, "fastMode": { @@ -1098,6 +1145,37 @@ "enabled": { "type": "boolean", "description": "Enable sandboxed bash" + }, + "filesystem": { + "type": "object", + "description": "Filesystem access control for sandboxed commands. See https://code.claude.com/docs/en/sandboxing#filesystem-isolation", + "properties": { + "allowWrite": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + }, + "description": "Paths where subprocesses are allowed to write. Supports prefixes: // (absolute), ~/ (home directory), / (relative to settings file), ./ or no prefix (relative path)" + }, + "denyWrite": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + }, + "description": "Paths where subprocesses are explicitly denied write access. Takes precedence over allowWrite" + }, + "denyRead": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + }, + "description": "Paths where subprocesses are explicitly denied read access" + } + }, + "additionalProperties": false } }, "additionalProperties": false diff --git a/src/test/claude-code-settings/hooks-complete.json b/src/test/claude-code-settings/hooks-complete.json index 8afd3cda77b..9004530a524 100644 --- a/src/test/claude-code-settings/hooks-complete.json +++ b/src/test/claude-code-settings/hooks-complete.json @@ -17,6 +17,16 @@ { "command": "osascript -e 'display notification \"Claude task complete\" with title \"Claude Code\"'", "type": "command" + }, + { + "allowedEnvVars": ["WEBHOOK_SECRET"], + "headers": { + "X-Hook-Secret": "$WEBHOOK_SECRET" + }, + "statusMessage": "Sending notification webhook", + "timeout": 15, + "type": "http", + "url": "http://localhost:8080/hooks/notification" } ] } diff --git a/src/test/claude-code-settings/modern-complete-config.json b/src/test/claude-code-settings/modern-complete-config.json index 3f5c83e9a03..8f357397f30 100644 --- a/src/test/claude-code-settings/modern-complete-config.json +++ b/src/test/claude-code-settings/modern-complete-config.json @@ -8,6 +8,7 @@ "commit": "Generated with AI\n\nCo-Authored-By: AI ", "pr": "" }, + "autoMemoryEnabled": false, "autoUpdatesChannel": "latest", "availableModels": ["sonnet", "haiku"], "awsAuthRefresh": "aws sso login --profile myprofile", @@ -93,6 +94,16 @@ "command": "osascript -e 'display notification \"Task completed\" with title \"Claude Code\"'", "timeout": 3, "type": "command" + }, + { + "allowedEnvVars": ["HOOK_TOKEN"], + "headers": { + "Authorization": "Bearer $HOOK_TOKEN" + }, + "statusMessage": "Notifying webhook", + "timeout": 10, + "type": "http", + "url": "https://hooks.example.com/session-end" } ] } @@ -166,6 +177,11 @@ "enableWeakerNestedSandbox": false, "enabled": true, "excludedCommands": ["docker", "git"], + "filesystem": { + "allowWrite": ["~/.kube", "//tmp/build"], + "denyRead": ["~/.ssh/id_rsa"], + "denyWrite": ["//etc", "//usr"] + }, "network": { "allowAllUnixSockets": false, "allowLocalBinding": true,