v10.0.0
Immutable
release. Only release title and notes can be modified.
What's Changed
Breaking Changes
- MCP per-server
targetsis now enforced (and deprecated): the per-server"targets"array in.rulesync/mcp.jsonwas previously parsed but never applied; it now actually filters which tools receive the server, and logs a deprecation warning pointing at the new tool-scoped blocks. If yourmcp.jsoncarries staletargetsvalues, servers may disappear from other tools' generated configs — migrate them to{toolname}.mcpServersblocks (#2259)
New Features
- Tool-scoped permission blocks: every permissions-capable tool now accepts a canonical
{toolname}.permissionblock in.rulesync/permissions.json, merged over the sharedpermissionblock per category for that tool only — mirroring{toolname}.hooks.kiro-cli/kiro-idealias to thekirokey andhermesagenttohermes(#2259) - Tool-scoped MCP server blocks:
.rulesync/mcp.jsonnow accepts{toolname}.mcpServersblocks — a named entry replaces/adds a server wholesale for that tool, andnullremoves a shared server for that tool. Targets sharing one output file (the Kiro trio,claudecode/claudecode-legacy, and the Antigravity pair) resolve identically so shared files never depend on generation order (#2259) - JSONC source variants:
.rulesync/mcp.jsonc,.rulesync/hooks.jsonc, and.rulesync/permissions.jsoncare now accepted (comments and trailing commas); the.jsoncvariant wins when both exist.rulesync fetchpicks them up, the rulesync MCP server tools refuse to silently shadow them, andrulesync importwarns when its output would be shadowed (#2259) - Init scaffolding:
rulesync initnow creates a sample.rulesync/permissions.jsonwith conservative defaults, andrulesync gitignoredelimits its managed block with markers (#2256)
Bug Fixes
- Codex CLI config preservation: unmanaged keys inside the rulesync-managed
[permissions.rulesync]profile of.codex/config.toml(e.g.networkproxy/SOCKS settings,workspace_roots) now survive regeneration and are surfaced with a warning; regression tests lock in that unmanaged top-level keys such asmodelare never touched (#2259) - Hardening: JSONC parsing drops prototype-pollution keys, and tool-scoped blocks are stripped from the effective MCP config so translators that spread the whole source JSON cannot leak other tools' blocks (#2259)