All notable changes to escurel are recorded here. The format is
loosely Keep a Changelog. Through the
v1.0.x line escurel used SemVer; from v2026.07.13 onward versions
follow vYYYY.MM.DD — the date the binary set was cut (same-day
re-cuts append .N), matching the DataZoo release scheme (cf. erpl).
- BREAKING: removed the gRPC transport. HTTP (MCP-over-HTTP +
WebSocket) is now the only transport. Deleted the
escurel-protocrate and the:8081gRPC listener.escurel-clientnow speaks MCP-over-HTTP, and theescurelCLI /escurel-tuidefault--servertohttp://127.0.0.1:8080. Admin/operator capabilities are now admin-role-gated MCP tools onPOST /mcprather than a separate gRPC service. Long-running admin ops (rebuild,compact_lanes,tenant_export,tenant_import) are blocking JSON-RPC calls that return their final result directly; tarballs are carried base64-encoded in the JSON (tenant_export→{tarball_b64, bytes},tenant_importtakes{tenant_id, tarball_b64}) rather than as gRPC streams.live_sessionruns over the WebSocket at/ws.
escurel-clientadmin + streaming surface: anAdminClientfor the unaryEscurelAdminRPCs (tenant CRUD, audit, quota, health,attach_external,embedding_reload,compact_lanes) plus the server-streaming (export / rebuild / compact) and client-streaming (import) flows, and the agent event/validate RPCs (capture_event/list_inbox/list_events/assign_event,validate).
- Rebuilt the
escurelCLI as a gh/aws-style noun-verb tree overescurel-client(skill,instance,page,link,event,query,chat,admin, plus top-levelsearch/resolve), with a global--format json|tableflag and a JSON-on-stderr error contract (non-zero exit) for agent consumption. - New
escurel uisubcommand launches the interactive terminal browser against the same--server/--token.
- New
escurel-tuicrate: a k9s-style interactive terminal UI (ratatui + crossterm) overescurel-client. Elm-styleApp(navigation stack skills → instances → entity, inbox + per-instance event history, outgoing links + backlinks,/filter,?help) with a panic-safe terminal guard and a real crossterm event loop. Logic is terminal-free and exercised against a real gateway via a ratatuiTestBackend(no mocks); run it withscripts/verify-tui.sh.
First stable release. The v1 cut-line in
docs/spec/roadmap.md is met.
- Read:
search(hybrid vector + FTS, RRF-fused),resolve,expand,neighbours,list_skills,list_instances,run_stored_query,validate. - Write:
update_page. - Live CRDT:
open_session/apply_op/close_sessionover HTTP and the WebSocket/wsattach path (Loro engine, per-pageLiveDocactor, op-log + snapshot persistence, two-stage external-edit reconciler). - Chat history:
append_message/list_messages(per-chat-group conversation log).
Tenant CRUD, streaming export/import, audit, streaming rebuild,
attach_external (read-only external catalog), embedding_reload
(degraded-start recovery), compact_lanes (subsumed op compaction),
quota_get, and an auth-free health.
- DuckDB-only per-tenant store (vss + fts extensions); HNSW dense vectors + FTS, fused with Reciprocal Rank Fusion.
- LaneStore trait with S3 (Hetzner Object Storage) as the production default and a local-FS dev backend.
- Crash-recovery: mid-write transaction rollback; cattle-node-loss → automatic rebuild-from-markdown on boot.
EmbeddingGemma in candle (CPU default) behind a reloadable seam; Gemini as an optional hosted provider; a zero/hash embedder for the dev loop.
axum HTTP gateway (MCP/JSON-RPC framing + /ws),
OIDC JWT verification with JWKS caching, token-bucket quotas across
three dimensions (queries, writes+embeds, concurrent sessions).
- 12-factor
escurel-serverbinary:ESCUREL_*config (over TOML), ports 8080/8081, graceful SIGTERM, degraded-start. - OpenTelemetry traces + Prometheus
/metrics+ structured JSON logs withrequest_id. - Substrate deployment artefacts: Nomad jobspec set, Packer golden-image fragment, tenant-export shipper periodic job, Tailscale ACL fragment, and a three-target deploy guide.
cargo denylicense + advisory audit;Cargo.lockcommitted.
escurel-clienttyped RPC wrapper (leaf crate — no server deps).escurel-test-support:EscurelProcess+AuthMode::TestIssuerFixtureBuilder+McpTestClient— spawn escurel in a downstream app's tests without re-deriving the JWKS/RSA harness.
escurelCLI;examples/echo-appdemonstrating the chaining recipe.
Built red→green TDD with no-mock integration tests as the merge gate. GitHub Actions CI (paused during bootstrap) is re-enabled at this release for every push to main and every PR.