CortexDB 0.9.4 — the new Admin UI
Feature release headlined by a ground-up redesign of the embedded admin
console, plus answer-stage determinism fixes, a facts-plane
consolidation pipeline, and a new query-shape classifier. No storage
format changes, no migration: 0.9.x data directories work as-is. The
only new on-disk state is two sidecar files in the data directory
(feature_overrides.json, settings_overrides.json) written when you
change things from the UI.
The new Admin UI (the headline)
The bundled web console was rewritten from a single-page memories view
into a full sidebar application — still zero-dependency, still embedded
in the binary (no CDN, works air-gapped), served at / on the API
port.
- Pages: Overview, Memories, Console, Artifacts, Conflicts, Observability, Features, Settings, Logs, Data & scopes, Audit & access, Maintenance, Updates.
- Design system v2: bento Overview with live throughput, interactive
hand-rolled SVG charts (hover crosshair, tooltips, draw-in animation),
count-up KPI tiles, command palette (
Ctrl+K), notification center, drawer/modal overlays, mobile sidebar. - Features: plain-English bundle toggles — Enrichment, Artifacts, Knowledge graph, Deep re-ranking, Time-travel facts, SQ8 vectors, Flat memory mode, Fast bulk upload, Background maintenance, Telemetry. Toggles persist across restarts, apply live where the server re-reads flags per request, and honestly report "restart required" where it doesn't.
- Settings: a curated registry of the ten AI/processor connections (embeddings, enrichment, recall ranking, answers, verifier, reranker, document/audio/video/image processors). API keys are write-only — the UI only ever sees a configured flag and a last-4 hint.
- Logs: live tail of a 2,000-entry in-process tracing ring buffer — no more shelling into the box for a quick look.
- Updates: version + build provenance (git SHA, build date),
bundled release notes, and an optional remote update check
(
CORTEX_UPDATE_FEED_URL). - One-click restart: persists all view snapshots, exits cleanly, and lets your supervisor (systemd/Docker) relaunch; the UI polls health and reloads itself when the server is back.
- Ops metrics:
/v1/admin/metricsnow reports a top-level storage breakdown by component, process RSS (Linux), and WAL event counts.
The UI is backed by a new internal API under /internal/ui/*
(authenticated, not part of the stable v1 surface, deliberately kept
out of the OpenAPI spec; surfaces will be promoted to /v1 as they
prove out). Asset URLs are versioned so browsers can never pin a stale
UI across server upgrades.
Answer-stage determinism
Two chronic classes of quantitative questions now answer deterministically instead of via LLM re-counting:
- Stated totals win: when the source material explicitly states a cumulative total, the answer stage extracts and returns it rather than re-counting rows (the scan is silent when nothing is stated).
- Provable windowed zero: count questions over a time window with verifiably zero matching events return an exact zero with the window spelled out.
- Optional two-pass quantitative flow behind
CORTEX_TWO_PASS_QUANT. - The Anthropic router speaks the Claude 5 adaptive-thinking request
format (
thinking.type=adaptive+output_config.effort).
Facts plane
The derived facts layer gained a real consolidation pipeline: a
background fact consolidator merges per-session extractions into
canonical facts, a fact sweeper compacts oversized ledgers,
question-shaped fact keys (with bounded embedding backfill) make
cross-session attribute lookups retrievable, and fact ranking is
grade-aware. Belief building now reads post-consolidation facts only.
consolidation_backlog is reported in layer stats for ops visibility.
New: query-shape classifier
A new cortex-shape-classifier crate classifies incoming recall/answer
queries into shapes (enumeration, temporal endpoint, attribute lookup,
…) using prototype scoring with a LinUCB bandit and an escalation path,
feeding the answer planner. Wired into the server; shadow-mode
telemetry ships in this release.
LLM gateway
- Multi-lane compile pool for enrichment models (DeepInfra, Nebius, Modal) with per-lane health rotation.
- Request timeout raised 90s → 300s for dense-session enrichment; worker-thread panic isolation in the facts pipeline.
Compatibility
- No API-breaking changes;
/v1surface is unchanged. /internal/ui/*is explicitly unstable and may change without notice.- Data directories from any 0.9.x release load without migration.