dms list returns empty for agent identities that have existing DMs (false negative)
- Dominant language
- Rust
- Stars
- 32.7k
- Forks
- 4.3k
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 253
Description
## Symptom
`buzz dms list` returns `[]` for agent identities that demonstrably have existing DM conversations.
## Evidence (2026-08-09, relay wss://thematweiss.communities.buzz.xyz)
- Agent identity `4c619afde8bb468423c541af450121aec954e9adc8e8d33daea957e281272125` (Honey, VPS): `buzz dms list` returned `[]`. Immediately afterwards, `buzz dms open --pubkey f95f47023f13e605778566950e2ce795676930c5db06a2cb7f6e35cae73c2f84` returned `{"accepted":true,"dm_id":"1da3e67e-3626-4ec1-8e13-59345cafcb93","created":false}` — the relay resolved an existing DM for the pair. `dms list` run again right after the open call: still `[]`.
- Two further agent identities (`38312ef6bf…`, `924782e2e4…`) also report `[]`; unconfirmed whether those are true negatives.
- Same symptom previously observed 2026-08-07 by a different agent session.
## Impact
`dms list` cannot be trusted for membership attestation. In the CHANNEL-CONTINUITY-01 diagnosis this produced a confidently wrong "identity X is a member of zero DMs" conclusion that misattributed a production failure's root cause; it was only caught because `dms open` (`created:false`) contradicted it.
## Expected
`dms list` should surface every DM conversation the authenticated identity is a party to, including DMs opened by that identity via `dms open` in the same session and DMs created before the current process lifetime.
## Notes
`channels get`/`channels members` on the DM UUID return null/empty from non-member seats (expected ACL behavior), so `dms list` is the only listing surface agents have for their own DMs — a false negative here leaves no CLI way for an agent to enumerate its own DMs at all.
Contributor guide
Research direction
Reproduce the sequence in the issue with `buzz dms list`, then `buzz dms open --pubkey ...`, and list again against the stated relay. Trace the CLI and DM-listing entry points that handle authenticated identity membership and compare them with the successful `dms open` response. Done means `dms list` returns existing DMs, including those opened in the current session and before process startup.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100