/v1/* is now stable. Additive changes only.
Breaking changes will be delivered under a new /v2/*
namespace. features.* in /v1/version tracks
currently-active capabilities so clients can feature-detect.
| Metric | Value |
|---|---|
| Tests passing | 1096 (up from 32 at v1.32) |
| Endpoints | 80+ across /v1 and /v1/admin |
| Side-channel analytics stores | 6 |
| Background daemons | 4 |
| HTML dashboards | 4 |
| Iterations | 68 (v1.32 → v2.00) |
| Layer | Shipped | Path |
|---|---|---|
| push | v1.71 webhook + v1.79 circuit breaker | TAU_RAG_AUDIT_WEBHOOK_URL |
| batch | v1.74 audit export | /v1/admin/audit/export |
| pull-stream | v1.75 SSE log tail | /v1/admin/logs/stream |
| history | v1.78 metrics + v1.88 content-health | /v1/admin/metrics/history |
| breaker | v1.79 (inside webhook dispatcher) | /v1/admin/webhook |
| rules | v1.80 + v1.81 scheduler | /v1/admin/alerts |
| Dim | Version | Store |
|---|---|---|
| per-doc | v1.82 | DocumentStatsStore |
| per-retriever | v1.83 | RetrieverAttributionStore |
| (doc, doc) pair | v1.84 | CoCitationStore |
| per-query | v1.89 | QueryStatsStore |
| doc freshness | v1.94 | DocFreshnessStore |
| (query, doc) pair | v1.96 | QueryDocAffinityStore |
Cross-cut views: content health (v1.85), update priorities (v1.95), query analytics UI (v1.98), unified dump/restore (v1.97).
X-Request-IDEach analytics dimension is an independent module:
set_X()/get_X() for
test injectionrecord() after step 7 (signals),
silent-fail on exception/v1/version.features.*4 background threads (AutoSnapshotter,
MetricsHistorySampler, AlertScheduler,
AnalyticsRetentionScheduler) share the same shape:
start() / stop() / is_running /
status()threading.Event.wait(timeout=interval_s) for clean
stop — no polling loopslast_error stored;
loop continues)4 dashboards (admin UI, content health, chunks viewer, query analytics) share the same design:
html.escape(quote=True); tested with XSS payloads?refresh=N → meta http-equiv="refresh" for
wall screens, no JS timerEvery stateful module (auth, obs, limiter, cache, 6 analytics stores, 4 schedulers) uses the same pair: module-level singleton + setter for test injection. Lets prod use globals while tests keep clean state per run. No dependency injection framework.
/v1/* paths work identically./v2/* with a 6-month parallel-run period./v1/version.features.* are
discovery not contract — they may come and go as features
evolve.Honest accounting:
This stretch shipped across one long coding session, with one
Living Document (RAG_Projects_Ultimate_Report.html)
tracking every iteration. The Living Doc remains the canonical
changelog — this file is a v2.0 summary.
Released 19 April 2026.