github mksglu/context-mode v1.0.136

4 hours ago

v1.0.136

Bundles seven fixes that landed on next after v1.0.135, with critical lifecycle and install-path repairs for the Claude Code + macOS user base.

Critical fixes

MCP idle shutdown no longer strands ctx_* tools on Claude Code/Codex/editor hosts (#592, #595). v1.0.132's global 15-minute idle self-shutdown had a silent regression on every host that does NOT auto-respawn its MCP child — Claude Code, Codex, and every editor MCP client returned MCP server has exited on every ctx_* call after the timeout. v1.0.136 flips the policy to opt-in: idleTimeoutForEnv({}) now returns 0 by default, and OpenCode/Kilo shipped configs explicitly set CONTEXT_MODE_IDLE_TIMEOUT_MS=900000 so they retain the #565 protection. Closes #592.

Atomic swap of cached native binary closes the macOS cold-start race (#587, #591). ensure-deps.mjs previously did copyFile then codesign on the active better-sqlite3 binary in two non-atomic steps. If the process exited between them, the binary was left copied-but-unsigned and dlopen failed on next boot, bricking the install. v1.0.136 stages the binary at .staging-{pid}-{timestamp}, codesigns it there, then atomically renames it into place. Closes #587.

Adapter parity

Codex exec_command payloads now route through the same Bash policy path as Claude Bash (#575). Codex ships its shell command as { cmd }; Claude's Bash tool uses { command }. The previous routing only read command, so Codex shell calls bypassed the security policy entirely. getShellCommand() now normalizes both shapes. Bundled hook scripts force CONTEXT_MODE_PLATFORM=codex and route security policy reads through ~/.codex/settings.json (overridable via CODEX_HOME).

Quality + lifecycle

Pi MCP bridge respawn guard moved to request() + single-flight protection (#585). #583's initial fix patched only callTool(), leaving listTools and initialize re-entry paths unprotected after an idle exit. The respawn check now lives at the single chokepoint so every JSON-RPC method auto-heals, with a single-flight promise preventing concurrent orphan spawns.

AskUserQuestion now records the selected answer label in session events (#586). Previously only the question text was logged — ctx_insight timelines showed empty branches where decisions had been made. Both the question and the chosen answer label now land in the session DB.

External-MCP nudge re-fires periodically instead of once per session (#593). The advisory that surfaces ctx_* tools after a large external MCP output now re-fires after a configurable interval, so users who learned about it once don't forget it for the rest of the session.

Collapsible output for context-mode tools (#594). Long ctx_* outputs render as collapsible sections in supported clients, keeping the conversation scrollable without truncating evidence.

Tests

3354+ pass on full suite. Pre-existing baseline failures unchanged.

Compatibility

15 adapters, 3 OS. No schema migration. engines.node >= 22.5.0 preserved.

Upgrade

npm install -g context-mode@latest
# Restart Claude Code (Cmd+Q + reopen) to load the new MCP server.

Don't miss a new context-mode release

NewReleases is sending notifications on new releases.