feat(claude-code-settings): sync to Claude Code v2.1.119#5614
Merged
github-actions[bot] merged 5 commits intoSchemaStore:masterfrom Apr 27, 2026
Merged
Conversation
Subsumes open PRs SchemaStore#5483 and SchemaStore#5583 (credited; coverage.js changes deferred to a separate follow-up PR). Schema: - Add hookCommand fields: asyncRewake (command-only), shell (command-only, enum bash|powershell), if (filter on tool-related events). Omit `once` since docs scope it to skill frontmatter, not settings.json. - Add hook events: StopFailure (API-error matcher values documented) - Add 17 top-level properties: agent, allowedChannelPlugins, autoMemoryDirectory, autoMode (with allow/soft_deny/environment classifier customization), channelsEnabled, defaultShell, disableDeepLinkRegistration, disableSkillShellExecution, forceRemoteSettingsRefresh, minimumVersion, showClearContextOnPlanAccept, showThinkingSummaries, skipDangerousModePermissionPrompt, strictPluginOnlyCustomization, tui, useAutoModeDuringPlan, viewMode, voiceEnabled - Add permissions.disableAutoMode (nested, mirrors disableBypassPermissionsMode) - Add sandbox.network.allowMachLookup (macOS XPC/Mach service allowlist) - Add sandbox.ripgrep custom-binary configuration - Add statusLine.refreshInterval (min 1) - Add pluginConfigs.*.options (non-sensitive plugin userConfig values) - Extend effortLevel enum with xhigh (Opus 4.7) and max - Extend permissionRule pattern with Monitor and PowerShell tools - Tighten cleanupPeriodDays minimum from 0 to 1 (v2.1.89 validator rejects 0) - Fix stale doc anchors: hooks-guide#filter-hooks-with-matchers, hooks#http-hook-fields, memory#exclude-specific-claude-md-files, tools-reference (canonical page for tool list) Tests: - modern-complete-config.json: cover all new properties - complete-config.json: cover effortLevel medium and viewMode default - edge-cases.json: update cleanupPeriodDays 0 -> 1 - New enum-coverage.json: cover alternate enum values (bash, fullscreen, xhigh, verbose) for full positive coverage across new enums Negative tests: - invalid-enum-values.json: add invalid values for defaultShell, disableDeepLinkRegistration, permissions.disableAutoMode, tui, viewMode - New invalid-hook-shell.json: exercise hookCommand.shell invalid enum Excluded: - coverage.js \$defs-path fix from SchemaStore#5483 (scheduled for a separate PR crediting @r-johnv). Consequence: the #\$defs/hookCommand.shell enum coverage gate fails here; will be resolved when that PR lands. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Path-based traversal in collectValuesByPath cannot match $defs paths (e.g., "#$defs/hookCommand.shell") against test data because the path references the schema definition, not the test structure. Adds a deep name-based search fallback for the terminal property name so test files exercising the property via $ref usage are still matched. Included from SchemaStore#5483 by @r-johnv to extend the coverage gate so this sync PR can land without skipping the #\$defs/hookCommand.shell check. Co-Authored-By: Rohit John Varghese <rohit@contoro.com> Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…a-2.1.112 # Conflicts: # src/schemas/json/claude-code-settings.json
Schema: - Add sandbox.network.deniedDomains array property; blocks specific domains even when broader allowedDomains wildcard would permit them. Tests: - Add deniedDomains to modern-complete-config.json and managed-settings.json. Negative tests: - Add wrong-type deniedDomains to wrong-property-types.json.
Schema: - effortLevel: update default-effort note for Pro/Max plans on Opus 4.6 and Sonnet 4.6 raised from medium to high (v2.1.117). - cleanupPeriodDays: expand description to cover sessions, orphaned subagent worktrees, tasks, shell snapshots, and backups (v2.1.117). - autoUpdatesChannel: reference DISABLE_UPDATES=1 env var (v2.1.118) for blocking all update paths including manual `claude update`. - autoMode: document the literal "$defaults" sentinel in allow/soft_deny/ environment arrays for splicing built-in defaults (v2.1.118). - Add mcp_tool hook handler variant for direct MCP tool invocation from hooks ($defs.hookCommand, v2.1.118). - Add prUrlTemplate top-level setting for routing the footer PR badge to custom code-review URLs (v2.1.119). - Add wslInheritsWindowsSettings managed-only policy key for WSL inheriting Windows-side managed settings (v2.1.118). Tests: - modern-complete-config.json: add prUrlTemplate, wslInheritsWindowsSettings, $defaults token in autoMode arrays, and mcp_tool hook example. - managed-settings.json: add wslInheritsWindowsSettings. - hooks-complete.json: add mcp_tool hook example with timeout/statusMessage. Negative tests: - missing-required-hook-fields.json: add mcp_tool entry missing the required `server` field.
Contributor
|
Thanks for the PR! This section of the codebase is owned by @domdomegg, @bogini, and @sarahdeaton - if they write a comment saying "LGTM" then it will be merged. |
domdomegg
reviewed
Apr 27, 2026
| "type": "string", | ||
| "description": "Tool permission rule.\nSee https://code.claude.com/docs/en/settings#permission-rule-syntax\nSee https://code.claude.com/docs/en/settings#tools-available-to-claude for full list of tools available to Claude.", | ||
| "pattern": "^((Agent|Bash|Edit|ExitPlanMode|Glob|Grep|KillShell|LSP|NotebookEdit|Read|Skill|TaskCreate|TaskGet|TaskList|TaskOutput|TaskStop|TaskUpdate|TodoWrite|ToolSearch|WebFetch|WebSearch|Write)(\\((?=.*[^)*?])[^)]+\\))?|mcp__.*)$", | ||
| "description": "Tool permission rule.\nSee https://code.claude.com/docs/en/settings#permission-rule-syntax\nSee https://code.claude.com/docs/en/tools-reference for full list of tools available to Claude.", |
Contributor
There was a problem hiding this comment.
I think this may have moved again to https://code.claude.com/docs/en/tools-reference
Contributor
|
LGTM |
Contributor
|
Merging because @domdomegg is a code-owner of all the changes - thanks! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Supersedes #5585. Bundles v2.1.112 baseline plus subsequent v2.1.113–v2.1.119 changes into a single PR.
Schema
claude-code-settings.jsonto Claude Code v2.1.112 baseline (subsumes feat(claude-code-settings): sync to Claude Code v2.1.112 #5585).sandbox.network.deniedDomainsarray property; blocks specific domains even when broaderallowedDomainswildcard would permit them (v2.1.113, sandboxing docs).effortLeveldescription: Pro/Max default on Opus 4.6 and Sonnet 4.6 raised frommediumtohigh(v2.1.117, model-config docs).cleanupPeriodDaysdescription: scope expanded to cover~/.claude/tasks/,~/.claude/shell-snapshots/, and~/.claude/backups/(v2.1.117).autoUpdatesChanneldescription: referenceDISABLE_UPDATES=1env var for blocking all update paths including manualclaude update(v2.1.118).autoMode(and childallow/soft_deny/environment) descriptions: document the literal"$defaults"sentinel for splicing built-in classifier rules in at that array position alongside custom rules (v2.1.118, permissions docs).mcp_toolhook handler variant in\$defs.hookCommandfor direct MCP-tool invocation from hooks (v2.1.118, hooks docs).prUrlTemplatetop-level string for routing the footer PR badge to a custom code-review URL with placeholders{host}/{owner}/{repo}/{number}/{url}(v2.1.119, settings docs).wslInheritsWindowsSettingsmanaged-only boolean for WSL inheriting Windows-side managed settings (v2.1.118, settings docs).Tests
modern-complete-config.json: addsandbox.network.deniedDomains,prUrlTemplate,wslInheritsWindowsSettings; demonstrate\"\$defaults\"token inautoMode.allow/soft_deny/environment; addmcp_toolhook example underPreToolUse.managed-settings.json: addsandbox.network.deniedDomainsandwslInheritsWindowsSettings: trueto reflect managed-only context.hooks-complete.json: addmcp_toolhook example withinput/server/tool/timeout/statusMessageunderPostToolUse.Negative tests
wrong-property-types.json: adddeniedDomains: \"should-be-array\"(array type violation).missing-required-hook-fields.json: addmcp_toolentry missing requiredserverfield.Skipped
CLAUDE_CODE_FORK_SUBAGENTandOTEL_LOG_TOOL_DETAILS— env-only with no corresponding settings.json property; verified via documentation. Schema does not enumerate every env var, only those mapping to settings properties.CLAUDE_CODE_HIDE_CWDandENABLE_TOOL_SEARCH— same reasoning./modelselection persistence to.claude/settings.local.json— runtime auto-write behavior, not a schema contract change.bfs/ugrepreplacements for Glob/Grep on macOS/Linux — implementation detail; tool names and invocation surface unchanged.duration_msfor PostToolUse / PostToolUseFailure — runtime hook input JSON, not a settings.json field.effort.level,thinking.enabled) — runtime input passed to status-line script, not a schema field.