Skip to content

Latest commit

 

History

History
358 lines (238 loc) · 11.8 KB

File metadata and controls

358 lines (238 loc) · 11.8 KB

Ingat Release Notes

Version 0.1.5 - Remote Mode Store/Retrieve Fix (2025-12-16)

🐛 Bug Fixes

  • Fixed remote mode context persistence when using mcp-stdio (Windsurf/Cascade, VS Code, Cursor) while mcp-service is already running in the background.
  • Fixed remote mode retrieval by ensuring ingest/search/history are proxied to mcp-service over HTTP (instead of attempting local embedding).

✨ Enhancements

  • Added GET /api/projects on mcp-service for 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.

🔧 Technical Details

  • New ContextApi trait to unify local and remote implementations.
  • New RemoteContextClient (HTTP) used in remote mode for ingest/search/history/projects.
  • mcp-stdio now reliably works as a thin MCP transport layer on top of a background mcp-service.

📋 Notes

  • In remote mode, embedding backend changes are not supported from the client (embedding is handled by the service).

Version 0.1.4 - Remote Mode Fix (2024-12-12)

🐛 Bug Fixes

Fixed Remote Mode Initialization on macOS

  • FastEmbed Model Download Error: Fixed issue where mcp-stdio would 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 NoOpEmbeddingEngine for remote mode - since all embedding operations are proxied to the remote mcp-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

🔧 Technical Details

  • New NoOpEmbeddingEngine in infrastructure/embeddings/noop_engine.rs
  • build_environment_remote() now uses NoOpEmbeddingEngine instead of initializing actual embedding backends
  • The RemoteVectorStore handles all operations including embedding via HTTP proxy to mcp-service

📝 Error Fixed

[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

Version 0.1.1 - Power Management & UX Improvements (2024-11-20)

🚀 Major Features

Power Management System

  • 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 State Integration

  • 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

✨ Enhancements

Service Lifecycle Management

  • 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

Cross-Platform Consistency

  • Same behavior on Windows, Linux, and macOS
  • Platform-specific data directories for state files
  • Consistent polling approach (10-second intervals) across all platforms

🐛 Bug Fixes

  • 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

📚 Documentation

  • Added comprehensive power management documentation
  • Added window state integration guide
  • Added cross-platform testing procedures
  • Added architecture explanation documents

🔧 Technical Details

  • New power_manager module for service lifecycle management
  • Integrated tauri-plugin-window-state for window geometry persistence
  • Background thread for continuous health monitoring
  • JSON state files for both service and window states

📦 Dependencies

  • Added tauri-plugin-window-state v2.4.1 for window state management
  • Added Windows-specific dependencies (optional, for future enhancements)

Version 0.1.0 - Initial Release (2024-11-15)

🎉 Major Features

Multi-Client Remote Mode

  • 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-service when available
  • Zero Configuration: Works out of the box with sensible defaults
  • Transparent Operation: Same API and functionality, just different transport layer

New mcp-service Binary

  • 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

✨ Enhancements

Remote Vector Store

  • HTTP-based storage implementation that proxies all operations to mcp-service
  • Implements the same VectorStore trait for drop-in compatibility
  • Automatic fallback to local mode when service unavailable
  • Detailed logging for debugging connection issues

Improved Startup Flow

  • Service detection on every startup
  • Clear logging of operational mode (remote vs local)
  • Graceful degradation when service unavailable
  • Better error messages for troubleshooting

Helper Scripts

  • start-with-service.ps1: One-command startup for Windows users
  • check-service.ps1/sh: Check if service is running
  • stop-service.ps1/sh: Cleanly stop the service

📖 Documentation

New Guides

  • 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

Updated Guides

  • 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

🔧 Technical Changes

Infrastructure Layer

  • New infrastructure/http_client module
    • RemoteVectorStore: HTTP-based storage implementation
    • Service availability checking with health endpoints
    • Robust error handling and retries

Application Layer

  • Enhanced build_environment() function with service detection
  • Separate build_environment_local() and build_environment_remote() paths
  • Improved logging throughout initialization

MCP Binaries

  • mcp-stdio: Updated to detect and use remote service
  • mcp-bridge: Compatible with remote mode
  • mcp-service: New unified backend server

🏗️ Build & CI

GitHub Workflows

  • 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)

Tauri Configuration

  • Added externalBin configuration for bundling MCP binaries
  • Resources configuration for helper scripts
  • All binaries available in installed app directory

🐛 Bug Fixes

  • 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

📦 Dependencies

Added

  • urlencoding = "2.1": For HTTP query parameter encoding

Updated

  • All dependencies use latest compatible versions
  • Enhanced ureq usage for HTTP client operations

🚀 Performance

  • 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

🔒 Security Considerations

  • 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

📋 Breaking Changes

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

⚡ Quick Migration Guide

For existing users:

  1. Keep using as before (single client mode)

    bun run dev

    Everything works as before!

  2. 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:

🎯 Use Cases Enabled

Individual Developer

  • Browse context in UI while coding in VS Code
  • Use Claude Desktop for AI assistance with same context
  • All tools stay in sync automatically

Team Environment

  • Run mcp-service on shared server
  • Team members connect their IDEs
  • Centralized context repository

Multi-Tool Workflow

  • Zed for quick edits
  • VS Code for main development
  • UI for management and browsing
  • All accessing same data simultaneously

📞 Getting Help

🙏 Acknowledgments

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

🔮 Future Plans

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

📊 Statistics

  • Lines of Code Added: ~3,000
  • New Files: 15
  • Documentation Pages: 8
  • Test Coverage: Maintained at existing levels
  • Build Time: No significant change

Upgrade Instructions

Future Updates

When new versions are released, upgrade instructions will be provided here.


Support

For questions, issues, or feature requests:


Full Changelog: https://github.com/sutantodadang/Ingat/releases