Mobile: DM-channel messages missing peer p tag — mention-gated agents never see them
- Dominant language
- Rust
- Stars
- 32.7k
- Forks
- 4.3k
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 253
Description
## Summary
Messages sent from the mobile app into a DM channel do not carry the peer `p` tag that the desktop app adds automatically. Any agent harness using the default `buzz-acp --subscribe mentions` therefore never sees messages sent from mobile — the agent appears to ignore its owner with no error anywhere.
## Environment
- Hosted community relay (`*.communities.buzz.xyz`)
- Desktop: Buzz.app macOS (current as of 2026-08-08), mobile: Buzz iOS app
- Agent harness: bundled `buzz-acp`, default `subscribe=mentions`
## Repro
1. Open a 1:1 DM channel with a managed agent on desktop, send any message (no explicit @). Note the kind-9 event carries `["p", ""]` — agent replies.
2. Send a message in the same DM channel from the iOS app, also without an explicit @.
3. Fetch both events: the mobile one has **no `p` tag at all** (only the `["h", ""]` tag). The mention filter drops it; the agent never responds.
## Example (same channel, same author, minutes apart)
Desktop:
```json
{"kind":9,"content":"okay test ping","tags":[["h",""],["p",""]]}
```
iOS:
```json
{"kind":9,"content":"works from phone too?","tags":[["h",""]]}
```
## Expected
Mobile should tag the DM peer the same way desktop does (or `buzz-acp` should treat DM-channel traffic as implicitly addressed to the agent member).
## Impact
Owners messaging their agents from mobile get silence with no diagnostic — it looks like the agent is broken. Workarounds: explicit @ mention via the picker, or replying to an agent message (both add the tag).
Contributor guide
Research direction
Compare how the desktop and iOS apps construct kind-9 DM events, focusing on the h and p tags shown in the examples. Check the mention subscription behavior in the bundled buzz-acp flow. Done means a mobile DM reaches a mention-gated agent without requiring an explicit @, with the existing workaround behavior preserved.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ios, rust
- Domain
- api, mobile
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100