Skip to content

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

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

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

@miteshashar miteshashar commented May 23, 2026

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>
@github-actions github-actions Bot removed the cli.js Changes to the build system / JavaScript. label May 24, 2026
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