Repository navigation
v1.0.5 - Major: Engine Process Separation
Overview
The engine has been refactored from a leader/follower model into a fully independent subprocess architecture. The MCP server is now a thin stdio proxy that spawns and communicates with a standalone engine process via localhost HTTP.
- Stale client detection — engine tracks which MCP processes are alive and shuts down gracefully when all clients exit
- Bidirectional workspace matching — engine correctly routes searches even when workspace paths differ slightly
- Cached startup fingerprint — code fingerprinting on reconnect ensures engine auto-restarts when source changes
- Dashboard extracted — HTML dashboard now served directly by the engine at GET /
Fixes
Accept actionState: 'Success' for say actions (previously only matched lowercase)
Robust engine health checks with zombie process killing and degraded-mode fallback
Use SIGTERM before SIGKILL when killing stale engine processes (Unix)
Add threading.Lock to FollowerRegistry preventing RuntimeError on concurrent access
Clear error message when both engine ports are unavailable
Log full traceback on 500 errors in engine HTTP handlers
Persist content_tier / tool_name in indexer, normalize outcome newlines
Fix workspace path decode bug in spawn logging
##New Features
- --config CLI flag for specifying config file path
- Windows compatibility improvements
Testing
- Added mutation testing infrastructure with mutmut
- Mutation-targeted tests for search_utils and tool_summaries boundaries
- 710+ tests passing
Chores & Docs
- Contributing section added to README
- Dead code cleanup (follower routing, old leader-promotion spec, stale coordination references)
- Clarified MD5 usage is for change detection, not security
- Updated steering files and architecture docs for new process model
- Recommend local clone install path over GitHub Power for development