v16.0.0
Immutable
release. Only release title and notes can be modified.
What's Changed
⚠️ Breaking Changes
- Goose: the
.gooseignoreignore target is removed — upstream retired the file ("removed some time ago in favour of other ignore things like gitignore etc"), so generating it gave a false sense of protection. Stale outputs stay gitignored. Subagents also moved from the inert sub-recipe YAML under.goose/recipes/subagents/(a location Goose's agent discovery never scanned) to Goose's custom-agent Markdown surface at.goose/agents/(project) and~/.config/goose/agents/(global). #2460 - Junie: the permissions allowlist is now global-only (
~/.junie/allowlist.json; Junie CLI never reads a project-scope file), every rule group is emitted as theAllowListRuleSetobject Junie's parser actually accepts (the previous bare-array form failed the whole-file parse and made Junie overwrite the allowlist), andjunie.defaultBehavioris restricted to theallow/askenum Junie enforces. The legacy array form is still tolerated on import. #2454 - Devin: the project root rule is now emitted to the project-root
AGENTS.mdthat Devin CLI / Devin Local actually reads, instead of.devin/rules/(which remains the non-root Cascade directory). #2458 - Zed: MCP servers are now translated into the
context_serversshapes Zed parses (disabled→enabled: false,httpUrl→url, array command flattened;sse/wsservers are skipped with a warning), the canonical*permission category maps ontoagent.tool_permissions.default, and the global config lands in%APPDATA%\Zedon Windows. #2450 - Cline: subagent
descriptionis required (Cline refuses to load an agent without one); a canonical subagent that omits it gets a generated fallback, and legacy description-less files are repaired on import. #2459 - Vibe: follows the v2.21.0 hook type rename and three further upstream drifts. #2441
- Rovo Dev: per-tool permissions are nested under
toolPermissions.tools(the previous location never applied) and MCP transports are translated. #2442 - Reasonix: the
ssetransport is written verbatim, and retired keys are no longer authored. #2445
New Features
- feat(mcp): add a per-server
enabledgeneration filter to the canonical config — keep a server defined in.rulesync/.mcp.json{c}while emitting it to no tool config at all by @dyoshikawa in #2461 - feat(init): add Playwright MCP to the scaffolded
.rulesync/.mcp.jsonby @dyoshikawa in #2462 - feat(warp): emit commands onto the skills surface (
/{skill-name}invocation), translate MCPcwdtoworking_directoryby @dyoshikawa in #2452 - feat(roo): global commands, skill
modeSlugsround-trip,AGENTS.local.md(final EOL-state parity) by @dyoshikawa in #2456 - feat(devin): model the full SKILL.md frontmatter (
permissions,allowed-tools,triggers, …) for skills and command-skills by @dyoshikawa in #2458 - feat(takt): support checks as quality gates and author the workflow security policies by @dyoshikawa in #2443
- feat(kimi-code): emit the config.toml
[mcp]timeout defaults and[tools]switch by @dyoshikawa in #2438 - feat(grokcli): write non-root rules to
.grok/rules, and stop dropping skill flags and http hooks by @dyoshikawa in #2447 - feat(cline): emit global modular rules to
~/Documents/Cline/Rulesby @dyoshikawa in #2459
Bug Fixes
- fix(kilo): a
{ enabled: false }MCP toggle entry no longer aborts the entire--targets kilorun; transport-less servers, per-tool filters and thestepstype are handled correctly by @dyoshikawa in #2448 - fix(amp): emit the
globs:frontmatter Amp's conditional loading actually reads (the TOONapplyTovalue alone was advisory) by @dyoshikawa in #2455 - fix(qwencode): map the
MessageDisplayhook event, model the five documented skill frontmatter fields, coerce scalarpathsto the array Qwen Code requires, exposetools.visibleby @dyoshikawa in #2457 - fix(factorydroid): filter prompt-type hooks Droid cannot run, make the plugin-bootstrap settings (
extraKnownMarketplaces,enabledPlugins,hooksDisabled) authorable by @dyoshikawa in #2453 - fix(hermesagent): carry
ssl_verify/skip_preflight/samplingthrough MCP (no longer destroyed on regenerate), drop the deaddelegate_tasktoolsetsargument by @dyoshikawa in #2451 - fix(hermesagent): honor
HERMES_HOMEglobally by @dyoshikawa in #2394 - fix(generate): stop creating empty shared config files by @dyoshikawa in #2431
- fix(agentsskills): emit spec-conformant SKILL.md and diagnose name/description violations by @dyoshikawa in #2435
- fix(agentsmd): import nested AGENTS.md files and stop competing for
.agents/skills/by @dyoshikawa in #2436 - fix(replit): accept the Agent Skills spec's string forms for
allowed-toolsandcompatibilityby @dyoshikawa in #2437 - fix(pi): accept the Agent Skills spec's string forms and map
postCompactby @dyoshikawa in #2440 - fix(augmentcode): support
PromptSubmit, stop clobbering hookargsandmetadata, import.agents/commandsby @dyoshikawa in #2444 - fix(deepagents): correct the rules anchor in the research reference by @dyoshikawa in #2449
- fix(devcontainer): keep init.sh setup resilient under
set -eby @dyoshikawa in #2396
Contributors
Full Changelog: v15.1.0...v16.0.0