NousResearch/hermes-agent

Matrix typing indicator lingering after response is sent

Cluster 6016. Data as of

Nothing open on GitHub. Fix merged in #10239 on 15 Apr 2026. Check it covers your case.

The short answer

0open issues
0open PRs
3items grouped
Known?
Yes. 3 related items grouped here, 1 issue already closed.
Fix event
A fix was merged to main in PR #10239. Check it covers your case. No release data is tracked.
Tracker
The maintainers' tracker marks this resolved, deciding PR #10239. That is separate from the fix event.
Still open
Nothing open on GitHub.

One issue reports the Matrix typing indicator staying visible for up to 30 seconds after a response is sent. Two pull requests propose changes (adding a stop_typing call, and a gateway fix) aimed at clearing that indicator.

Open issues0

No open issues.

Open PRs0

No open pull requests.

Fixes on record

Merged to main. A stamp counts the issues a fix is linked to.

  • #10239 fix(gateway): fix matrix lingering typing indicator

    merged to main

    files: gateway/platforms/matrix.py, tests/gateway/test_matrix.py

    Show the diff
    • gateway/platforms/matrix.py
      @@ -729,6 +729,14 @@ async def send_typing(
                   except Exception:
                       pass
       
      +    async def stop_typing(self, chat_id: str) -> None:
      +        """Stop the Matrix typing indicator."""
      +        if self._client:
      +            try:
      +                await self._client.set_typing(RoomID(chat_id), timeout=0)
      +            except Exception:
      +                pass
      +
           async def edit_message(
               self, chat_id: str, message_id: str, content: str
           ) -> SendResult:
    • tests/gateway/test_matrix.py
      @@ -335,6 +335,29 @@ def _make_adapter():
           return adapter
       
       
      +# ---------------------------------------------------------------------------
      +# Typing indicator
      +# ---------------------------------------------------------------------------
      +
      +class TestMatrixTypingIndicator:
      +    def setup_method(self):
      +        self.adapter = _make_adapter()
      +        self.adapter._client = MagicMock()
      +        self.adapter._client.set_typing = AsyncMock()
      +
      +    @pytest.mark.asyncio
      +    async def test_stop_typing_clears_matrix_typing_state(self):
      +        """stop_typing() should send typing=false instead of waiting for timeout expiry."""
      +        from gateway.platforms.matrix import RoomID
      +
      +        await self.adapter.stop_typing("!room:example.org")
      +
      +        self.adapter._client.set_typing.assert_awaited_once_with(
      +            RoomID("!room:example.org"),
      +            timeout=0,
      +        )
      +
      +
       # ---------------------------------------------------------------------------
       # mxc:// URL conversion
       # ---------------------------------------------------------------------------
      @@ -1831,4 +1854,3 @@ async def test_set_presence_no_client(self):
               assert result is False
       
       
      -

1 PR closed without merging

From the close comments: done elsewhere 1

  • #6020 fix(matrix): add stop_typing to clear typing indicator after response · done elsewhere → #10239, #6016
Closed issues · 1
  • Closed#6016[Bug]: Matrix typing indicator lingers for up to 30 seconds after response is sent
How this cluster was grouped
  • Link evidence (structural links throughout): every member is connected by structural evidence: shared changed files, or a closing/superseded reference.
  • Pairwise link density 0.67: the share of item 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.

Pick up a Lab task

Check whether a fix covers the open issues here, with your own agent. Bring back evidence for maintainers.

Open the Lab

At a glance

Merged PRs
#10239
Closed issues
1
Attempts
1 PR closed without merging
Fix link checked
15 Apr 2026. This confirmation is old and may be out of date (a revert or reopen would not have invalidated it here); re-verify.

For your agent

The same facts, typed.