What's Changed
Bug Fixes
- config:
rulesync.jsonc/rulesync.local.jsoncare now parsed strictly. A syntax error (a missing comma, unquoted keys, trailing garbage) used to be tolerated silently and could make rulesync run with a different config — even the defaults. It now fails with an error naming the file, and__proto__/constructor/prototypekeys are rejected like in every other source. by @dyoshikawa in #3775 - permissions: tool names and patterns that match
Object.prototypemembers (constructor,toString, …) no longer resolve to native functions. Import used to write garbled categories such as"function Object() { [native code] }", and generate wrote junk rules or crashed for Zed, Qwen Code, Reasonix, Kimi, Kiro, Goose and Rovo Dev. Lookups and import buckets now use own properties only, across all permissions adapters. by @dyoshikawa in #3779 - hooks (Goose): import no longer drops native events without a canonical mapping. They are kept under
goose.hooks, so the upstreamPreToolUseResultevent (Goose v1.48.0+) survives an import → generate round trip. by @dyoshikawa in #3777 - hooks (Cortex Code): no more false "Emitting
enabled: falsehook(s) as active" warning; Cortex Code does carry the per-hookenabledflag. Per-hookenabledsupport is now derived from each converter, and the warning lists the supporting targets from the factories. by @dyoshikawa in #3778 - ignore (Reasonix): a global ignore import (
import -t reasonix -f ignore -g) now writes.rulesync/.aiignoreinto the project like every other tool, instead of the home directory. by @dyoshikawa in #3776
Internal
- Drop the Kilo / OpenCode
process.cwd()rulesync-output-root overrides, reject a non-object Reasonixsettings.jsonroot with a clear error, and keep the convert packaging-target check in one place (its message now carries the--output-root/--output-rootshint for both CLI and MCP). by @dyoshikawa in #3774
Contributors
Full Changelog: v43.6.1...v43.6.2