Skip to content

feat(claude-code): sync settings and keybindings to Claude Code v2.1.150#5723

Closed
miteshashar wants to merge 10 commits into
SchemaStore:masterfrom
miteshashar:claude-code-schema-2.1.150
Closed

feat(claude-code): sync settings and keybindings to Claude Code v2.1.150#5723
miteshashar wants to merge 10 commits into
SchemaStore:masterfrom
miteshashar:claude-code-schema-2.1.150

Conversation

@miteshashar

@miteshashar miteshashar commented May 23, 2026

Copy link
Copy Markdown
Contributor

Dependencies

Schema

Settings (claude-code-settings.json) — v2.1.143 → v2.1.150

New properties (14)

  • allowAllClaudeAiMcps — UNDOCUMENTED managed setting (v2.1.149)
  • autoScrollEnabled, awaySummaryEnabled, disableAgentView, disableAutoMode — per settings docs
  • editorMode (normal/vim), gcpAuthRefresh, leftArrowOpensAgents
  • maxSkillDescriptionChars, preferredNotifChannel, skillListingBudgetFraction
  • sshConfigs, sshHostAllowlist — managed Desktop SSH pre-configuration
  • voice object — sub-properties: enabled, mode (hold/tap), autoSubmit; replaces deprecated voiceEnabled
  • worktree.symlinkDirectories

Schema accuracy

  • allowedChannelPlugins — type: array of {marketplace, plugin} objects per plugins docs
  • hooks.Setup — matchers: init, maintenance per hooks docs
  • hooks.InstructionsLoaded — supports 5 matchers per hooks docs
  • hookCommandhttp and mcp_tool timeout: 600s per hooks docs
  • awsCredentialExport — outputs JSON credential object; execution is silent per settings docs
  • forceLoginOrgUUID — type: oneOf [string, array of strings] per settings docs
  • channelsEnabled — Pro/Max: skip channel checks; Teams/Enterprise: blocked when unset per settings docs
  • CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC — alias simultaneously setting DISABLE_AUTOUPDATER, DISABLE_FEEDBACK_COMMAND, DISABLE_ERROR_REPORTING, DISABLE_TELEMETRY per settings docs
  • CLAUDE_CODE_ACCESSIBILITY — description per docs: keeps native terminal cursor visible, allows screen magnifiers to track cursor position per settings docs
  • DISABLE_TELEMETRY — also disables DISABLE_GROWTHBOOK feature-flag fetching per settings docs
  • AWS_REGION — applies to both Claude.ai and Claude Platform on AWS per settings docs
  • Remove CLAUDE_CODE_CODE_ACCESSIBILITY — env var does not exist

New 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)

  • Add Scroll and Doctor contexts per keybindings docs
  • Add 32 new builtinAction enum values from docs and Claude Code fresh-generated defaults:
    • app:redraw, app:toggleBrief
    • chat:clearInput, chat:clearScreen, chat:fastMode, chat:killAgents, chat:newline, voice:pushToTalk
    • confirm:toggle, plugin:favorite
    • historySearch:cycleScope
    • footer:up, footer:down
    • modelPicker:setAsDefault
    • settings:close, settings:periodDay, settings:periodWeek, settings:sortByTokens
    • theme:editCustom
    • doctor:fix
    • scroll:lineUp, scroll:lineDown, scroll:pageUp, scroll:pageDown, scroll:top, scroll:bottom, scroll:halfPageUp, scroll:halfPageDown, scroll:fullPageUp, scroll:fullPageDown
    • selection:copy, selection:clear, selection:extendLeft, selection:extendRight, selection:extendUp, selection:extendDown, selection:extendLineStart, selection:extendLineEnd
    • select:pageUp, select:pageDown, select:first, select:last
  • uniqueItemProperties: ["context"] on bindings array — enforces no duplicate context blocks; requires ajv-keywords as direct dependency

Coverage tool (src/helpers/coverage.js)

  • Check 4 (Enum Coverage) now detects enums defined directly on $defs leaf entries — covers reusable string-enum defs like context and builtinAction
  • collectValuesByPath string-value fallback for $defs-prefixed paths used as array items or additionalProperties values (covers permissionRule, builtinAction, etc.)
  • Full findings reported with no output cap

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 properties

Keybindings

  • all-contexts.jsonScroll and Doctor context blocks added; existing context blocks expanded to cover newly added actions (coverage gate)
  • basic-bindings.json — covers all 104 builtinAction enum values; single Global block (required by uniqueItemProperties)

Negative tests

Settings

  • invalid-enum-values.json, wrong-property-types.json — updated for new/changed enums and types

Keybindings

  • duplicate-context.json — new: two blocks with "context": "Global" must fail uniqueItemProperties validation

Skipped

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>
@github-actions

Copy link
Copy Markdown
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.

@miteshashar miteshashar marked this pull request as draft May 23, 2026 09:53
miteshashar and others added 7 commits May 24, 2026 07:08
…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>
@github-actions github-actions Bot added the cli.js Changes to the build system / JavaScript. label May 24, 2026
@miteshashar miteshashar changed the title feat(claude-code-settings): sync to Claude Code v2.1.150 feat(claude-code): sync settings and keybindings to Claude Code v2.1.150 May 24, 2026
miteshashar and others added 2 commits May 24, 2026 09:13
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>
@miteshashar

Copy link
Copy Markdown
Contributor Author

Superseded by #5867, which syncs all the way to Claude Code v2.1.195 and incorporates this PR's settings + keybindings work (plus a full documented-coverage audit). Closing in favor of #5867.

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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant