# NousResearch/hermes-agent · Final message sometimes dropped in streaming with commentary

## Open now

- Nothing open on GitHub.

One issue (in Chinese) reports that the last message in a Feishu conversation is occasionally swallowed. Three similarly titled pull requests concern not suppressing the final response when a commentary message is sent; a link between the issue and these changes is plausible but not confirmed by the titles alone.

## 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 #10540. Verify it addresses your case.
- **Recommended:** read PR #10540 (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-10540`. 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

- #10454: \[Bug\]: 飞书对话中最后一条消息偶尔会被吞掉

## Prior & competing PRs

- **#10540: fix(streaming): don't suppress final response when commentary message is sent**. merged to main · fix tier `verified`
  - maintainer direction: category `merged`
  - files: `gateway/stream_consumer.py`
  - fix hunks:
  - `gateway/stream_consumer.py`

    ```diff
    @@ -609,12 +609,15 @@ async def _send_commentary(self, text: str) -> bool:
                     content=text,
                     metadata=self.metadata,
                 )
    -            if result.success:
    -                self._already_sent = True
    -                return True
    +            # Note: do NOT set _already_sent = True here.
    +            # Commentary messages are interim status updates (e.g. "Using browser
    +            # tool..."), not the final response. Setting already_sent would cause
    +            # the final response to be incorrectly suppressed when there are
    +            # multiple tool calls. See: https://github.com/NousResearch/hermes-agent/issues/10454
    +            return result.success
             except Exception as e:
                 logger.error("Commentary send error: %s", e)
    -        return False
    +            return False
     
         async def _send_or_edit(self, text: str) -> bool:
             """Send or edit the streaming message.
    ```
- **#10519: fix(streaming): don't suppress final response when commentary message is sent**. closed without merge
  - maintainer direction: category `silent_close`; implication `active`
- **#10530: fix(streaming): don't suppress final response when commentary message is sent**. closed without merge
  - maintainer direction: category `merged_via`; implication `superseded`; refs `#10540`

## Fix status

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