Skip to content

claude-code-settings: add MultiEdit to permission rule regex#5701

Open
c-tonneslan wants to merge 1 commit into
SchemaStore:masterfrom
c-tonneslan:add-multiedit-to-claude-permissions
Open

claude-code-settings: add MultiEdit to permission rule regex#5701
c-tonneslan wants to merge 1 commit into
SchemaStore:masterfrom
c-tonneslan:add-multiedit-to-claude-permissions

Conversation

@c-tonneslan

Copy link
Copy Markdown

Filed in #5210. MultiEdit is a valid Claude Code tool but it's missing from the permissionRule regex, so a settings file like

"permissions": { "allow": ["MultiEdit", "MultiEdit(~/projects/**)"] }

is flagged as not matching the schema.

The reporter also mentioned Skill(name), but that already passes — Skill is in the alternation and the optional (...) part accepts kebab-cased names.

Added a couple of MultiEdit entries to permissions-advanced.json so the new tool name is covered by the existing test suite.

Closes #5210

MultiEdit is a valid tool name in Claude Code (the same edit-many-files
companion to the Edit tool) but the permission rule regex didn't list
it, so 'allow': ['MultiEdit'] was reported as not matching the schema.

Closes SchemaStore#5210

Signed-off-by: Charlie Tonneslan <cst0520@gmail.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.

@domdomegg domdomegg left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks! MultiEdit is indeed a real tool that was missing from the alternation, and it's slotted in alphabetically with test coverage to match. Nice catch on confirming Skill(name) already passes via the optional arg group.

Heads-up: this touches the same permissionRule pattern line as #5707, so whichever lands second will need a trivial rebase.

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>
@miteshashar

Copy link
Copy Markdown
Contributor

Heads-up: since this has been waiting on a rebase for a while, the MultiEdit permission-rule addition (schema + permissions-advanced.json) has been incorporated into #5867 (sync to Claude Code v2.1.195). Thanks for the original change — credited there.

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.

claude-code-settings.json: Missing MultiEdit and Skill tools in permissions pattern

3 participants