Release Notes
Remote-hosting release: reach llm-orc over HTTP, serve MCP over HTTP.
No breaking changes; stdio and the local llm-orc subprocess remain the
defaults.
Added
plexus mcp --transport http --bind <addr>— the same tool set
over MCP streamable HTTP athttp://<bind>/mcp(default bind
127.0.0.1:8766;--bind 127.0.0.1:0picks a free port and logs
listening on <url>). Many clients share one process. No auth: bind
loopback and let a reverse proxy or the tailnet be the boundary.- Session semantics: each
Mcp-Session-Idgets its own active
context.set_contextin one client never affects another; the
graph, loaded specs, and lenses are shared across sessions. Sessions
are in-memory, so a restart invalidates them and clients
re-initialize. An unknown session id is answered with HTTP 401.
- Session semantics: each
--llm-orc-url <base>/PLEXUS_LLM_ORC_URLonplexus mcpand
plexus analyze—HttpClienttalks to a runningllm-orc serve
(GET /health,POST /api/ensembles/{name}/execute) instead of
spawningllm-orclocally. The flag wins over the env var; unset
keepsSubprocessClient. No overall request timeout (long ensembles
are normal); 10 s connect timeout; 404 → ensemble not found, 5xx →
unavailable (extraction degrades gracefully, Invariant 47).db_checkpoint(19th MCP tool +PlexusApi::db_checkpoint+
GraphStore::checkpoint) — runsPRAGMA wal_checkpoint(TRUNCATE)and
returns{busy, wal_pages, checkpointed_pages}. Database-level, no
active context needed;busy: truemeans another connection held the
database, retry later.- Library:
PipelineBuilder::default_pipeline_with_client,
PlexusMcpServer::with_client/new_session,McpServerConfig,
McpTransport,llm_orc::{HttpClient, select_client, resolve_url}.
Shared database (ADR-017) — what a consumer may rely on
A long-lived HTTP process plus an occasional stdio process on one
SQLite file is the ADR-017 shared-DB case. The store opens in WAL mode;
every connection has a 5 s busy timeout (rusqlite default), so
concurrent writers wait rather than fail; each persist is one short
transaction (persist-per-emission, Invariant 30), so no writer holds
the lock for the length of an ingest. Readers never block on writers.
SQLite auto-checkpoints at 1000 WAL pages; db_checkpoint forces a
full truncating checkpoint on demand.
Dependencies
reqwest(rustls) forHttpClient;axumand the rmcp
transport-streamable-http-serverfeature for the HTTP transport.
Install plexus 0.6.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/nrgforge/plexus/releases/download/v0.6.0/plexus-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/nrgforge/plexus/releases/download/v0.6.0/plexus-installer.ps1 | iex"Install prebuilt binaries via Homebrew
brew install nrgforge/tap/plexusDownload plexus 0.6.0
| File | Platform | Checksum |
|---|---|---|
| plexus-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| plexus-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| plexus-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| plexus-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| plexus-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |