claude-code-settings: add MultiEdit to permission rule regex#5701
claude-code-settings: add MultiEdit to permission rule regex#5701c-tonneslan wants to merge 1 commit into
Conversation
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>
|
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
left a comment
There was a problem hiding this comment.
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.
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>
|
Heads-up: since this has been waiting on a rebase for a while, the |
Filed in #5210.
MultiEditis a valid Claude Code tool but it's missing from thepermissionRuleregex, so a settings file likeis flagged as not matching the schema.
The reporter also mentioned
Skill(name), but that already passes —Skillis in the alternation and the optional(...)part accepts kebab-cased names.Added a couple of
MultiEditentries topermissions-advanced.jsonso the new tool name is covered by the existing test suite.Closes #5210