Description
When the lossless-claw plugin is active, the webchat UI flickers (messages disappear and reappear) after every message send/receive. This makes the webchat nearly unusable.
Root Cause
- lossless-claw fires
session.message events when it ingests messages into its database
- The webchat client's
jC handler listens for these events and calls Qf (history fetch)
Qf sets chatLoading=true before fetching, which triggers a loading state in the UI
- This causes messages to visually disappear during the fetch, then reappear when it completes
- With lossless-claw firing multiple events per turn, this creates rapid flicker
Steps to Reproduce
- Enable lossless-claw plugin
- Open webchat UI
- Send a message
- Observe messages flicker (disappear/reappear) after send
Suggested Fix
Either:
- Debounce the session.message handler — wait 500ms after last event before fetching
- Don't set chatLoading=true for incremental refreshes — only show loading state on initial load
- Skip loading state entirely in jC pathway — call a variant of Qf that doesn't set chatLoading
Workaround
Patch index-CsLHusjn.js to make jC a no-op:
// Original:
function jC(e,t){let n=t?.sessionKey?.trim();!n||n!==e.sessionKey||Qf(e)}
// Patched:
function jC(e,t){return}
This disables session.message refresh entirely. History still loads on page load and run completion.
Environment
- OpenClaw 2026.4.12 (1c0672b)
- lossless-claw v0.3.0
- macOS, Chrome
Description
When the lossless-claw plugin is active, the webchat UI flickers (messages disappear and reappear) after every message send/receive. This makes the webchat nearly unusable.
Root Cause
session.messageevents when it ingests messages into its databasejChandler listens for these events and callsQf(history fetch)QfsetschatLoading=truebefore fetching, which triggers a loading state in the UISteps to Reproduce
Suggested Fix
Either:
Workaround
Patch
index-CsLHusjn.jsto make jC a no-op:This disables session.message refresh entirely. History still loads on page load and run completion.
Environment