v0.27.0
Knowns v0.27.0
Highlights
This release moves language intelligence and semantic search onto shared project-scoped runtimes, reducing duplicate language servers, embedding providers, model loads, and memory pressure across concurrent MCP sessions. The new LSP daemon adds lazy language startup, leases, recovery, native Windows named-pipe transport, and unified administration and status reporting. Semantic indexing and retrieval now share provider caches and runtime jobs with graceful keyword fallback. Hermes Agent also gains first-class setup, MCP, skills, and bilingual documentation.
Added
- Shared project LSP daemon - Language servers are owned per project and reused across MCP sessions with lazy startup, handshake validation, lifecycle leases, recovery, locking, authentication tokens, and structured runtime state
- Shared semantic runtime - Semantic indexing, search, retrieval, and review reuse project-scoped providers and job coordination instead of loading duplicate embedding models per process
- Runtime administration and observability - Added unified status, health, logs, restart, cleanup, and runtime job surfaces across CLI, MCP, readiness, and server paths
- Hermes Agent integration - Added Hermes setup commands, MCP configuration, shared skill installation, compatibility guidance, and English/Vietnamese documentation
- Docker stress harness - Added multi-client LSP and semantic runtime stress scenarios with configurable memory and PID limits
- Windows named-pipe transport - Added native Windows IPC for the shared LSP daemon alongside Unix socket transport
Fixed
- Windows runtime stability - Isolated runtime roots, daemon queues, test homes, and process lifecycles to prevent cross-process state leakage, locked executables, retry storms, and flaky CI behavior
- Concurrent semantic fallback - Semantic preflight now tolerates transient SQLite writer contention before degrading to keyword-only search
- Claude Code global MCP setup - Global setup writes user MCP configuration to
~/.claude.jsonwhile preserving existing settings - MCP audit durability - Audit events are persisted before short-lived stdio clients receive a response, preventing process exit from dropping completed tool-call records
- Cross-platform UI workflows - UI E2E helpers now isolate runtime state, validate MCP error responses, and use the shared CI timeout policy on slower runners
Changed
- Code intelligence routing - CLI and MCP code operations now route through the shared daemon while preserving local fallback and existing response shapes
- Search and review routing - Semantic search, indexing, memory review, and decision review now use the shared runtime and provider cache
- Readiness reporting - Initial context and runtime status expose shared LSP and semantic health with clearer degraded-state information
- Runtime ownership - Expensive language-server and embedding resources now follow project/runtime boundaries instead of individual client sessions
Testing
- Added daemon identity, handshake, lifecycle, lease, locking, transport, recovery, and multi-client coverage
- Added shared semantic runtime, provider caching, concurrent job routing, degraded hybrid search, and status coverage
- Added Docker stress scenarios for LSP and semantic runtimes under memory and PID constraints
- Added cross-platform LSP fixture smoke tests and hardened Windows UI E2E isolation
- Added regression coverage for Claude global MCP configuration and synchronous MCP audit persistence
Contributors
Full Changelog: v0.26.0...v0.27.0