mirror of
https://github.com/openclaw/openclaw.git
synced 2026-06-03 19:04:05 +00:00
When dreaming narrative cleanup calls subagent.deleteSession() in the finally block and it throws, the store row can be left behind referencing a still-present transcript. The scrubber only pruned dreaming rows whose transcript was missing, so these orphans lingered in the recent sessions sidebar with no kind/status/endedAt and accumulated across restarts. Reclaim a dreaming store row when its transcript is missing OR has aged past DREAMING_ORPHAN_MIN_AGE_MS, then leave the transcript unreferenced so the orphan-transcript pass archives it. Fixes #88322 Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>