fix(tray): bound streaming UI dispatch work - #1158
Conversation
|
🦞👀 Pull request received. I will update this pull request when review starts. |
|
Pushed CI follow-up at The two failures were test-assumption issues:
|
|
Codex review: needs real behavior proof before merge. Reviewed August 24, 2026, 9:50 PM ET / August 25, 2026, 01:50 UTC. ClawSweeper reviewWhat this changesThe PR bounds high-rate gateway event dispatch and coalesces native-chat snapshot delivery to reduce WinUI UI-thread work during streaming. Regression provenancePossible regression — probable (reproduction; reviewed change). No predecessor PR is attributed. Merge readiness⛔ Blocked until real behavior proof is added - 5 items remain Keep this PR open. Its bounded-dispatch approach addresses the linked streaming hang, but the branch is dirty against current main and its chat implementation predates the current ownership refactor; it also lacks required current-head Windows responsiveness proof. Priority: P1 Review scores
Verification
Live VerificationCommand: Result: FAIL (failed) — execution before step 1 Assertions:
How this fits togetherGateway events arrive on background connections and feed both tray diagnostics and the native chat timeline. The tray dispatcher and chat snapshot publisher turn those events into WinUI render work. flowchart LR
A[Gateway event stream] --> B[Tray gateway service]
B --> C[Bounded event queue]
C --> D[UI dispatcher]
A --> E[Chat event reducer]
E --> F[Snapshot projection]
F --> G[Snapshot delivery]
G --> H[WinUI chat render]
Before merge
Findings
Agent review detailsSecurityNone. Review metrics
Root-cause clusterRelationship: Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. Merge-risk optionsMaintainer options:
Technical reviewBest possible solution: Port the bounded diagnostic queue and snapshot coalescing to current main's GatewayService and chat runtime owners, then attach redacted Windows tray stress evidence from that rebased head. Do we have a high-confidence way to reproduce the issue? Yes, at source level. Current main dispatches every agent event and individually posts chat snapshots, while the linked report provides the real release workload; current-head Windows execution is still needed to establish the runtime regression. Is this the best way to solve the issue? No. The intended backpressure strategy is plausible, but this branch must be reimplemented against current ChatConversationState and ChatSnapshotProjector ownership rather than its pre-refactor provider state. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against ccd64bbb7d68. LabelsLabel justifications:
EvidenceWhat I checked:
Likely related people:
Rank-up movesOptional improvements that raise the rating; they are not merge blockers.
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
HistoryReview history (4 earlier review cycles)
|
|
Final CI follow-up pushed at The prior exact-head Windows artifact had one remaining failure: Validation:
|
|
@clawsweeper re-review Review/CI follow-up at current head
Visible native WinUI stress proof is still not verified. The 2026-08-15 Crabbox AWS Windows desktop lease |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
Fixes #1150.
Summary
Validation
Current head:
2a78af1aab68b4a2575688c8f4d6f78e93aeaed4Not verified locally / blocked on this orchestration host:
./build.ps1: blocked because this Linux host has no PowerShell or .NET SDKdotnet test ./tests/OpenClaw.Shared.Tests/OpenClaw.Shared.Tests.csproj --no-restore: blocked becausedotnetis unavailabledotnet test ./tests/OpenClaw.Tray.Tests/OpenClaw.Tray.Tests.csproj --no-restore: blocked becausedotnetis unavailableExact-head Windows CI run 31854826852 is in progress. Repository hygiene passed;
testand all three E2E shards are still running. Do not mark ready until the required jobs pass.Regression coverage added
The deterministic stress contracts cover:
Real behavior proof
Not verified / blocked: the current session has no Windows app host, so visible responsiveness under a running isolated tray stress case could not be captured. The source-level reproduction and deterministic dispatcher harness are included, but they are not a substitute for current-head WinUI proof.
Review
Final autoreview command:
.agents/skills/autoreview/scripts/autoreview --mode local --prompt <#1150 convergence review> --stream-engine-outputResult: clean, no accepted/actionable findings, overall correctness
patch is correct(0.93 confidence). Earlier findings about reconnect identity/generation races, control-event eviction, incoming disposable rejection, tool/job update classification, and exception recovery were accepted and fixed before the clean rerun.ClawSweeper re-reviewed exact head
2a78af1aon 2026-08-15 and reported no actionable source findings. It still requires current-head Windows CI and real tray responsiveness proof before ready-for-review.