NullClaw
NullClaw revives memory-recall controls as archive handling gets a separate review
NullClaw reopened the path to configurable automatic recall through a new September 24 proposal after an earlier fork disappeared. It offers an opt-out and entry/byte budgets. A separate archive patch would exclude old conversation shards from live prompts; its diff is stricter than the proposal's fallback wording.
NullClaw's new recall-controls request restores earlier work under a fresh pull request rather than presenting the idea as newly invented. It would let operators disable automatic memory injection without disabling storage or the explicit recall tool, and bound how much memory enters each turn. A separate September 24 archive proposal addresses the risk of old conversation copies competing with the current message. Together they expose two different decisions: whether to recall automatically, and which records are eligible to become live context.
The facts
- PR #1001 restores the earlier #979 work because the deleted head fork prevented reopening that request. - The proposed auto_recall default is true; setting it false skips automatic injection while retaining autosave and on-demand recall. - The proposed defaults are five injected entries and a 4,000-byte memory block, measured as UTF-8 bytes rather than tokens. - The documentation says an individual entry is truncated to half the configured byte budget. - PR #1005's inspected diff skips archived conversation shards in live context, rather than merely appending them after preferred matches. - Its SQLite changes apply the session condition before the result limit so unrelated rows cannot consume the scoped result window.
Why it matters
More retained history does not automatically mean a better answer. If a retrieval result resembles an old instruction, a model can focus on it instead of the new request. Turning automatic recall off is one coarse control; filtering the candidate set is a different, more selective one. The archive diff also shows why retrieval order matters before the model sees anything: filtering after a global result cap can leave the right session with no useful entries even when matching records exist. This is a context-selection problem, not an argument to erase history.
Current
Both requests remain open. NullClaw's inspected stable release is v2026.5.29, with a separate mutable nightly channel; neither fact proves these proposals are included. The archive request body still says archived rows remain as a same-scope fallback, while the live-context diff explicitly skips them. This brief follows the inspected implementation for that path and preserves the discrepancy rather than describing the older prose as settled behavior.
Evidence
Primary: nullclaw/nullclaw PR #1001 (https://github.com/nullclaw/nullclaw/pull/1001). Supporting context: nullclaw/nullclaw PR #1001 — implementation diff (https://github.com/nullclaw/nullclaw/pull/1001/files); nullclaw/nullclaw PR #1005 (https://github.com/nullclaw/nullclaw/pull/1005); nullclaw/nullclaw PR #1005 — implementation diff (https://github.com/nullclaw/nullclaw/pull/1005/files). Source pages and available diffs were inspected; test and live-account results remain attributed to their authors, not independently repeated measurements.
Operator take
If the controls land, evaluate the agent with automatic recall both on and off using the same short task and known memory records. Check explicit recall separately so that an injection opt-out is not mistaken for memory deletion. For byte budgets, use multilingual examples as well as ASCII: a byte count is not a token count or character count. For archive handling, construct a scoped fact alongside higher-ranked archived copies and inspect the actual injected context. Those focused tests would tell an operator more than the presence of three new configuration keys alone.
Caveat
The revived proposal credits earlier work and is not a shipped feature. Reported test results were not rerun here. Archive prose and implementation differ, and the two open branches should not be assumed to combine cleanly or define one fully settled memory policy.
The revived proposal credits earlier work and is not a shipped feature. Reported test results were not rerun here. Archive prose and implementation differ, and the two open branches should not be assumed to combine cleanly or define one fully settled memory policy.