feat(claude-code): sync settings and keybindings to Claude Code v2.1.150#5723
Closed
miteshashar wants to merge 10 commits into
Closed
feat(claude-code): sync settings and keybindings to Claude Code v2.1.150#5723miteshashar wants to merge 10 commits into
miteshashar wants to merge 10 commits into
Conversation
New properties (14):
- allowAllClaudeAiMcps (UNDOCUMENTED, v2.1.149)
- autoScrollEnabled, awaySummaryEnabled, disableAgentView, disableAutoMode
- editorMode (vim/normal), gcpAuthRefresh, leftArrowOpensAgents
- maxSkillDescriptionChars, preferredNotifChannel, skillListingBudgetFraction
- sshConfigs, sshHostAllowlist (managed, Desktop SSH)
- voice object (replaces voiceEnabled; mode: hold/tap, autoSubmit)
- worktree.symlinkDirectories
Critical fixes:
- allowedChannelPlugins: was array of strings, now array of {marketplace, plugin} objects
- hooks.Setup: was mislabeled UNDOCUMENTED; is documented (matchers: init, maintenance)
- hooks.InstructionsLoaded: incorrectly said no matchers; supports 5 matchers
- hookCommand timeout defaults: http/mcp_tool corrected to 600s (were 30s/60s)
- awsAuthRefresh/awsCredentialExport: descriptions corrected (commands not paths; JSON output format for export)
- forceLoginOrgUUID: now oneOf string|array per docs
- channelsEnabled: description rewritten to match docs (Pro/Max skip checks; Teams/Enterprise blocked)
- DISABLE_NONESSENTIAL_TRAFFIC: added (missing); alias for 4 DISABLE_* vars
- AWS_REGION: scope expanded to include Claude Platform on AWS
Description/link improvements:
- allowedChannelPlugins sub-properties: added descriptions + corrected "register as channel"
- awaySummaryEnabled: link -> interactive-mode#session-recap; env var override semantics
- CLAUDE_CODE_ENABLE_AWAY_SUMMARY: override semantics documented
- disableAutoMode: "where users cannot override it" appended
- CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT: "instead of sending incremental updates" appended
- voiceEnabled: deprecation notice pointing to voice object
- otelHeadersHelper: cross-ref to CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS
- showThinkingSummaries: link -> model-config#extended-thinking
- autoMode: link -> auto-mode-config
- channelsEnabled/allowedChannelPlugins: links -> channels.md
- DISABLE_TELEMETRY: "Statsig" removed per public docs
New env vars (59): provider activation, Claude Platform on AWS, prompt caching,
agent/automation, OTEL (28 incl. mTLS), MCP, and UX vars
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Contributor
|
Thanks for the PR! This section of the codebase is owned by @domdomegg, @bogini, @sarahdeaton, and @ant-kurt - if they write a comment saying "LGTM" then it will be merged. |
…de v2.1.150 Add 2 new contexts: Scroll, Doctor Add 32 new builtinActions from docs and fresh defaults (scroll:*, selection:*, chat:clear*, chat:killAgents, chat:fastMode, chat:newline, confirm:toggle, doctor:fix, footer:up/down, historySearch:cycleScope, modelPicker:setAsDefault, plugin:favorite, select:pageUp/Down/first/last, settings:close/periodDay/ periodWeek/sortByTokens, theme:editCustom, voice:pushToTalk, app:redraw, app:toggleBrief) Remove stale: app:toggleTeammatePreview (re-added after fresh file confirmed present) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ion.jsonc Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
walkProperties now emits $defs entries that carry enum/pattern/type directly (not via child properties), enabling coverage checks for reusable string-enum defs like context and builtinAction. collectValuesByPath falls back to all string values when name-based search finds nothing — covers defs used as array items or additionalProperties values (permissionRule, builtinAction, etc.) where no key named after the def exists in test data. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Rename DISABLE_NONESSENTIAL_TRAFFIC → CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC - Remove CLAUDE_CODE_CODE_ACCESSIBILITY (typo, non-existent env var) - Update CLAUDE_CODE_ACCESSIBILITY description to docs verbatim - Update DISABLE_TELEMETRY description to docs verbatim Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ctions Add Scroll and Doctor contexts to all-contexts.json. Cover all 104 builtinAction enum values across all-contexts.json and basic-bindings.json including newly added scroll:*, selection:*, confirm:toggle, doctor:fix, voice:pushToTalk, historySearch:cycleScope, footer:up/down, modelPicker:setAsDefault, plugin:favorite, settings:close/periodDay/ periodWeek/sortByTokens, theme:editCustom, select:pageUp/Down/first/last, app:redraw, app:toggleBrief, and others. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…Properties Register ajv-keywords in cli.js and add uniqueItemProperties: ["context"] to the bindings array — prevents two keybinding blocks from sharing the same context value. Consolidate duplicate Global blocks in basic-bindings.json and add duplicate-context.json negative test to verify enforcement. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Required for uniqueItemProperties keyword used in claude-code-keybindings.json. Was previously only a transitive dependency, failing n/no-extraneous-import lint. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
cli.js, package.json, package-lock.json moved to add-ajv-keywords-dependency branch. This PR now depends on that PR being merged first. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2 tasks
Contributor
Author
miteshashar
added a commit
to miteshashar/schemastore
that referenced
this pull request
Jun 29, 2026
Schema:
- effortLevel: remove session-only "max" from enum (settings file accepts only low/medium/high/xhigh); refresh model/default notes (Fable 5, Opus 4.8)
- fastMode: Opus 4.8 default since v2.1.154; available on Opus 4.8 and 4.7
- teammateMode: add "iterm2" (v2.1.186); default auto -> in-process (v2.1.179)
- hooks: command/http/mcp_tool timeout default corrected to 600 (lowered to 30 on UserPromptSubmit, 10 on MessageDisplay); add MessageDisplay event (v2.1.195)
- allowedChannelPlugins: items string -> {marketplace, plugin} objects
- theme: enum incl. auto + custom:<slug> pattern
- add 41 documented top-level properties (advisorModel ... workflowKeywordTriggerEnabled), plus sandbox.credentials, sandbox.allowAppleEvents, worktree.symlinkDirectories, autoMode.classifyAllShell (UNDOCUMENTED), Cd and MultiEdit permission rules (MultiEdit incorporates SchemaStore#5701)
- add 151 documented environment variables (3 UNDOCUMENTED) to $.env.properties (now 305, sorted): provider config (Bedrock/Vertex/Foundry/Claude-Platform-on-AWS, 14 VERTEX_REGION_CLAUDE_*), prompt caching, full OpenTelemetry surface, MCP timeouts, model-display overrides, watchdog/streaming, command/feature toggles; deprecation/description corrections across existing vars
- mark ANTHROPIC_SMALL_FAST_MODEL deprecated; fix many descriptions and doc-link anchors verbatim against settings.md/env-vars.md/monitoring-usage.md
- remove duplicate undocumented env var CLAUDE_CODE_SESSION_END_HOOKS_TIMEOUT_MS (keep documented spelling CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS)
- keybindings builtinAction: add app:toggleBrief, app:openArtifact, chat:workflowKeywordToggle; remove app:toggleTeammatePreview, settings:close
- register claude-code-keybindings.json in schema-validation.jsonc and add a coverage.js fallback so builtinAction/context enum coverage runs
Tests:
- modern-complete-config, env-variables, enum-coverage, edge-cases, notifications, basic-config, complete-config, model-opus, with-schema: exercise new properties, enum values and env vars (pass enum/default coverage gate)
- keybindings all-contexts.json: bind every builtinAction across every context (enable keybinding enum coverage gate)
- keybindings current-actions.json: add the three new action bindings; replace removed settings:close with select:accept
- permissions-advanced.json: add MultiEdit and MultiEdit(~/projects/**) (incorporating SchemaStore#5701)
Negative tests:
- invalid-enum-values.json: invalid values for theme, preferredNotifChannel, editorMode, voice.mode, disableAutoMode, sandbox.credentials mode, OTEL protocol/temporality, CLAUDE_EFFORT, and the new boolean/enum env vars (pass enum coverage gate)
Supersedes SchemaStore#5723.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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.
Dependencies
ajv-keywordsas direct dependency, required foruniqueItemPropertiesvalidation used in the keybindings schema.Schema
Settings (
claude-code-settings.json) — v2.1.143 → v2.1.150New properties (14)
allowAllClaudeAiMcps— UNDOCUMENTED managed setting (v2.1.149)autoScrollEnabled,awaySummaryEnabled,disableAgentView,disableAutoMode— per settings docseditorMode(normal/vim),gcpAuthRefresh,leftArrowOpensAgentsmaxSkillDescriptionChars,preferredNotifChannel,skillListingBudgetFractionsshConfigs,sshHostAllowlist— managed Desktop SSH pre-configurationvoiceobject — sub-properties:enabled,mode(hold/tap),autoSubmit; replaces deprecatedvoiceEnabledworktree.symlinkDirectoriesSchema accuracy
allowedChannelPlugins— type: array of{marketplace, plugin}objects per plugins docshooks.Setup— matchers:init,maintenanceper hooks docshooks.InstructionsLoaded— supports 5 matchers per hooks docshookCommand—httpandmcp_tooltimeout: 600s per hooks docsawsCredentialExport— outputs JSON credential object; execution is silent per settings docsforceLoginOrgUUID— type:oneOf [string, array of strings]per settings docschannelsEnabled— Pro/Max: skip channel checks; Teams/Enterprise: blocked when unset per settings docsCLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC— alias simultaneously settingDISABLE_AUTOUPDATER,DISABLE_FEEDBACK_COMMAND,DISABLE_ERROR_REPORTING,DISABLE_TELEMETRYper settings docsCLAUDE_CODE_ACCESSIBILITY— description per docs: keeps native terminal cursor visible, allows screen magnifiers to track cursor position per settings docsDISABLE_TELEMETRY— also disablesDISABLE_GROWTHBOOKfeature-flag fetching per settings docsAWS_REGION— applies to both Claude.ai and Claude Platform on AWS per settings docsCLAUDE_CODE_CODE_ACCESSIBILITY— env var does not existNew env vars (59)
Provider activation, Claude Platform on AWS, prompt caching, agent/automation, OTEL (28 including mTLS), MCP, and UX vars — per settings#environment-variables
Keybindings (
claude-code-keybindings.json)ScrollandDoctorcontexts per keybindings docsbuiltinActionenum values from docs and Claude Code fresh-generated defaults:app:redraw,app:toggleBriefchat:clearInput,chat:clearScreen,chat:fastMode,chat:killAgents,chat:newline,voice:pushToTalkconfirm:toggle,plugin:favoritehistorySearch:cycleScopefooter:up,footer:downmodelPicker:setAsDefaultsettings:close,settings:periodDay,settings:periodWeek,settings:sortByTokenstheme:editCustomdoctor:fixscroll:lineUp,scroll:lineDown,scroll:pageUp,scroll:pageDown,scroll:top,scroll:bottom,scroll:halfPageUp,scroll:halfPageDown,scroll:fullPageUp,scroll:fullPageDownselection:copy,selection:clear,selection:extendLeft,selection:extendRight,selection:extendUp,selection:extendDown,selection:extendLineStart,selection:extendLineEndselect:pageUp,select:pageDown,select:first,select:lastuniqueItemProperties: ["context"]onbindingsarray — enforces no duplicate context blocks; requiresajv-keywordsas direct dependencyCoverage tool (
src/helpers/coverage.js)$defsleaf entries — covers reusable string-enum defs likecontextandbuiltinActioncollectValuesByPathstring-value fallback for$defs-prefixed paths used as array items oradditionalPropertiesvalues (coverspermissionRule,builtinAction, etc.)Tests
Settings
modern-complete-config.json,edge-cases.json,complete-config.json,model-opus.json,with-schema.json,notifications.json— updated for all new and modified propertiesKeybindings
all-contexts.json—ScrollandDoctorcontext blocks added; existing context blocks expanded to cover newly added actions (coverage gate)basic-bindings.json— covers all 104builtinActionenum values; singleGlobalblock (required byuniqueItemProperties)Negative tests
Settings
invalid-enum-values.json,wrong-property-types.json— updated for new/changed enums and typesKeybindings
duplicate-context.json— new: two blocks with"context": "Global"must failuniqueItemPropertiesvalidationSkipped
http://$schema→https://cosmetic URL change (previously skipped)MultiEditaddition topermissionRuleregex — covered by open PR claude-code-settings: add MultiEdit to permission rule regex #5701