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
Open PRs0
Fixes on record
-
#10239 fix(gateway): fix matrix lingering typing indicator
files:
gateway/platforms/matrix.py,tests/gateway/test_matrix.pyShow 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.00means 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 LabAt 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.