#7660: fix(signal): route group reactions to group sessions
channel: signal
size: S
Cluster:
Signal Reaction Fixes
signal-cli sends group reaction events with groupInfo in dataMessage, not in the reaction object itself. The code was only checking reaction.groupInfo, causing group reactions to be misrouted to DM sessions (or dropped entirely when sender lookup failed).
Fix: Fall back to dataMessage.groupInfo when reaction.groupInfo is empty.
Adds test case verifying group reactions are properly routed.
<!-- greptile_comment -->
<h2>Greptile Overview</h2>
<h3>Greptile Summary</h3>
This PR fixes Signal group reaction routing by falling back to `dataMessage.groupInfo` when `reaction.groupInfo` is missing (as emitted by signal-cli), ensuring reaction notifications go to the correct group session instead of being misrouted to DMs or dropped. It also adds a regression test that simulates a group reaction where the group context exists only on the `dataMessage` and asserts the system event is enqueued on the group session and not the DM session.
<h3>Confidence Score: 5/5</h3>
- This PR looks safe to merge; it’s a small, targeted routing fix with a focused regression test.
- The change only broadens how group context is extracted for reaction-only messages (adding a fallback to the already-parsed `dataMessage`), and the added test covers the reported signal-cli payload shape. No other routing logic or side effects were modified.
- No files require special attention
<!-- greptile_other_comments_section -->
<sub>(2/5) Greptile learns from your feedback when you react with thumbs up/down!</sub>
**Context used:**
- Context from `dashboard` - CLAUDE.md ([source](https://app.greptile.com/review/custom-context?memory=fd949e91-5c3a-4ab5-90a1-cbe184fd6ce8))
- Context from `dashboard` - AGENTS.md ([source](https://app.greptile.com/review/custom-context?memory=0d0c8278-ef8e-4d6c-ab21-f5527e322f13))
<!-- /greptile_comment -->
Most Similar PRs
#17453: fix(signal): make group reactions deterministic from inbound sender...
by akalypse · 2026-02-15
78.5%
#4878: fix: string/type handling and API fixes (#4537, #4380, #4373, #4547...
by lailoo · 2026-01-30
76.3%
#4337: fix(signal): add group-level allowlist support via groups config
by derekross · 2026-01-30
75.6%
#5201: Signal: add group mention gating with requireMention config
by csalvato · 2026-01-31
74.8%
#20236: fix(telegram): make reaction handling soft-fail and message-id resi...
by PeterShanxin · 2026-02-18
73.8%
#7353: fix: prevent silent message drops after config.patch restart
by 18-RAJAT · 2026-02-02
73.8%
#6457: fix(telegram): register commands for group scope + preserve topic t...
by dae-sun · 2026-02-01
73.6%
#7459: fix(signal): resolve mention placeholders to actual names
by gerigk-agent · 2026-02-02
72.3%
#3368: fix: sessions navigation, DM thread display, and DM thread delivery...
by Lukavyi · 2026-01-28
72.1%
#3300: changed chat session selection logic in iMessage
by KimEJ · 2026-01-28
72.1%