fix(reply): fix duplicate block replies by unblocking coalesced payloads#5080
Merged
jalehman merged 3 commits intoopenclaw:mainfrom Feb 28, 2026
Merged
fix(reply): fix duplicate block replies by unblocking coalesced payloads#5080jalehman merged 3 commits intoopenclaw:mainfrom
jalehman merged 3 commits intoopenclaw:mainfrom
Conversation
Contributor
Additional Comments (1)
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time! Prompt To Fix With AIThis is a comment left during a code review.
Path: src/auto-reply/reply/block-reply-pipeline.ts
Line: 88:96
Comment:
[P2] `skipSeen` parameter is inverted/unclear and easy to misuse. Right now `sendPayload(payload, true)` means “bypass seen”, but the default is also to mutate `seenKeys` inside `sendPayload` when not skipping. Consider renaming to something like `bypassSeenCheck`/`skipSeenCheck` and making it non-optional (default `false`) to make call sites self-explanatory and reduce the chance of accidentally skipping dedupe in future changes.
<sub>Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!</sub>
How can I resolve this? If you propose a fix, please make it concise. |
bfc1ccb to
f92900f
Compare
Contributor
|
Merged via squash. Thanks @yassine20011! |
zooqueen
pushed a commit
to hanzoai/bot
that referenced
this pull request
Mar 1, 2026
…ads (openclaw#5080) Merged via squash. Prepared head SHA: 399e125 Co-authored-by: yassine20011 <[email protected]> Co-authored-by: jalehman <[email protected]> Reviewed-by: @jalehman
ansh
pushed a commit
to vibecode/openclaw
that referenced
this pull request
Mar 2, 2026
…ads (openclaw#5080) Merged via squash. Prepared head SHA: 399e125 Co-authored-by: yassine20011 <[email protected]> Co-authored-by: jalehman <[email protected]> Reviewed-by: @jalehman
steipete
pushed a commit
to Sid-Qin/openclaw
that referenced
this pull request
Mar 2, 2026
…ads (openclaw#5080) Merged via squash. Prepared head SHA: 399e125 Co-authored-by: yassine20011 <[email protected]> Co-authored-by: jalehman <[email protected]> Reviewed-by: @jalehman
safzanpirani
pushed a commit
to safzanpirani/clawdbot
that referenced
this pull request
Mar 2, 2026
…ads (openclaw#5080) Merged via squash. Prepared head SHA: 399e125 Co-authored-by: yassine20011 <[email protected]> Co-authored-by: jalehman <[email protected]> Reviewed-by: @jalehman
steipete
pushed a commit
to Sid-Qin/openclaw
that referenced
this pull request
Mar 2, 2026
…ads (openclaw#5080) Merged via squash. Prepared head SHA: 399e125 Co-authored-by: yassine20011 <[email protected]> Co-authored-by: jalehman <[email protected]> Reviewed-by: @jalehman
execute008
pushed a commit
to execute008/openclaw
that referenced
this pull request
Mar 2, 2026
…ads (openclaw#5080) Merged via squash. Prepared head SHA: 399e125 Co-authored-by: yassine20011 <[email protected]> Co-authored-by: jalehman <[email protected]> Reviewed-by: @jalehman
dorgonman
pushed a commit
to kanohorizonia/openclaw
that referenced
this pull request
Mar 3, 2026
…ads (openclaw#5080) Merged via squash. Prepared head SHA: 399e125 Co-authored-by: yassine20011 <[email protected]> Co-authored-by: jalehman <[email protected]> Reviewed-by: @jalehman
sachinkundu
pushed a commit
to sachinkundu/openclaw
that referenced
this pull request
Mar 6, 2026
…ads (openclaw#5080) Merged via squash. Prepared head SHA: 399e125 Co-authored-by: yassine20011 <[email protected]> Co-authored-by: jalehman <[email protected]> Reviewed-by: @jalehman
zooqueen
pushed a commit
to hanzoai/bot
that referenced
this pull request
Mar 6, 2026
…ads (openclaw#5080) Merged via squash. Prepared head SHA: 399e125 Co-authored-by: yassine20011 <[email protected]> Co-authored-by: jalehman <[email protected]> Reviewed-by: @jalehman
zooqueen
pushed a commit
to hanzoai/bot
that referenced
this pull request
Mar 6, 2026
…ads (openclaw#5080) Merged via squash. Prepared head SHA: 399e125 Co-authored-by: yassine20011 <[email protected]> Co-authored-by: jalehman <[email protected]> Reviewed-by: @jalehman
2 tasks
Mateljan1
pushed a commit
to Mateljan1/openclaw
that referenced
this pull request
Mar 7, 2026
…ads (openclaw#5080) Merged via squash. Prepared head SHA: 399e125 Co-authored-by: yassine20011 <[email protected]> Co-authored-by: jalehman <[email protected]> Reviewed-by: @jalehman
alexey-pelykh
pushed a commit
to remoteclaw/remoteclaw
that referenced
this pull request
Mar 16, 2026
…ads (openclaw#5080) Merged via squash. Prepared head SHA: 399e125 Co-authored-by: yassine20011 <[email protected]> Co-authored-by: jalehman <[email protected]> Reviewed-by: @jalehman (cherry picked from commit 6198909)
alexey-pelykh
pushed a commit
to remoteclaw/remoteclaw
that referenced
this pull request
Mar 16, 2026
…ads (openclaw#5080) Merged via squash. Prepared head SHA: 399e125 Co-authored-by: yassine20011 <[email protected]> Co-authored-by: jalehman <[email protected]> Reviewed-by: @jalehman (cherry picked from commit 6198909)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR fixes a regression in which coalesced block replies were being incorrectly blocked by the duplicate detection logic introduced to prevent double-sending.
The fix ensures that payloads flushed from the
block-reply-coalescerbypass the seen check inSendpayload.
These payloads are marked as seen when they first enter the coalescer queue, which makes it safe.
Related Issue
Fixes #3549
Changes
src/auto-reply/reply/block-reply-pipeline.tscreateBlockReplyPipelineto accept askipSeenflag insendPayloadtrueforskipSeenwhen flushing payloads from the coalescerTesting
npx vitest run src/auto-reply/reply/agent-runner.heartbeat-typing.runreplyagent-typing-heartbeat.signals-typing-block-replies.test.ts RUN v4.0.18 /home/yassineamjad/moltbot ✓ src/auto-reply/reply/agent-runner.heartbeat-typing.runreplyagent-typing-heartbeat.signals-typing-block-replies.test.ts (4 tests) 39ms ✓ runReplyAgent typing (heartbeat) (4) ✓ signals typing on block replies 22ms ✓ signals typing on tool results 4ms ✓ skips typing for silent tool results 1ms ✓ announces auto-compaction in verbose mode and tracks count 9ms Test Files 1 passed (1) Tests 4 passed (4) Start at 02:23:32 Duration 3.51s (transform 1.62s, setup 1.70s, import 1.56s, tests 39ms, environment 0ms)Greptile Overview
Greptile Summary
This PR adjusts the block-reply pipeline’s de-duplication behavior for coalesced block replies. Specifically, payloads that are enqueued into the coalescer are now marked as
seenat enqueue time, and when the coalescer flushes it callssendPayloadwith a flag to bypass theseenKeyscheck so the flushed payload can still be delivered.This fits into the existing pipeline design that tracks
seenKeys/pendingKeys/sentKeysto prevent double-sends while preserving ordering viasendChainand allowing coalescing/buffering stages to batch replies.Confidence Score: 4/5
(2/5) Greptile learns from your feedback when you react with thumbs up/down!
Context used:
dashboard- CLAUDE.md (source)dashboard- AGENTS.md (source)