This release adds 3 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Affected surfaces
Summary
AI summaryUpdates Highlights, https://github.com/receptron/mulmoclaude/issues/1982, and https://github.com/receptron/mulmoclaude/issues/1946 across a mixed release.
Full changelog
Highlights
Windows Docker sandbox: end-to-end (#1982)
The ESM half of the #1946 / #1982 resolver gap. NODE_PATH is CJS-only per Node's spec, so 0.9.4 restored preset loading but left the MCP child's static ESM imports (import { readXPost } from "@mulmoclaude/x-plugin") failing on Windows. New server/agent/mcp-esm-loader.mjs + mcp-esm-bootstrap.mjs register a resolver hook via tsx --import that falls back to /app/pkg_modules/@mulmoclaude/* when default resolution fails.
The Windows CI probe (test/sandbox-repro/probe.ts) grew an ESM import() step, so this class of regression can't slip through again. No-op on Linux / macOS.
HEIC / HEIF / TIFF / BMP / AVIF attachments
- Uploader auto-converts these to JPEG server-side (#1996 via #1998).
- Pre-send preview chip decodes HEIC in the browser (#2000) so the confirmation thumbnail is legible.
User-extensible sandbox CSP (#1989)
Sandboxed collection views can whitelist third-party origins via workspace config/csp.json. A CSP-violation notice + boot-time warnings surface misconfigurations to the user instead of failing silently. Default remains locked down.
Remote host: offline queue for startChat (#1993)
Mobile companion's startChat requests hold while the host is offline; the host + @mulmoclaude/core layer replay them once the presence doc goes live. Presence doc now advertises host capabilities so mobile knows what's supported before submitting (#1992).
Lint: assertions-in-tests promoted warn → error
Three-batch cleanup (#1999 / #2001 / #2005) rewrote every flagged no-throw / side-effect-only test to wrap the target call in assert.doesNotThrow(...) / assert.doesNotReject(...). Includes a new real boundary test for deleteProjectSkill's user-scope refusal (was an empty placeholder before). Rule is now error in eslint.config.mjs — CI blocks a new assertion-less test.
Files: "Open in OS" button (#1988, closes #1985)
Binary / unsupported previews get an OS-native open button so the Files view isn't a dead end when MulmoClaude can't render inline.
Sandbox: allow file downloads from collection views (#1997)
Downloads no longer blocked by iframe sandbox flags.
Full Changelog
See CHANGELOG.md for the complete Added / Changed / Fixed / Security list.
📦 npm launcher: [email protected] (2026-07-08)
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About MulmoClaude
All releases →Related context
Related tools
Beta — feedback welcome: [email protected]