fix(ui): stabilize WebChat message ordering#74733
Conversation
|
Codex review: needs real behavior proof before merge. Reviewed May 30, 2026, 1:02 AM ET / 05:02 UTC. Summary PR surface: Source +38, Tests +94, Docs +1. Total +133 across 7 files. Reproducibility: unclear. The review failed before ClawSweeper could establish a reproduction path. Review metrics: none identified. Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Risk before merge
Maintainer options:
Next step before merge
Review detailsBest possible solution: Retry the Codex review after fixing the execution failure. Do we have a high-confidence way to reproduce the issue? Unclear. The review failed before ClawSweeper could establish a reproduction path. Is this the best way to solve the issue? Unclear. Retry the review first so ClawSweeper can evaluate the actual issue and fix direction. AGENTS.md: unclear because the file could not be read completely. Codex review notes: model gpt-5.5, reasoning high; reviewed against b352cb2d8e7f. Label changesLabel justifications:
Evidence reviewedPR surface: Source +38, Tests +94, Docs +1. Total +133 across 7 files. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
b1c77be to
ee167f9
Compare
ee167f9 to
b13558d
Compare
b13558d to
f8ca635
Compare
f8ca635 to
4069f02
Compare
4069f02 to
cd7e5c3
Compare
1f5d1ca to
62a2076
Compare
63df144 to
0afb27a
Compare
cb7b432 to
3c6572b
Compare
|
Dear @steipete, @vincentkoc, We're experiencing a persistent WebChat issue where only the last message appears in the conversation view — history is not being rendered (backend data is intact, confirmed by checking session files). This problem is directly addressed by the two PRs below, both of which remain unmerged:
Both capture the exact symptoms we're seeing: stale in-flight Could either of these please be reviewed and merged into the next release? This is affecting daily usability of the Control UI / WebChat. Happy to help test if a preview build is available. Thanks 🙏 |
3c6572b to
ff32a73
Compare
606340a to
e0b4405
Compare
e0b4405 to
48efa0e
Compare
|
This pull request has been automatically marked as stale due to inactivity. |
Summary
origin/mainand replaced the old XL patch with a focused WebChat reliability fix.chat.historyresponse resolves after a local send./clear/sessions.resetso old stream/tool cards cannot survive a reset.pnpm checkpasses.Problem
WebChat can start a
chat.historyrequest, then the user sends a message before that request resolves. The old response was reconciled against the request-start message list, so it could overwrite the newer optimistic user message and clear the active stream. Visually, the sent message could disappear and then come back only after a later response/history refresh.Approach
/clearreset path before reloading history.Real behavior proof
chat.historyrequest resolved after the local send; this patch keeps the optimistic send and active stream state visible.ai.openclaw.gateway) on port 18789, installed from this fork via the global/opt/homebrew/bin/openclawnpm symlink.pnpm build,pnpm ui:build,npm install -g /Users/vladyslavlevchuk/Projects/openclaw-pr-74733,launchctl kickstart -k gui/$(id -u)/ai.openclaw.gateway,openclaw --version,curl -I http://127.0.0.1:18789/, and log inspection of~/.openclaw/logs/gateway.log.Verification
pnpm buildpassed.pnpm ui:buildpassed.pnpm checkpassed.pnpm --dir ui exec vitest run src/ui/controllers/chat.test.ts src/ui/chat/history-merge.test.ts src/ui/app-chat.test.ts --config vitest.config.tspassed: 101 tests.pnpm format:check CHANGELOG.md src/auto-reply/reply/context-treemap.ts ui/src/ui/controllers/chat.ts ui/src/ui/controllers/chat.test.ts ui/src/ui/chat/history-merge.test.ts ui/src/ui/app-chat.ts ui/src/ui/app-chat.test.tspassed.pnpm exec oxlint src/auto-reply/reply/context-treemap.ts ui/src/ui/controllers/chat.ts ui/src/ui/controllers/chat.test.ts ui/src/ui/chat/history-merge.test.ts ui/src/ui/app-chat.ts ui/src/ui/app-chat.test.tspassed.pnpm tsgo:test:uipassed.48efa0e303:pnpm check:changedpassed.48efa0e303:env -u OPENCLAW_ALLOW_INSECURE_PRIVATE_WS -u OPENCLAW_GATEWAY_HOST -u OPENCLAW_GATEWAY_TOKEN -u OPENCLAW_VAPID_SUBJECT pnpm test:changed:maxpassed: 21 shards.Full Test Note
I also ran
pnpm testafterpnpm build. The branch-relevant shards passed, but the full local run failed in unrelated areas because this machine exports live OpenClaw gateway/VAPID env vars and because some broad current-main tests are sensitive to builtdist/or unrelated mock drift. I did not fold those unrelated repairs into this WebChat PR.AI Assistance
AI-assisted. I reviewed the resulting diff and understand the behavior it changes.