Skip to content

v4.0.0 — Enterprise Concurrent Access

Choose a tag to compare

@lyonzin lyonzin released this 09 Jun 17:14
4168c71

Enterprise Concurrent Access — SSE/HTTP Transport

The server now supports SSE and streamable-http transport modes. A single server process serves all clients with shared resources — 1 embedding model, 1 ChromaDB, 1 query cache.

New Features

  • SSE/HTTP transport: server.transport: "sse" in config.yaml or --transport sse CLI
  • Thread-safe shared state: QueryCache locking, BM25 build lock, orchestrator double-checked locking
  • ChromaDB WAL mode: Enabled automatically in SSE/HTTP mode for concurrent read performance
  • Rate limiting: Optional sliding-window counter (disabled by default)
  • Prometheus metrics: Optional /metrics endpoint on separate port (disabled by default)
  • All 12 tools instrumented: @rate_limited + @instrument decorators (zero-cost when disabled)
  • --transport CLI override: For Docker/systemd deployments
  • pip install knowledge-rag[server]: Optional dependency for SSE/HTTP (uvicorn)

Migration

Default transport remains stdio — existing users need zero changes. To enable SSE:

# config.yaml
server:
  transport: "sse"
  host: "127.0.0.1"
  port: 8179

MCP client config:

{"mcpServers": {"knowledge-rag": {"type": "sse", "url": "http://127.0.0.1:8179/sse"}}}

Also includes v3.9.1 fixes

  • Expand ~ in config paths (#86)
  • Accumulate-mode file watcher debounce
  • Batched ChromaDB writes (500 chunks/call)
  • Reindex concurrency lock

Acknowledgements

Thanks to @noahcoad for #86.

Full Changelog: v3.9.0...v4.0.0