Bug type
Regression (worked before, now fails)
Beta release blocker
No
Summary
In Control UI / WebChat, the session dropdown becomes confusing over time. After creating a new chat with /new or /reset, things look fine briefly, but later the selector seems to fall back to “heartbeat”, and it looks like the previous chat session disappeared.
After inspecting the backend, this does not appear to be real session loss or store corruption. The active session remains the main direct session, but the UI seems to derive the session preview/title from the latest transcript message, and heartbeat-related transcript content can take over that preview.
Steps to reproduce
- In the WebChat / Control UI session dropdown, I mostly see “heartbeat”
- If I create a new session with /new, it works briefly
- After a while, the selector appears to revert back to “heartbeat”
- This makes it feel like the new session disappeared
Expected behavior
- /new should feel like a clearly separate fresh conversation in the UI, or
- at minimum, the main session should not be relabeled in a misleading way by heartbeat transcript content
Actual behavior
What I verified
Backend session store is healthy
sessions.json contains a valid active main session
Reset archives are being created correctly on disk
There is no evidence of session corruption or failed session creation
The issue appears to be UI/session-preview behavior, not session persistence
Relevant findings
WebChat attaches to the agent’s main session by default
/new and /reset create a new transcript for the same main session key rather than a list of independent chat threads in the selector
The UI/session metadata appears to derive title or preview from transcript content
Heartbeat filtering seems to special-case HEARTBEAT_OK, but visible non-ack heartbeat text may still become the session preview
OpenClaw version
2026.4.12
Operating system
Ubuntu 24.04
Install method
docker
Model
openai 5.4 codex
Provider / routing chain
webchat / Control UI
Additional provider/model setup details
No response
Logs, screenshots, and evidence
Impact and severity
This is mainly a UX issue, but it is pretty misleading because it looks like sessions are being lost, when really the selector is being polluted by heartbeat-related preview text.
Additional information
Possible areas to check:
session dropdown preview/title derivation in WebChat / Control UI
exclude heartbeat-origin messages from session preview/title generation
make /new semantics clearer in WebChat when using the main session model
optionally distinguish “main session reset” from “new visible chat thread”
Bug type
Regression (worked before, now fails)
Beta release blocker
No
Summary
In Control UI / WebChat, the session dropdown becomes confusing over time. After creating a new chat with /new or /reset, things look fine briefly, but later the selector seems to fall back to “heartbeat”, and it looks like the previous chat session disappeared.
After inspecting the backend, this does not appear to be real session loss or store corruption. The active session remains the main direct session, but the UI seems to derive the session preview/title from the latest transcript message, and heartbeat-related transcript content can take over that preview.
Steps to reproduce
Expected behavior
Actual behavior
What I verified
Backend session store is healthy
sessions.json contains a valid active main session
Reset archives are being created correctly on disk
There is no evidence of session corruption or failed session creation
The issue appears to be UI/session-preview behavior, not session persistence
Relevant findings
WebChat attaches to the agent’s main session by default
/new and /reset create a new transcript for the same main session key rather than a list of independent chat threads in the selector
The UI/session metadata appears to derive title or preview from transcript content
Heartbeat filtering seems to special-case HEARTBEAT_OK, but visible non-ack heartbeat text may still become the session preview
OpenClaw version
2026.4.12
Operating system
Ubuntu 24.04
Install method
docker
Model
openai 5.4 codex
Provider / routing chain
webchat / Control UI
Additional provider/model setup details
No response
Logs, screenshots, and evidence
Impact and severity
This is mainly a UX issue, but it is pretty misleading because it looks like sessions are being lost, when really the selector is being polluted by heartbeat-related preview text.
Additional information
Possible areas to check:
session dropdown preview/title derivation in WebChat / Control UI
exclude heartbeat-origin messages from session preview/title generation
make /new semantics clearer in WebChat when using the main session model
optionally distinguish “main session reset” from “new visible chat thread”