Skip to content

v18.0.0

Choose a tag to compare

@dyoshikawa dyoshikawa released this 24 Sep 12:50
· 1667 commits to main since this release
Immutable release. Only release title and notes can be modified.
c39fac0

What's Changed

Breaking Changes

  • Codex CLI skills: root disable-model-invocation: true now emits agents/openai.yaml with policy.allow_implicit_invocation: false. Previously the root flag was ignored for codexcli, so such skills stayed implicitly invocable in Codex unless codexcli.policy.allow_implicit_invocation was set by hand. Rulesync now writes the sidecar for these skills (even when no other codexcli field is present), so Codex no longer picks them automatically; they remain callable with $skill. An explicit codexcli.policy.allow_implicit_invocation still takes precedence over the root flag, and a root false or absent flag produces no sidecar as before. On import, the value stays under codexcli.policy. Review the regenerated .agents/skills/*/agents/openai.yaml files. Requested in #3144. by @dyoshikawa in #3150
  • Codex CLI permissions: a write-side-only ask / deny under a broader read deny/ask now generates deny instead of read. Since v17.0.0 such a rule generated read, which Codex resolves as the more specific path and therefore re-opened read access that an ancestor rule denied (for example, read: { "~/.ssh/**": "deny" } with edit: { "~/.ssh/id_rsa": "deny" }). Covering read rules are an exact path X, X/**, **, /** and :root. In addition, read / write grants on Windows device paths (\\?\..., \\.\...) are now skipped with a warning instead of producing entries that Codex rejects. Review the regenerated .codex/config.toml. by @dyoshikawa in #3151

Bug Fixes

  • Codex CLI permissions: warn about a deny → read downgrade only when the read side was unspecified, keep the single-level glob and glob_scan_max_depth handling covered by tests, and document that a write-side-only restriction does not survive rulesync import. Closes #3138 and #3137. by @dyoshikawa in #3151

New Features

  • Claude Code rules: includeRoot: false now warns when a leftover CLAUDE.md, CLAUDE.local.md or .claude/CLAUDE.md would keep shadowing AGENTS.md and is not removed (for example without delete), and when a root or local-root rule that targets only claudecode is dropped. .claude/CLAUDE.local.md is no longer described as shadowing AGENTS.md, matching the Claude Code memory documentation. by @dyoshikawa in #3149

Other Changes

  • Update the Homebrew formula to v17.1.0 in #3148

Contributors

Full Changelog

v17.1.0...v18.0.0