What's Changed
- feat(opencode): opt-in V2
mcp.serversoutput via theconfigShapeoption by @dyoshikawa in #3604- Set
targets.opencode.mcp.configShape: "v2"to write OpenCode V2'smcp.servers.<name>shape (disabled, timeout objects, snake_caseoauth) and keep a V2 file stable across import and generate. The default stays"v1", so existing output is unchanged.
- Set
- feat(hooks): pass tool input to OpenCode
preToolUsehooks and let them deny the call by @dyoshikawa in #3605- The generated OpenCode / Kilo / MiMo Code plugin now sends a Claude Code-style JSON payload (
tool_name,tool_input,session_id,cwd, ...) topreToolUsecommands on stdin. Exit code 2 or apermissionDecision: "deny"response blocks the tool call and the reason reaches the model; other non-zero exits still block, as before.
- The generated OpenCode / Kilo / MiMo Code plugin now sends a Claude Code-style JSON payload (
- fix(skills): keep
metadataanddisable-model-invocationin codexcliSKILL.mdby @dyoshikawa in #3608.agents/skills/<name>/SKILL.mdwritten by thecodexclitarget now carries the rootmetadata(merged withcodexcli.short-description) anddisable-model-invocation, alongsideagents/openai.yaml.
- fix(copilotcli): accept list-valued subagent model by @521Peter in #3602
- docs(copilotcli): document list-valued subagent model and tighten tests by @dyoshikawa in #3606
- fix(npm): accept explicit
NODE_AUTH_TOKENcredentials by @521Peter in #3569 - docs: add case studies for Zenn, Octane, Forum Virium Helsinki, and YANET by @dyoshikawa in #3594
- docs(skills): re-check the new-target watchlist on 2026-10-22 by @dyoshikawa in #3576
Contributors
Full Changelog: v40.1.0...v40.2.0