v16.7.0
·
1119 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
What's Changed
Bug Fixes
- Skills: binary companion files are no longer corrupted. Supporting files beside a directory-layout
SKILL.md(images, archives, any non-text asset) are now copied byte-faithfully on import and generate instead of being round-tripped through UTF-8 with a trailing newline appended, by @greenhands-always in #2568 and refined in #2575 - MCP server: binary skill files survive get/put. Skill other-file entries now carry an
encoding: "utf-8" | "base64"flag so binary assets round-trip byte-identical through the MCP surface; the 1MB limit is evaluated on decoded bytes in #2582 - Goose: global MCP generate no longer deletes builtin extensions. The
extensions:map in Goose'sconfig.yamlis managed via owned-keys semantics, sodeveloper/memorybuiltins and unrecognized extension types survive; import no longer rewrites builtin/platform extensions as unstartablestdioentries, and a canonical"*"hook matcher now collapses to a matcher-less rule instead of an invalid regex Goose drops silently in #2579 - Claude Code plugins: hooks and agents follow upstream rules. Plugin hook commands now use
${CLAUDE_PLUGIN_ROOT}instead of$CLAUDE_PROJECT_DIR(and round-trip on import), and plugin-shipped agents drop the unsupportedhooks/mcpServers/permissionModefields and non-worktreeisolation with warnings; a colon in any subagent name now warns instead of aborting the run in #2571 - Claude Code skills: nested skills keep their subtree scoping on import. A skill discovered under e.g.
apps/web/.claude/skills/getsclaudecode.paths: ["apps/web/**"]derived from its discovery root (author-declaredpathsare preserved verbatim) in #2574 - Zed: inert permission entries are no longer emitted. Canonical
read/grep/globno longer producetool_permissions.toolsentries Zed never consults, and the file-formats guidance that directed users to author them is corrected in #2581 - GitHub Copilot: rules frontmatter is no longer dropped on import.
CopilotRuleFrontmatterSchemais now a loose object, with unknown fields riding thecopilot:section both ways in #2580
Enhancements
- Factory Droid: four documented surfaces followed.
disabledSkillsin the permissions override, skillenabled/allowed-toolsfrontmatter in both directions, a group-levelcommandRegexhook filter, and generated commands no longer emit the unsupportedallowed-toolskey in #2572 - GitHub Copilot: skill frontmatter parity.
argument-hint,user-invocable,disable-model-invocationandcontextare now representable for thecopilottarget, resolved through the shared invocation-gate helpers (also aligned forcopilotcli) in #2580 - Codex CLI: hook
additionalContextLimitround-trips. Modeled as a non-negative integer via a new number passthrough kind in the shared hooks converter in #2576 - Grok CLI: per-handler hook
envround-trips. Command hooks carry an environment map via a new record passthrough kind, with key/value validation in both directions in #2577
Refactoring
- Unify the oxfmt invocation behind a shared
runOxfmthelper with pinned-version (--no-install) and Windows handling in #2569
Contributors
- @dyoshikawa
- @greenhands-always
Full Changelog: v16.6.0...v16.7.0