Conversation
require_mention gated only on visible text, so Desktop thread replies (e.g. /approve session) to the agent's own prompts were dropped with no log. Cache event_id→(author, snippet) from seed/poll/WS/send, resolve the direct e-tag parent, and dispatch when that parent is ours; also populate reply_to_* on MessageEvent for gateway context injection. Fixes NousResearch#75826
|
Thanks for the focused Buzz fix. The premise remains present on current main: Automated hermes-sweeper review. |
SummaryOne PR addresses #75826. #75953 fixes the reported mention-gate failure by resolving NIP-10 reply parents, treating replies to the agent’s own messages as addressed, and propagating reply context into MessageEvent. Related pull requests
Suggested consolidationKeep #75953 open with a salvage path: retain its NIP-10 parent resolution, bounded metadata cache across seed/inbound/send paths, reply-aware mention gating, reply-context propagation, and focused regression coverage. It is the only PR in this complex, so there are no competing PRs to close as duplicates. Complex graphflowchart LR
classDef open fill:#dbeafe,stroke:#1d4ed8,color:#1e3a8a
classDef merged fill:#dcfce7,stroke:#15803d,color:#14532d
classDef closed fill:#e5e7eb,stroke:#6b7280,color:#1f2937
classDef unverified fill:#f3f4f6,stroke:#9ca3af,color:#374151
classDef best stroke-width:3px,stroke:#b45309
classDef target stroke-width:3px,stroke:#4338ca
I75826(["issue #75826 (open)"])
P75953["PR #75953 (open)"]
P75953 -->|best fix| I75826
class I75826 open
class P75953 open
class P75953 best
class P75953 target
click I75826 "https://github.com/NousResearch/hermes-agent/issues/75826"
click P75953 "https://github.com/NousResearch/hermes-agent/pull/75953"
Graph: solid arrow = fixes / best fix, dashed arrow = partial or unverified (see edge label); boxed group = PRs duplicating each other; amber border = best fix; indigo border = target; gray node = closed (state tag in the node label). Cross-PR triage: Reviewed 1 pull request and 1 issue in this complex. Each diff was read against this issue; Assessment working set: 23 kB of PR diffs, 7 kB of issue/PR text, 2 verify verdicts. verdicts reflect diff content, not PR titles. Part of an automated triage batch. |
What does this PR do?
With
require_mentionenabled (the default), the Buzz adapter only treated a channel message as addressed when the visible text mentioned the agent. NIP-10etags were never parsed, so a thread reply whose direct parent is the agent's own message was silently dropped — even/approve sessiontyped via Buzz Desktop's natural reply affordance.This matches Signal/WhatsApp: a reply to the bot's own message counts as addressed. p-tag DM classification (#68871) is deliberately unchanged.
Related Issue
Fixes #75826
Type of Change
Changes Made
plugins/platforms/buzz/adapter.py:event_metacache:event_id → (author_pubkey, content[:500])_handle_event(including self-echo), andsend/send_imagereturnevent_idreply-markedetag, elseroot, else last positionalereply_to_message_id/reply_to_text/reply_to_author_id/reply_to_is_own_messageonMessageEvent(including the visible-mention path)tests/gateway/test_buzz_adapter.py: 7 regression tests for buzz: require_mention drops NIP-10 thread replies to the agent's own messages — /approve responses never dispatch #75826 (+ parent-marker unit)How to Test
scripts/run_tests.sh tests/gateway/test_buzz_adapter.py -q→ 31 passed/approve session//approve always; reply to other user / unknown parent stay gated; seed + send-recorded parents match; mention path still fills reply contextChecklist
Code
fix(scope):,feat(scope):, etc.)pytest tests/ -qand all tests passFocused suite run via
scripts/run_tests.sh(repo canonical runner). Full suite not run; checkbox left unchecked intentionally.Documentation & Housekeeping
docs/, docstrings) — or N/Acli-config.yaml.exampleif I added/changed config keys — or N/ACONTRIBUTING.mdorAGENTS.mdif I changed architecture or workflows — or N/ANo new config keys. Behavior documented in adapter comments.
Overlap note
Open #75049 (
thread_require_mentionfeature) still defaults to strict mention-in-thread and is a configurable policy feature, not this bugfix. No open PR linked #75826 at open time.Screenshots / Logs
N/A — unit coverage above.