Skip to content

v0.9.6 — MCP broker `handlePermission not found` family fix + mobile QR

Choose a tag to compare

@isamu isamu released this 12 Jul 03:34

Highlights

MCP broker handlePermission not found — full family fix (#2058)

The sandbox MCP broker could fail to come up, dropping every mcp__mulmoclaude__* tool at once — so the CLI reported the missing permission-prompt tool instead of the real cause. Fixed across two layers, each with regression tests (mapped in plans/mcp-broker-availability-matrix.md):

  • Windows junction fallback now covers every workspace scope (#2052) — the /app/pkg_modules fallback covered only @mulmoclaude/*, so @mulmobridge/* dangled inside the Linux container and the broker died at load. Verified on real Windows CI (WSL2 + native dockerd, real NTFS junctions).
  • npx nested node_modules mounted (#2056) — deps npm nests in the launcher's own node_modules (instead of hoisting them) are now bind-mounted into the container.
  • Scheduler startup race (#2057) — a spawned chat's broker can lose the startup race to the CLI's first tool call. Now same-minute firings are staggered (capped to half a tick), a lost race is auto-recovered by replaying the turn once (guarded against double-execution and aborts), and a spawned-but-failed run records its real error instead of a false "success".

Remote host: mobile PWA QR code (#2054)

The remote-host popover now shows a QR code for the mobile PWA — pair a phone without typing the URL.

Fixed

  • isTestEnv no longer misdetects any path containing "test" (which caused yarn dev 401s) — exact argv match now (#2064).
  • npm file: specifiers emit POSIX separators, fixing Windows CI installs (#2048).
  • Whisper absorbs a late partial-file open error during model download instead of crashing the stream (#2046, #2047).

Also

  • Internal refactors clearing the max-lines-per-function lint ratchet (whisper, relay, composables) and a dependency refresh.

📦 npm: mulmoclaude@0.9.6

Full Changelog

See CHANGELOG.md.