Fixes
#158 — start.mjs unconditionally writes routing file
- Hook-capable platforms (Claude Code, Gemini CLI, OpenCode, OpenClaw) no longer get routing instructions written to disk — the SessionStart hook handles it, keeping your git tree clean.
#159 — OpenCode hook interface mismatch (BREAKING for OpenCode users)
- Fixed
opencode-plugin.tsto use OpenCode's actual two-parameter hook signature(input, output). - Field mapping corrected:
tool_name→input.tool,tool_input→output.args,tool_output→output.output. - Arg mutation now correctly targets
output.argsso OpenCode reads the modified values. - Note: This was always broken — the old single-param interface meant routing enforcement never triggered for OpenCode/Kilo Code users.
#160 — Marketplace sync: cli.bundle.mjs missing
ctx_doctornow runs all diagnostics server-side (no CLI file dependency).ctx_upgradefalls back to a temp.mjsscript when CLI files are missing.start.mjsself-healscli.bundle.mjsfrombuild/cli.jswhen the bundle is absent.session-loaders.mjsfalls back tobuild/session/*.jswhen bundles are missing.- Skills (
ctx-doctor,ctx-upgrade) prefer MCP tool, Bash as fallback.
Additional
- Replaced fabricated
OPENCLAW_PROJECT_DIRenv var with realOPENCLAW_CLI(verified against upstream openclaw/openclaw source). postinstall.mjs: improved nvm4w shim detection +isSafeWindowsPathguard against cmd.exe injection.- CLI self-heal shim now gets
chmod +xon Unix.
Stats
- 19 files changed, 601 insertions, 264 deletions
- 1194 tests passing, TypeScript clean
- Reviewed by Staff Engineer + Principal Engineer