- Fixed remote mode context persistence when using
mcp-stdio(Windsurf/Cascade, VS Code, Cursor) whilemcp-serviceis already running in the background. - Fixed remote mode retrieval by ensuring ingest/search/history are proxied to
mcp-serviceover HTTP (instead of attempting local embedding).
- Added
GET /api/projectsonmcp-servicefor project listing in remote mode. - Introduced a shared service abstraction so the app/MCP runtime can swap between local (embedded) and remote (HTTP) backends cleanly.
- New
ContextApitrait to unify local and remote implementations. - New
RemoteContextClient(HTTP) used in remote mode foringest/search/history/projects. mcp-stdionow reliably works as a thin MCP transport layer on top of a backgroundmcp-service.
- In remote mode, embedding backend changes are not supported from the client (embedding is handled by the service).
- FastEmbed Model Download Error: Fixed issue where
mcp-stdiowould fail to start in remote mode because it was still trying to initialize the local FastEmbed model (BAAI/bge-small-en-v1.5) - No-Op Embedding Engine: Introduced
NoOpEmbeddingEnginefor remote mode - since all embedding operations are proxied to the remotemcp-service, the local client no longer needs to download or initialize any embedding models - Faster Remote Mode Startup: Remote mode now starts instantly without waiting for model initialization
- New
NoOpEmbeddingEngineininfrastructure/embeddings/noop_engine.rs build_environment_remote()now usesNoOpEmbeddingEngineinstead of initializing actual embedding backends- The
RemoteVectorStorehandles all operations including embedding via HTTP proxy tomcp-service
[ingat::mcp-stdio] Runtime failed: failed to bootstrap Ingat environment
Caused by:
0: failed to initialise embedding backend
1: unexpected error: failed to initialise fastembed model `BAAI/bge-small-en-v1.5`: Failed to retrieve onnx/model.onnx
- Cross-Platform Sleep/Wake Handling: Service automatically survives laptop sleep cycles on Windows, Linux, and macOS
- Background Health Monitoring: Continuously monitors service health every 10 seconds
- Automatic Crash Recovery: Service restarts automatically if it crashes (within 12 seconds)
- Fast Wake Restoration: Service starts within 500ms of system wake, preventing database lock conflicts
- State Persistence: Service state saved to disk, survives app crashes and reboots
- Zero Configuration: Works automatically across all sleep/wake scenarios
- Window Position Memory: Remembers window position (x, y coordinates) across sessions
- Window Size Memory: Remembers window dimensions (width, height)
- Maximized State: Preserves maximized/minimized state
- Multi-Monitor Support: Handles multiple monitor setups intelligently
- Off-Screen Detection: Automatically repositions window if it would be off-screen
- Proactive service state management prevents IDE startup race conditions
- Health monitor detects and restarts crashed services automatically
- 2-second delay between restart attempts to prevent restart loops
- Clear logging for all power management events
- Same behavior on Windows, Linux, and macOS
- Platform-specific data directories for state files
- Consistent polling approach (10-second intervals) across all platforms
- Database Lock on Wake: Fixed database lock conflicts when laptop wakes and IDE opens before main app
- Service Not Persisting: Service now runs as detached process, surviving app close
- Added comprehensive power management documentation
- Added window state integration guide
- Added cross-platform testing procedures
- Added architecture explanation documents
- New
power_managermodule for service lifecycle management - Integrated
tauri-plugin-window-statefor window geometry persistence - Background thread for continuous health monitoring
- JSON state files for both service and window states
- Added
tauri-plugin-window-statev2.4.1 for window state management - Added Windows-specific dependencies (optional, for future enhancements)
- Simultaneous UI + IDE Usage: Use the Tauri UI and multiple IDEs at the same time without database lock conflicts
- Automatic Service Detection: All clients automatically detect and connect to
mcp-servicewhen available - Zero Configuration: Works out of the box with sensible defaults
- Transparent Operation: Same API and functionality, just different transport layer
- Unified Backend Service: HTTP/REST + SSE server that holds the single database lock
- Multi-Client Support: Serve unlimited concurrent clients (UI, VS Code, Zed, etc.)
- RESTful API: Standard HTTP endpoints for all operations
- MCP SSE Transport: Native support for SSE-based MCP clients (Zed, Claude Desktop)
- Auto-Start Capability: UI can automatically start the service in the background
- HTTP-based storage implementation that proxies all operations to
mcp-service - Implements the same
VectorStoretrait for drop-in compatibility - Automatic fallback to local mode when service unavailable
- Detailed logging for debugging connection issues
- Service detection on every startup
- Clear logging of operational mode (remote vs local)
- Graceful degradation when service unavailable
- Better error messages for troubleshooting
start-with-service.ps1: One-command startup for Windows userscheck-service.ps1/sh: Check if service is runningstop-service.ps1/sh: Cleanly stop the service
- SETUP_GUIDE.md: Complete setup guide for all users
- START_HERE.md: Quick troubleshooting and startup guide
- QUICK_FIX.md: Fix database lock conflicts quickly
- docs/REMOTE_MODE.md: Technical details on remote mode architecture
- docs/IMPLEMENTATION_SUMMARY.md: Implementation notes for developers
- README.md: Updated with multi-client information and new quick start
- IDE_MCP_SETUP.md: Updated with remote mode considerations
- MULTI_CLIENT_USAGE.md: Enhanced with remote mode examples
- New
infrastructure/http_clientmoduleRemoteVectorStore: HTTP-based storage implementation- Service availability checking with health endpoints
- Robust error handling and retries
- Enhanced
build_environment()function with service detection - Separate
build_environment_local()andbuild_environment_remote()paths - Improved logging throughout initialization
mcp-stdio: Updated to detect and use remote servicemcp-bridge: Compatible with remote modemcp-service: New unified backend server
- Updated to build all three MCP binaries (stdio, bridge, service)
- Binaries automatically included in installers
- Standalone MCP binary packages for each platform
- Support for Windows, macOS (ARM64), and Linux (x64)
- Added
externalBinconfiguration for bundling MCP binaries - Resources configuration for helper scripts
- All binaries available in installed app directory
- Fixed database lock conflicts when UI and MCP clients run simultaneously
- Fixed service manager unused import warnings
- Improved error messages for database lock errors
- Better handling of service startup failures
urlencoding = "2.1": For HTTP query parameter encoding
- All dependencies use latest compatible versions
- Enhanced
urequsage for HTTP client operations
- HTTP proxy adds ~1-5ms latency per operation (negligible for interactive use)
- Service handles 100+ req/sec easily for typical workloads
- No performance degradation in local mode
- Concurrent read access with minimal lock contention
- Service binds to localhost (127.0.0.1) by default - not accessible from network
- No authentication in this release (planned for future)
- For remote access, use reverse proxy with TLS (see docs)
- All data remains local on disk
None! This release is fully backward compatible.
- Local mode still works exactly as before
- Single-client workflows unchanged
- Existing MCP configurations continue to work
- Data format unchanged - no migration needed
For existing users:
-
Keep using as before (single client mode)
bun run dev
Everything works as before!
-
Upgrade to multi-client mode (optional)
# Build the service cd src-tauri cargo build --release --bin mcp-service --features mcp-server,tauri-plugin # Use the helper script cd .. .\start-with-service.ps1
For new installations:
- Follow the SETUP_GUIDE.md
- Use multi-client mode from day one!
- Browse context in UI while coding in VS Code
- Use Claude Desktop for AI assistance with same context
- All tools stay in sync automatically
- Run
mcp-serviceon shared server - Team members connect their IDEs
- Centralized context repository
- Zed for quick edits
- VS Code for main development
- UI for management and browsing
- All accessing same data simultaneously
- Setup Issues: Read SETUP_GUIDE.md
- Lock Conflicts: See QUICK_FIX.md
- Bug Reports: GitHub Issues
- Questions: GitHub Discussions
Special thanks to:
- The Tauri team for the excellent framework
- The rmcp project for Rust MCP implementation
- All users who reported the database lock issue
- Early testers of the remote mode feature
v0.2.0 Planned Features:
- Authentication & API keys for secure remote access
- WebSocket support for real-time updates
- Metrics & monitoring (Prometheus exporter)
- Automatic service restart on crashes
- System service installers (systemd, launchd, Windows Service)
- Service status indicator in UI
- Connection pooling & retry logic
- Read replicas for scaling
- Lines of Code Added: ~3,000
- New Files: 15
- Documentation Pages: 8
- Test Coverage: Maintained at existing levels
- Build Time: No significant change
When new versions are released, upgrade instructions will be provided here.
For questions, issues, or feature requests:
- 📖 Documentation: SETUP_GUIDE.md
- 🐛 Bug Reports: GitHub Issues
- 💬 Discussions: GitHub Discussions
- 📧 Email: support@ingat.dev (if applicable)
Full Changelog: https://github.com/sutantodadang/Ingat/releases