github dyoshikawa/rulesync v36.0.0

one hour ago

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, ...), so read/write denies, .rulesyncignore patterns 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: true is now written as onFailure: "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_ATTACHMENTS and CLAUDE_CODE_DISABLE_FILE_MENTIONS are no longer written to project env (only with --global); CLAUDE_CODE_ENABLE_CFC is kept at project scope only with an off value; worktree.location is dropped at project scope and forceLoginGatewayUrl is 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_tool hook that Codex cannot load (no server/tool, a null in input) and a hook with a non-integer timeout are skipped with a warning, since such a handler stops the whole hooks file from loading. (#3474)
  • Kiro global permissions are now generated. --global for kiro-cli / kiro-ide writes ~/.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, mapping ask to effect: ask and 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_tool hook handlers (#3474)
  • feat(grokcli): map the all-tools * permission category onto Grok's bare * rule (#3473)
  • feat(opencode): emit and import disable-model-invocation in OpenCode skills (#3470)
  • feat(qwencode): carry tools.codeModeOnly and tools.freeform through the override (#3467)

Bug Fixes

  • fix(reasonix): write permission and ignore rules with the tool names Reasonix matches (#3471)
  • fix(claudecode): follow onFailure hooks 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 .git skip) 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.json and the three hook sources (#3466)

Contributors

Full Changelog: v35.0.0...v36.0.0

Don't miss a new rulesync release

NewReleases is sending notifications on new releases.