openclaw/docs
Josh Lehman 5dcf526a43
fix: dedupe replayed exec.finished node events (#67281)
* docs: add async exec duplicate completion investigation

Add an internal refactor note tracing the node exec completion to system event to heartbeat to transcript path for duplicate async exec injections. Document the most likely gateway-side gap as missing idempotency for replayed exec.finished events, and note why plain outbound delivery retry is a weaker fit for duplicate user turns.

Regeneration-Prompt: |
  Investigate a live duplicate async exec completion that appeared as two identical user turns in an OpenClaw session. Trace the completion path from exec producers into enqueueSystemEvent, heartbeat wake scheduling, prompt assembly, and embedded transcript persistence. Decide whether duplicate wake handling, outbound delivery retry, or duplicate completion event ingestion is the more likely cause, cite the exact code locations, and capture the smallest plausible fix seam without making runtime changes.

* fix: dedupe replayed exec finished node events

Add a narrow idempotency guard in the gateway node-event handler for repeated exec.finished events with the same canonical session key and runId. This blocks replayed async exec completions from being enqueued and heartbeated twice into the parent session. Also only request a heartbeat when the system event was actually queued, and add a regression test for duplicate runId injection.

Regeneration-Prompt: |
  Prevent duplicate async exec completion events from being injected twice into the parent session. Keep the scope tight around the highest-confidence path: node exec.finished events entering gateway server-node-events and becoming system-event-driven heartbeat prompts. Add a small idempotency guard keyed by canonical session plus exec runId, avoid broader delivery or retry changes unless needed, and add regression coverage that fails if the same exec.finished replay is enqueued and woken twice.

* fix: note exec finished replay dedupe
2026-04-15 13:06:18 -07:00
..
.generated build: refresh release baselines 2026-04-15 19:41:32 +01:00
.i18n docs: add experimental-features page and de-experimentalize dreaming 2026-04-15 11:46:25 +01:00
assets docs: add GitHub sponsor to README 2026-04-04 13:36:58 +09:00
automation fix: correct cron AND guidance (#64968) (thanks @BKF-Gitty) 2026-04-12 09:53:49 +05:30
channels fix(matrix): fix E2EE SSSS bootstrap for passwordless token-auth bots (#66228) 2026-04-15 11:48:29 -04:00
cli docs: add experimental-features page and de-experimentalize dreaming 2026-04-15 11:46:25 +01:00
concepts fix(context-window): Tighten context limits and bound memory excerpts (#67277) 2026-04-15 13:06:02 -05:00
debug
diagnostics
gateway fix(context-window): Tighten context limits and bound memory excerpts (#67277) 2026-04-15 13:06:02 -05:00
help test: isolate Docker live profile-key auth 2026-04-15 06:31:20 -07:00
images feat: Streamline Feishu channel onboarding with QR code scan-to-create flow (#65680) 2026-04-13 18:03:44 +08:00
install feat(docs): add Hostinger installation guide and link in VPS document… (#65904) 2026-04-13 14:12:44 +01:00
nodes docs(talk): update android playback docs 2026-04-05 08:20:47 +05:30
platforms fix(ios): harden watch exec approval review (#61757) 2026-04-06 17:42:42 +03:00
plugins fix(plugins): stabilize bundled setup runtimes (#67200) 2026-04-15 12:35:18 -04:00
providers fix: simplify ollama onboarding (#67005) 2026-04-15 19:06:21 +05:30
refactor fix: dedupe replayed exec.finished node events (#67281) 2026-04-15 13:06:18 -07:00
reference fix(context-window): Tighten context limits and bound memory excerpts (#67277) 2026-04-15 13:06:02 -05:00
security
snippets/plugin-publish
start fix: simplify ollama onboarding (#67005) 2026-04-15 19:06:21 +05:30
tools fix: bound live video generation smoke 2026-04-14 14:59:01 +01:00
web Add /trace toggle and fix Active Memory diagnostics 2026-04-12 13:20:22 -05:00
AGENTS.md docs(agents): split scoped workflow guidance (#65241) 2026-04-12 09:09:50 +01:00
auth-credential-semantics.md docs: refresh auth probe reason-code refs 2026-04-04 20:51:43 +01:00
brave-search.md docs: refresh shared web search references 2026-04-04 10:16:02 +01:00
ci.md ci(test): align node lane names with boundary split 2026-04-11 00:36:06 +01:00
CLAUDE.md docs(agents): split scoped workflow guidance (#65241) 2026-04-12 09:09:50 +01:00
date-time.md
docs.json docs: add experimental-features page and de-experimentalize dreaming 2026-04-15 11:46:25 +01:00
index.md docs: refresh channel overview mirrors 2026-04-04 15:07:32 +01:00
logging.md docs: refresh legacy tts and logging docs 2026-04-04 10:19:38 +01:00
nav-tabs-underline.js
network.md docs: refresh bridge removal mirrors 2026-04-04 21:24:09 +01:00
perplexity.md docs: refresh shared web search references 2026-04-04 10:16:02 +01:00
pi-dev.md docs: refresh pi development docs 2026-04-04 10:21:30 +01:00
pi.md refactor: align agent tool params with upstream pi 2026-04-05 20:36:47 +01:00
prose.md
style.css docs: modernize showcase page (#48493) (thanks @jchopard69) (#48493) 2026-04-14 06:42:04 -07:00
tts.md docs: add media overview page and consolidate TTS duplicate 2026-04-06 16:18:45 +01:00
vps.md feat(docs): add Hostinger installation guide and link in VPS document… (#65904) 2026-04-13 14:12:44 +01:00
whatsapp-openclaw-ai-zh.jpg
whatsapp-openclaw.jpg