# NousResearch/hermes-agent · Fix invalid emoji reactions in Telegram integration

## Open now

- Nothing open on GitHub.

These issues and pull requests address a bug where Telegram message reactions were not appearing correctly, specifically because invalid or improperly typed emoji values were being used for reaction events like processing completion.

## TL;DR

- 4 member(s): 0 open issue(s), 1 closed issue(s), 0 open PR(s), 1 merged PR(s), 2 PR(s) closed without merging.
- A fix was merged to main in PR #7175. Verify it addresses your case.
- **Recommended:** read PR #7175 (and any competing PRs below) before filing. Confirm the merged change covers your symptom.

## Maintainer resolution verdict

- Internal-tracker verdict over this cluster's issue members: `resolved` · deciding PR(s): `pr-7175`. This is distinct from the fix status above. Weigh it yourself.

## How this cluster was grouped

- Link evidence (`STRUCTURAL_SPANNING`): every member is connected by structural evidence: shared changed files, or a closing/superseded reference.
- Pairwise link density `0.50`: the share of member pairs that carry a link, counting a structural link in full and a relevance-only link at 0.36. `1.00` means every pair is linked.

## Closed / duplicate issues

- #6068: bug(telegram): on_processing_complete reaction not firing — ✅ never appears after response

## Prior & competing PRs

- **#6097: fix(telegram): use valid Telegram reaction emojis in processing hooks**. closed without merge · fix tier `suggested`
  - maintainer direction: category `uncategorized`; implication `needs_llm`
- **#7175: fix(telegram): use valid reaction emojis for processing completion**. merged to main · fix tier `verified`
  - maintainer direction: category `merged`
  - files: `gateway/platforms/telegram.py`, `tests/gateway/test_telegram_reactions.py`
  - fix hunks:
  - `gateway/platforms/telegram.py`

    ```diff
    @@ -2802,5 +2802,5 @@ async def on_processing_complete(self, event: MessageEvent, outcome: ProcessingO
                 await self._set_reaction(
                     chat_id,
                     message_id,
    -                "\u2705" if outcome == ProcessingOutcome.SUCCESS else "\u274c",
    +                "\U0001f44d" if outcome == ProcessingOutcome.SUCCESS else "\U0001f44e",
                 )
    ```
  - `tests/gateway/test_telegram_reactions.py`

    ```diff
    @@ -175,7 +175,7 @@ async def test_on_processing_start_handles_missing_ids(monkeypatch):
     
     @pytest.mark.asyncio
     async def test_on_processing_complete_success(monkeypatch):
    -    """Successful processing should set check mark reaction."""
    +    """Successful processing should set thumbs-up reaction."""
         monkeypatch.setenv("TELEGRAM_REACTIONS", "true")
         adapter = _make_adapter()
         event = _make_event()
    ```

    ```diff
    @@ -185,13 +185,13 @@ async def test_on_processing_complete_success(monkeypatch):
         adapter._bot.set_message_reaction.assert_awaited_once_with(
             chat_id=123,
             message_id=456,
    -        reaction="\u2705",
    +        reaction="\U0001f44d",
         )
     
     
     @pytest.mark.asyncio
     async def test_on_processing_complete_failure(monkeypatch):
    -    """Failed processing should set cross mark reaction."""
    +    """Failed processing should set thumbs-down reaction."""
         monkeypatch.setenv("TELEGRAM_REACTIONS", "true")
         adapter = _make_adapter()
         event = _make_event()
    ```

    ```diff
    @@ -201,7 +201,7 @@ async def test_on_processing_complete_failure(monkeypatch):
         adapter._bot.set_message_reaction.assert_awaited_once_with(
             chat_id=123,
             message_id=456,
    -        reaction="\u274c",
    +        reaction="\U0001f44e",
         )
     
     
    ```
- **#6685: fix(telegram): use ReactionTypeEmoji for message reactions**. closed without merge
  - maintainer direction: category `merged_via`; implication `superseded`; refs `#7175`

## Fix status

- Merged to main in PR #7175 (cited above). No release data is tracked. Verify downstream.
- Fix last verified (merged) `2026-04-10`. This confirmation is old and may be out of date (a revert/reopen would not have invalidated it here); re-verify.
