v4.0.0 — Enterprise Concurrent Access
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 sseCLI - 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
/metricsendpoint on separate port (disabled by default) - All 12 tools instrumented:
@rate_limited+@instrumentdecorators (zero-cost when disabled) --transportCLI override: For Docker/systemd deploymentspip 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: 8179MCP 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
Full Changelog: v3.9.0...v4.0.0