Breaking Changes
- Reasonix permission and ignore rules now use the tool names Reasonix matches. Rules for tools other than Bash and Edit were written with Claude-Code-style names (
Read(...),Grep,WebFetch, ...) that Reasonix never matched. They are now written with Reasonix's snake_case tool names (read_file,grep,web_fetch, ...), soread/writedenies,.rulesyncignorepatterns and allows that were previously dormant now take effect. (#3471) - Grok CLI: the all-tools
*permission category maps onto Grok's bare*rule. A*deny/ask now applies to every Grok tool instead of only Bash, and an imported bare*rule is now managed. Generate warns when an existing bare*lockdown is removed or shadows other rules. (#3473) - Claude Code hooks and settings scopes.
failClosed: trueis now written asonFailure: "block"(and dropped with a warning on events and hook types where Claude Code ignores it).CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS,CLAUDE_AFK_TIMEOUT_MS,CLAUDE_AFK_COUNTDOWN_MS,CLAUDE_CODE_DISABLE_ATTACHMENTSandCLAUDE_CODE_DISABLE_FILE_MENTIONSare no longer written to projectenv(only with--global);CLAUDE_CODE_ENABLE_CFCis kept at project scope only with an off value;worktree.locationis dropped at project scope andforceLoginGatewayUrlis now written by--global. (#3469) - Empty MCP keys are removed instead of written as
{}for Qwen Code (mcpServers), OpenCode / MiMo Code (mcp) and Kilo (mcp) when no managed MCP server is left. (#3472) - Codex CLI hooks: an
mcp_toolhook that Codex cannot load (noserver/tool, anullininput) and a hook with a non-integertimeoutare skipped with a warning, since such a handler stops the whole hooks file from loading. (#3474) - Kiro global permissions are now generated.
--globalforkiro-cli/kiro-idewrites~/.kiro/settings/permissions.yaml, merging with the rules Kiro saves there; previously global permissions were skipped. (#3475)
What's Changed
New Features
- feat(permissions): generate Kiro global permissions as
~/.kiro/settings/permissions.yaml, mappingasktoeffect: askand never loosening existing rules (#3475) - feat(kimi-code): emit commands onto Kimi Code's skills surface (
.kimi-code/skills/<slug>/SKILL.md) (#3476) - feat(codexcli): emit
mcp_toolhook handlers (#3474) - feat(grokcli): map the all-tools
*permission category onto Grok's bare*rule (#3473) - feat(opencode): emit and import
disable-model-invocationin OpenCode skills (#3470) - feat(qwencode): carry
tools.codeModeOnlyandtools.freeformthrough the override (#3467)
Bug Fixes
- fix(reasonix): write permission and ignore rules with the tool names Reasonix matches (#3471)
- fix(claudecode): follow
onFailurehooks and the v2.1.290/v2.1.295 settings scopes (#3469) - fix(mcp): retract empty MCP keys for Qwen Code, OpenCode and Kilo (#3472)
- fix(antigravity-plugin): honor plugin manifests kept in a
.antigravity-plugin/or.gemini-plugin/folder (#3465) - fix: address review follow-ups for sources, git transport (case-insensitive
.gitskip) and Trae commands (name-collision and nesting-depth warnings) (#3468)
Performance
- perf(install): download GitHub sources concurrently (up to 4 sources and 10 requests) ahead of the serial pass; output and lockfile order are unchanged (#3478)
Documentation
- docs(musecode): record project
.mcp.jsonand the three hook sources (#3466)
Contributors
Full Changelog: v35.0.0...v36.0.0