Bug type
Behavior bug (incorrect output/state without crash)
Beta release blocker
No
Summary
After the external-conversation contract landed, conversations_list returned no Reef conversation for a locally approved, connected peer unless another path had already created a local session.
Steps to reproduce
- Configure two Reef peers and approve their friendship.
- Confirm Reef reports connected and the local friend list contains the remote peer.
- From the agent, call
conversations_list with channel: reef before any Reef session exists for that peer.
- Observe an empty conversation list, so
conversations_turn has no opaque conversationRef to use.
Expected behavior
An approved Reef peer should be discoverable as an opaque external conversation address without first creating or invoking a local model-context session.
Actual behavior
The list read only persisted session-linked conversation rows. The approved peer existed in Reef's local trust store but was absent from conversation discovery.
OpenClaw version
main after #109411 (a2ec3f69046d0a47ed61688a369c070ccdb1307f)
Operating system
macOS and Ubuntu 24.04
Install method
Source checkout with Gateway service
Model
Not applicable; failure occurs before model inference.
Provider / routing chain
OpenClaw Gateway -> bundled Reef plugin -> Reef relay
Additional provider/model setup details
Not applicable.
Logs
Reef: enabled, configured, running, connected
Approved peer: present in local friend/trust store
conversations_list(channel=reef): conversations=[]
Screenshots, recordings, and evidence
Related architecture contract: #108666. No private host/config screenshot is attached.
Impact and severity
- Affected: agents coordinating through Reef
- Severity: high for agent-to-agent handoffs
- Frequency: every first contact with an approved peer lacking a pre-existing local session
- Consequence: the agent falls back to raw transport targets or cannot start a correlated Reef turn
Additional information
The fix should keep external address discovery separate from model-context session creation. Listing a trusted peer must not fabricate a session; the first send/turn can bind context lazily.
Bug type
Behavior bug (incorrect output/state without crash)
Beta release blocker
No
Summary
After the external-conversation contract landed,
conversations_listreturned no Reef conversation for a locally approved, connected peer unless another path had already created a local session.Steps to reproduce
conversations_listwithchannel: reefbefore any Reef session exists for that peer.conversations_turnhas no opaqueconversationRefto use.Expected behavior
An approved Reef peer should be discoverable as an opaque external conversation address without first creating or invoking a local model-context session.
Actual behavior
The list read only persisted session-linked conversation rows. The approved peer existed in Reef's local trust store but was absent from conversation discovery.
OpenClaw version
mainafter #109411 (a2ec3f69046d0a47ed61688a369c070ccdb1307f)Operating system
macOS and Ubuntu 24.04
Install method
Source checkout with Gateway service
Model
Not applicable; failure occurs before model inference.
Provider / routing chain
OpenClaw Gateway -> bundled Reef plugin -> Reef relay
Additional provider/model setup details
Not applicable.
Logs
Screenshots, recordings, and evidence
Related architecture contract: #108666. No private host/config screenshot is attached.
Impact and severity
Additional information
The fix should keep external address discovery separate from model-context session creation. Listing a trusted peer must not fabricate a session; the first send/turn can bind context lazily.