This release adds 3 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
+13 more
Summary
AI summaryUpdates β‘ Latency campaign, π§ Semantic layer governance, and π Also across a mixed release.
Full changelog
v1.21.0 β Latency campaign, semantic-layer governance, ReAct turn isolation
Architecture decisions: ADR-090 β Semantic Layer Governance Β· ADR-091 β Response-Context Prefetch
β‘ Latency campaign (ADR-091)
- Response-context prefetch: the response node's user-context injections (embedding, memory, user/system RAG, journal, portrait, psyche) are prefetched from the initiative node, overlapping its ~12s LLM evaluation in BOTH pipeline and ReAct modes β identical inline fallback on any miss. ~0.5β2s off every enriched turn.
- Rich-HTML CSS externalized: the LLM no longer emits a ~550-token inline
<style>block per rich reply (~3β4s of streaming saved) β the.lia-responserules ship once in the app stylesheet. - LLM instance cache: client instances reused across calls (httpx pool keep-alive, no TCP/TLS handshake per call), invalidated on API-key/capabilities reloads.
- Reasoning-stream negative cache: kills the silent SECOND full LLM call per turn on buffered structured-output paths (observed on query_analyzer: +1.3β2.5s TTFT, double cost).
- Non-blocking contacts warmup Β· RAG query-embedding cache + single-flight Β· reducer tiktoken memoization Β· frontend SSE token batching (per animation frame, order-preserving).
π§ Semantic layer governance (ADR-090)
- Typeβtool links = ontology βͺ live manifest annotations (rename-proof, covers MCP tools), shared by the planner, the initiative and the ReAct prompt.
- 12 phantom tool names fixed (~50% of
used_in_tools, v3.2 rename drift) β dead initiative bridges resurrected (contact β places/weather/route). - 5 test-enforced integrity locks make naming drift impossible by construction.
- Initiative
<SemanticBridges>: pre-computed connection candidates so smaller models can act on cross-domain opportunities without frontier-grade inference.
π οΈ ReAct fixes (field bugs)
- Cross-turn data leak: the previous turn's results (e.g. "my next 4 events") no longer re-appear inside the next answer β per-turn registry purge + passthrough fix.
- Exact values over approximations: PRECISION rule + cross-domain type map in the ReAct prompt β routes now use the contact's exact address, not a city recalled from memory.
π Also
- Skill badge on assistant messages now visible to all users (was debug-panel-only).
- Shared Redis rate limiter singleton +
NOSCRIPTretry (ends the permanent fail-open after a Redis restart). - Reliability batch: GC-safe fire-and-forget (5 call-sites), response-language fallback, timezone centralization,
.envparsing crash, FOR_EACH unbound-variable guard.
π Quality
Ruff / Black / MyPy strict clean Β· 8469 backend unit tests green (+~60 new) Β· verified live in the running container Β· FAQ changelog + technical FAQ refreshed in 6 locales Β· no schema change, no migration Β· 4 new optional env vars.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About LIA
All releases βRelated context
Related tools
Beta — feedback welcome: [email protected]