-
-
Notifications
You must be signed in to change notification settings - Fork 79.1k
WebChat Control UI auto-archives sessions with action:new senderId:unknown — loses context without user action #89760
Copy link
Copy link
Closed
Labels
P1High-priority user-facing bug, regression, or broken workflow.High-priority user-facing bug, regression, or broken workflow.clawsweeper:needs-live-reproClawSweeper needs live local, crabbox, or manual validation to confirm this issue.ClawSweeper needs live local, crabbox, or manual validation to confirm this issue.impact:data-lossCan lose, corrupt, or silently drop user/session/config data.Can lose, corrupt, or silently drop user/session/config data.impact:session-stateSession, memory, transcript, context, or agent state can drift or corrupt.Session, memory, transcript, context, or agent state can drift or corrupt.issue-rating: 🐚 platinum hermitGood issue quality with a plausible reproduction path needing some confirmation.Good issue quality with a plausible reproduction path needing some confirmation.
Metadata
Metadata
Assignees
Labels
P1High-priority user-facing bug, regression, or broken workflow.High-priority user-facing bug, regression, or broken workflow.clawsweeper:needs-live-reproClawSweeper needs live local, crabbox, or manual validation to confirm this issue.ClawSweeper needs live local, crabbox, or manual validation to confirm this issue.impact:data-lossCan lose, corrupt, or silently drop user/session/config data.Can lose, corrupt, or silently drop user/session/config data.impact:session-stateSession, memory, transcript, context, or agent state can drift or corrupt.Session, memory, transcript, context, or agent state can drift or corrupt.issue-rating: 🐚 platinum hermitGood issue quality with a plausible reproduction path needing some confirmation.Good issue quality with a plausible reproduction path needing some confirmation.
Type
Fields
Give feedbackNo fields configured for issues without a type.
Bug type
Behavioral bug — Control UI dashboard sends unsolicited
action: "new"archiving sessions.Summary
The WebChat Control UI dashboard automatically sends
action: "new"withsenderId: "unknown"when reconnecting after a session has "completed" (assistant sent final response and stopped). This archives the session (status: "done") without any user action — no/newtyped, no UI button clicked. The user returns to WebChat and finds their conversation gone.The dashboard discriminates based on session completion state:
reset(in-place, session preserved)new(archive, session lost)Steps to reproduce
status: "done"), clicking it creates a brand new session instead of continuingEvidence
From
commands.log(3 occurrences across 2 weeks):{"timestamp":"2026-05-25T03:46:02.079Z","action":"reset","sessionKey":"agent:main:weather_summary","senderId":"unknown","source":"webchat"} {"timestamp":"2026-06-03T08:13:23.885Z","action":"new","sessionKey":"agent:main:weather_summary","senderId":"unknown","source":"webchat"}May 25:
reset(session was "in progress" at last close) → session survived.June 3:
new(session had completed cleanly on June 2) → session archived.The
.jsonlfile remains in the main sessions directory (not.quiesced/), so this is purely a metadata/status change — but the Control UI treatsdonesessions as read-only archives.Expected behavior
neworresetwithout explicit user actionsession.resetconfig does not control the dashboard'snewaction)session.resetpolicy fornewactions as wellActual behavior
Dashboard client sends
action: "new"withsenderId: "unknown"autonomously, archiving the previous session. User returns to find conversation context gone.OpenClaw version
2026.5.28 (e932160) — also reproduced on 2026.5.22
Operating system
macOS 26 (Darwin 25.2.0 arm64)
Install method
npm global (via Homebrew)
Configuration
Impact
Every WebChat user who has a "completed" conversation and returns later loses their context. Sessions that happen to end mid-turn or with pending tool calls survive via
reset. The inconsistency makes it feel like a random data loss.Workaround
Keep sessions from "completing cleanly" — end with a follow-up question or leave pending work. This forces the dashboard to use
resetinstead ofnew.