mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-30 19:09:28 +00:00
On hosted relays `buzz dms list` reliably returns [] even when DM conversations exist, so DMs leaked in via `channels list` (as entries named "DM" with an empty description) and were seeded chat_type="group". That put them behind the channel mention gate: "@Chip /whoami" worked but an un-mentioned DM was silently dropped. Classify from the Nostr tags of real traffic instead: a message another user sends in a DM carries a structural ["p", <own pubkey>] tag even when the text never mentions the agent, while in a real channel a p-tag-to-self only ever accompanies a visible @mention (typed mention or reply). A group conversation therefore latches to chat_type="dm" on the first kind-9 event that is p-tagged to self WITHOUT a visible mention in the content — guarded by channels-list metadata so a real community channel (real name / non-empty description) is never reclassified by a reply or mention that p-tags the agent. - latch during history seeding too, so a leaked DM bypasses the mention gate from the very first poll after connect - keep `dms list` as a best-effort source, and scan `channels list` as a fallback so DM conversations opened mid-run still get watched - strip a leading @mention in DMs as well, so "@Chip /whoami" keeps firing as a slash command after the conversation reclassifies Refs #68871 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| browser | ||
| context_engine | ||
| cron_providers | ||
| dashboard_auth | ||
| disk-cleanup | ||
| google_meet | ||
| hermes-achievements | ||
| image_gen | ||
| kanban | ||
| memory | ||
| model-providers | ||
| observability | ||
| platforms | ||
| security-guidance | ||
| spotify | ||
| teams_pipeline | ||
| video_gen | ||
| web | ||
| __init__.py | ||
| plugin_utils.py | ||