ZeroClaw

ZeroClaw redraws cache, approval and memory authority lines

ZeroClaw has three open boundary changes: response caching now excludes requests with hooks or tools, channel approvals bind responder and destination, and SQLite remains authoritative when optional memory enrichment fails. The patches make deterministic reuse, human approval and derived context fail closed in different ways.

← Back to homeOriginal source ↗

zeroclaw-labs/zeroclaw PR #9720 is the inspected primary source: “fix(runtime): enforce response cache request boundaries.” The related records below were inspected as supporting context rather than independent confirmation.

The facts

- zeroclaw-labs/zeroclaw PR #9720 was created 2026-08-04T00:46:34Z and was open at inspection; its title is “fix(runtime): enforce response cache request boundaries.” - zeroclaw-labs/zeroclaw PR #9574 was created 2026-07-31T05:42:11Z and was open at inspection; its title is “fix(channels): authorize approval responders.” - zeroclaw-labs/zeroclaw PR #9072 was created 2026-07-14T18:55:55Z and was open at inspection; its title is “feat(memory): separate authoritative storage from optional enrichment connectors.” - The repository reported 32490 stars, 694 open issues, default branch master, and last push 2026-08-03T23:59:42Z. - The latest tagged-release baseline checked was v0.8.4 published 2026-08-02T21:00:00Z.

What changed

zeroclaw-labs/zeroclaw PR #9720 reports: Summary **Base branch:** master Apply modifying and cancelling before_llm_call hooks to an ephemeral final request before observers or the model provider see it, without rewriting durable conversation history. Restrict local full-response caching to deterministic requests with no active request hooks or declared tool schemas, and include provider family, provider alias, model, and the complete length-framed provider-visible transcript in the cache identity. Attribute request, response, failure, and cost telemetry to a hook-selected model consistently. Scope boundary: this PR does not redesign response-cache storage, eviction, provider-side prefix caching, or the broader cache policy tracked in #8321. Blast radius: the runtime Agent turn loop and opt-in local response cache. Active hooks or tools now conservatively bypass that cache, and existing entries become misses because the request identity changed. Linked

zeroclaw-labs/zeroclaw PR #9574 reports: Summary **Base branch:** master **What changed and why:** Bind pending Telegram, Slack, Lark, and Matrix tool approvals to the chat or room that received the prompt. Resolve an approval only when the replying identity is allowed by the adapter's live peer resolver and the reply arrives in that original destination. Distinguish an unknown approval token from a known-but-rejected or consumed token so rejected Slack and Matrix text replies cannot become normal agent messages. Add deterministic authorization coverage for all four adapters, including mocked Telegram getUpdates, Slack polling, Matrix sync, and the shared Lark WebSocket/webhook card-action ingress router. **Scope boundary:** This does not add configuration, a principal model, new network calls, or changes to Discord and WhatsApp approval behavior. **Blast radius:** Interactive and text-reply approval handling

zeroclaw-labs/zeroclaw PR #9072 reports: Summary **Base branch:** master **What changed and why:** Separates authoritative memory storage from optional enrichment. memory.backend selects the durable store (SQLite stays authoritative); a new independent memory.enricher selector plus a [memory_enrichment.. ] catalog configure a best-effort connector behind the new MemoryEnricher trait and EnrichedMemory wrapper (local-first writes, failure cooldown covering stores and recalls, deterministic merge, agent-allowlist fail-closed dispatch, canonical-row rehydration, untrusted-source fencing for derived context). Lucid migrates from a storage backend to the first enrichment connector. The seam is the point: additional providers (e.g. a Shodh connector) can now be added as enrichers without touching storage semantics - per the RFC, those are separate follow-up work. **Scope boundary:** Implements the Lucid connector only - no Shodh or other remote connector ships in this PR.

Why it matters

These patches share one design move: derived or cached state must not outrank the authority that produced the current request. A response cache, approval token or enrichment connector becomes dangerous when it can silently cross model, room, identity or agent boundaries. The operator test is whether persisted state, execution authority and the visible user outcome describe the same event after retries, restarts or delegation.

Current

The primary record was open when captured on 2026-08-04. The release baseline was v0.8.4 published 2026-08-02T21:00:00Z. Repository metadata, pull requests, issues, release records, Google News discovery, Hacker News discovery, Lobsters, Metamesh and the rendered ClawCharts row were checked. ClawCharts selected the subject; it did not prove the claim.

Evidence

The primary URL is https://github.com/zeroclaw-labs/zeroclaw/pull/9720. Supporting records are https://github.com/zeroclaw-labs/zeroclaw/pull/9574 and https://github.com/zeroclaw-labs/zeroclaw/pull/9072. Source bodies, timestamps and states are preserved in the daily evidence bundle. Test counts, reproductions and deployment observations remain attributed to their authors unless explicitly identified as independently rerun.

Source boundary

Open work is described as open, closed work as closed, and operator reports as reports. A pull request is evidence of proposed or reviewed direction, not proof of a shipped release. Search residue, package mirrors and historically published source spines were excluded.

Operator take

Test cross-alias cache misses, rejected approval replies and connector outages as first-class scenarios; retain local authoritative state and explicit rollback switches. Preserve a before-state receipt, make the smallest reversible change, and verify the original failure independently after intervention.

Caveat

Public project records are mutable. Status, scope and evidence can change after publication. This brief records the inspected state and does not authorize changes to a reader’s deployment.

Source inspected; source state, environment and release boundary remain explicit.