mirror of
https://github.com/openclaw/openclaw.git
synced 2026-10-03 17:53:39 +00:00
* feat(memory): resolve the memory audience in the host Memory providers had to re-derive whether a caller acts for the agent owner privately or for one conversation, walking spawn lineage through session lookups. When the memory slot owner registers providerRuntime, the host mints a MemoryAudience (owner-private, or one exact conversation) from the admitted turn entry and, for spawned children, the exact parent key, session ID, lifecycle revision (or its recorded absence), and captured owner bit of every hop. Memory Core and other legacy owners resolve no audience: their turns take no session leases, read no lineage, and log nothing new. Native, ACP, and realtime voice consult children record the trusted spawning sender's owner status and parent incarnation so that lineage survives session creation, reset, and rollover. The receipt stores the parent session id as spawnedBySessionId, so navigation's parentSessionId and sessions.list stay unchanged; a child of a parent without a lifecycle revision, such as a channel-created group row, records that absence. Incomplete or stale lineage yields no audience; only a spawned row without the owner receipt predates the lineage receipts, and it logs a respawn instruction. A parent without a stored row spawns as before. Spawn rechecks a stored parent on the session read worker immediately before the child commits. Parent rows are read on the session read worker, and every captured hop holds a session generation lease, so currency checks stay synchronous and read-free. Audiences are bound to their session, released when the owning attempt or run ends, and delegated to same-agent children bound to the child's current incarnation. The host checks currency before and after opening a provider and around every provider call, and the guard it passes to a provider includes audience currency. The memory slot owner's own tools, Active Memory, and project recall also recheck it before their effects; other plugin tools reach memory only through the provider guard and do not fail on a stale audience. Session authority, plugin tool contexts, hook contexts, and Codex dynamic tools carry the audience. Native consumers cut over to it: Active Memory trigger, deep, and summary recall (caches keyed by audience; default deep-recall tools from the slot owner's recallToolNames; trigger recall runs only while tool policy allows every recall tool the provider declares), project recall, Memory Wiki, post-compaction provider refresh, doctor memory status and recall/search checks, and the status scan, which report provider health instead of legacy index counters. Legacy owners keep their trigger-recall gate, doctor and status ordering, and post-compaction sync without loading or calling the slot plugin to decide. * test(memory): consolidate memory audience tests Fold the real session-owner audience test into the shared real-lineage fixture, drop the spawn lineage unit test that the real-SQLite spawn tests already cover, share spawn parameters, and remove cases that only mirrored implementation (log text, mock passthrough, per-kind passthrough). * test(talk): expect lineage receipts on consult children |
||
|---|---|---|
| .. | ||
| acp-agents | ||
| browser | ||
| code-mode | ||
| skill-workshop | ||
| subagents | ||
| tts | ||
| acp-agents-setup.md | ||
| acp-agents.md | ||
| agent-send.md | ||
| apply-patch.md | ||
| ask-user.md | ||
| brave-search.md | ||
| browser-control.md | ||
| browser-linux-troubleshooting.md | ||
| browser-login.md | ||
| browser-wsl2-windows-remote-cdp-troubleshooting.md | ||
| browser.md | ||
| btw.md | ||
| chrome-extension.md | ||
| code-execution.md | ||
| code-mode.md | ||
| creating-skills.md | ||
| custodian-skills.md | ||
| diffs.md | ||
| duckduckgo-search.md | ||
| elevated.md | ||
| exa-search.md | ||
| exec-approvals-advanced.md | ||
| exec-approvals.md | ||
| exec.md | ||
| firecrawl.md | ||
| gemini-search.md | ||
| goal.md | ||
| grok-search.md | ||
| image-generation.md | ||
| index.md | ||
| kimi-search.md | ||
| llm-task.md | ||
| lobster.md | ||
| loop-detection.md | ||
| mcp.md | ||
| media-overview.md | ||
| minimax-search.md | ||
| multi-agent-sandbox-tools.md | ||
| music-generation.md | ||
| ollama-search.md | ||
| parallel-search.md | ||
| pdf.md | ||
| permission-modes.md | ||
| perplexity-search.md | ||
| plugin.md | ||
| progress-card.md | ||
| reactions.md | ||
| screen.md | ||
| searxng-search.md | ||
| secrets.md | ||
| self-learning.md | ||
| show-widget.md | ||
| skill-workshop.md | ||
| skills-config.md | ||
| skills.md | ||
| slash-commands.md | ||
| steer.md | ||
| subagents.md | ||
| swarm.md | ||
| tavily.md | ||
| theme.md | ||
| thinking.md | ||
| tokenjuice.md | ||
| tool-search.md | ||
| trajectory.md | ||
| tts.md | ||
| video-generation.md | ||
| web-fetch.md | ||
| web.md | ||