{"repo":"NousResearch/hermes-agent","public_id":"128796","display_label":"Discord relay interaction identity and label fixes","summary":"These items address a bug where relayed Discord slash commands and buttons used raw usernames instead of the configured chat and user labels, and include fixes to keep prompt identity current for relayed interactions.","subsystem":"gateway","counts":{"members":6,"open_issues":0,"open_issues_distinct":0,"open_prs":2,"closed_issues":1,"merged_prs":1,"attempt_prs":4},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":139868,"merged_at":"2026-10-16T21:21:01+00:00"},"resolution":{"state":"resolved","by":"pr-139868"},"freshness":{"state":"verified","last_verified_at":"2026-10-16T21:21:01+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.3333333333333333},"fix_edges":[{"issue_number":128796,"pr_number":139868,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-10-16T21:21:01+00:00"}],"members":[{"kind":"issue","number":128796,"title":"[Bug]: relayed Discord slash commands and buttons use the raw username and no chat labels, flipping the pinned session-context prompt against relayed messages","url":null,"state":"closed"},{"kind":"pr","number":128797,"title":"fix(relay): a relayed Discord interaction carries the text lane's chat and user labels","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"fa9259fdc1346c8d2ba5c1bd052358b559777789","number":0},{"kind":"commit","value":"38d3dbce4adbb9074a34214eb330237a129e5904","number":0},{"kind":"commit","value":"8d30c4eaabd85edb77a02fef6c5388d9344ef80c","number":0},{"kind":"commit","value":"86f0a46ceb8d9fadd6928bf72e1fefe21066c756","number":0},{"kind":"commit","value":"bf91bc7f78781f3d8d03b3b4c7a26ac9a12acae2","number":0},{"kind":"pr","value":"#128796","number":128796},{"kind":"pr","value":"#172554","number":172554},{"kind":"pr","value":"#129032","number":129032},{"kind":"pr","value":"#128722","number":128722},{"kind":"pr","value":"#128788","number":128788}],"category":"partial_fix","implication":"needs_llm"},"merged":false},{"kind":"pr","number":129032,"title":"fix(relay): preserve Discord identity and durable buffered inputs","url":null,"state":"open","close_reason":{"refs":[{"kind":"commit","value":"f93d93e389bf1747188c90cae7dc3c4abcbd663f","number":0},{"kind":"commit","value":"f42f579cf8bac4918ac9599bece71618afadd846","number":0},{"kind":"commit","value":"fa9259fdc1346c8d2ba5c1bd052358b559777789","number":0},{"kind":"commit","value":"233434b414476e5f1ed0f6836922128e74d7d2f4","number":0},{"kind":"pr","value":"#128797","number":128797},{"kind":"pr","value":"#128796","number":128796},{"kind":"pr","value":"#172554","number":172554}],"category":"partial_fix","implication":"needs_llm"},"merged":false},{"kind":"pr","number":132285,"title":"fix(relay): use Discord display name for relayed interactions so user pin matches text lane (fixes #128796)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"09935b2469b74e68524e44aff1f7da272f7d686a","number":0},{"kind":"commit","value":"7533bd2756b9526b52f527f737420a19e57331d7","number":0},{"kind":"commit","value":"e94fc4e26a2a8d3967eef3bc5f5027ce418f222a","number":0},{"kind":"commit","value":"f5a9361dcc66b0b972fd488b83129561509b3486","number":0},{"kind":"commit","value":"10b955a34d584fa30daf92353f45460e489e00d0","number":0},{"kind":"commit","value":"2de4e8020caeebd6825170cd993f9b7918e3fd9c","number":0},{"kind":"commit","value":"38d3dbce4adbb9074a34214eb330237a129e5904","number":0},{"kind":"commit","value":"5af4e398c7887664e6eeadba402cbba16d08d26f","number":0},{"kind":"commit","value":"e3c0021588871c7646ba6af1690facaadc63f575","number":0},{"kind":"commit","value":"af9afba4759a610005d08447a920eed316a19286","number":0},{"kind":"pr","value":"#128796","number":128796},{"kind":"pr","value":"#128797","number":128797},{"kind":"pr","value":"#172554","number":172554},{"kind":"pr","value":"#130305","number":130305},{"kind":"pr","value":"#131089","number":131089},{"kind":"pr","value":"#131090","number":131090},{"kind":"pr","value":"#129032","number":129032},{"kind":"pr","value":"#130309","number":130309},{"kind":"pr","value":"#52583","number":52583},{"kind":"pr","value":"#130304","number":130304},{"kind":"pr","value":"#130306","number":130306},{"kind":"pr","value":"#52581","number":52581}],"category":"partial_fix","implication":"needs_llm"},"merged":false},{"kind":"pr","number":134586,"title":"fix(relay): a relayed Discord interaction carries the text lane's chat and user labels","url":null,"state":"open","close_reason":{"refs":[{"kind":"commit","value":"c98cd02ea15ca2cde63d33305f81137dab8aa578","number":0},{"kind":"commit","value":"354724fb085162678964c116ceb4c40fc57c717c","number":0}],"category":"partial_fix","implication":"needs_llm"},"merged":false},{"kind":"pr","number":139868,"title":"fix(relay): a relayed Discord interaction carries the text lane's chat and user labels (#128796, salvage #128797)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["gateway/relay/adapter.py","gateway/relay/adapter_discord_interaction.py","gateway/relay/ws_transport.py","gateway/session_ingress_context.py","gateway/session_persistence.py","tests/gateway/relay/test_relay_discord_interaction_labels.py","tests/gateway/relay/test_relay_passthrough.py","tests/gateway/relay/test_relay_passthrough_authority.py","website/docs/developer-guide/relay-connector-contract.md"]}],"trust":{"default_tier":"verified","includes_suggested":false}}