Files
Zayn Jarvis 8a0d362647 fix(openclaw): widen to unscoped recall when peer_role=sender has no sender (#5347)
* fix(openclaw): widen to unscoped recall when peer_role=sender has no sender

OpenClaw does not pass runtimeContext to context-engine assemble(), and cron,
heartbeat and webchat turns carry no sender. With peer_role=sender the plugin
threw "requires a sender identity" there, so auto-recall failed every turn and
tools without a sender errored.

Peer scoping is soft isolation: a missing sender now warns and continues as an
unscoped request (no X-OpenViking-Actor-Peer), like the MCP proxy (#5132).
memory_forget refuses in that state, since an unscoped search could pick and
delete another sender's memory. Capture already stored no peer_id when the
sender is missing and is unchanged.

* fix(openclaw): let memory_forget widen like find when the sender is missing

Peer scoping is soft isolation; forget follows the same unscoped fallback
as recall and find instead of refusing.
2026-09-24 11:43:50 +08:00
..