LMcode 0.9.25
Security and Windows-behavior hardening. Default permission mode is still auto / full-access; opting into workspace-write is now a hard boundary for Bash.
Fixed
- FetchURL SSRF false positive and IPv4-mapped bypass. Hostnames such as
fda.govare no longer treated as IPv6 unique-local.[::ffff:127.0.0.1]/[::ffff:169.254.169.254]are rejected as private addresses. - Blobref path traversal.
blobref:hashes must be a 64-character SHA-256 hex string, so../cannot escape the blobs directory. workspace-writenow denies unrestricted tools. Bash and WolfPack declare no write paths, so they can no longer write outside the workspace under this sandbox, including in yolo.- Windows Glob is case-insensitive.
*.tsmatches.TSon NTFS. - LSP no longer inherits API keys. Language servers spawn with the same env allowlist as MCP stdio (PATH / PATHEXT / USERPROFILE, not
*_API_KEY). - TUI folded history no longer keeps full tool dumps in RAM, and assistant/user snippets run through
replaceTabs. pnpm cleanworks on Windows. Packagecleanscripts usenode -e rmSyncinstead of POSIXrm -rf.
Desktop (also in 0.7.15)
- Conversation virtualization pins to the tail while following the stream, so the latest message stays mounted after 60 rows.
- Remote sessions install approval/question handlers, drop closed SDK sessions, validate JSON frames, and rate-limit auth per IP.
- Tool output pruning no longer
Array.froms the entire string.