Skip to content

[Bug]: Reef trusted peers are absent from conversation discovery #109893

Description

@steipete

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

  1. Configure two Reef peers and approve their friendship.
  2. Confirm Reef reports connected and the local friend list contains the remote peer.
  3. From the agent, call conversations_list with channel: reef before any Reef session exists for that peer.
  4. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingmaintainerMaintainer-authored PR

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions