* fix(gateway): classify websocket opening timeouts for recovery
* test: close media handles in cloud dispatch policy proof
* fix(test): serialize mock resolution in the Vitest owner
* chore(deps): advance cooled dependencies and major upgrades
* test(logging): migrate failed-sink regression to tslog 5
* test: retain dependency upgrade coverage within lint limits
* fix(deps): preserve compiler launches, Matrix sync and chat metadata
Keep copied script harnesses independent of declaration modules and preserve
Windows executable prefixes after admission. Audit the Matrix sync guard for
42.3, align CI toolchain/cache pins, and refresh session facts after accepted
model-catalog invalidation without relying on picker timing.
* fix(ui): preserve scoped session reconciliation after catalog refresh
Retire superseded select animations and listeners through one accepted transition owner. Keep repeated, canceled, and interrupted show/hide calls settled, and reconcile first-render and disabled updates through the same owner.
Preserve both Web Awesome distributions and public declarations. Cover reopening, cancellation, remount, disabled teardown, and existing selection behavior with browser regressions.
Cloud session Desktop availability could remain stale after approval, replace an explicitly selected source during placement changes, or lose a dispatched worker to its discovery deadline. Offline Continue on Gateway also needed to retire the exact old owner while retaining cleanup responsibility, and aborted model calls could be reported as ordinary transport failures.
Consolidate Desktop inventory and session updates, retain explicit source/control/popout intent through placement updates, and retire the discovery deadline after dispatch. Move teardown orchestration to its canonical owner, preserve the exact abandonment decision through retries, and keep ordinary reclaim dependent on physical cleanup acknowledgment. Reuse the canonical diagnostic terminal owner and remove the duplicate adapter.
Apply the maintainer-approved, exact-version noVNC 1.7.0 repair: consume ignored extended-clipboard payloads so the following framebuffer message is parsed correctly. Load Desktop-only English with the existing lazy viewer, consolidate package-bin resolution, and register the unchanged retention subprocess with the existing compiled test-fixture owner.
Proof on head 8211f9f3: 57 Desktop unit and 39 real-browser tests; full runtime-change gate plus focused fixture checks; full package/install verification; one real Linux model turn completing five CUA select-all/type cycles with 13 computer results and 20 uninterrupted passive WebVNC observations. Normal reclaim synchronized the exact 300-byte file and completed provider cleanup with no pending reconciliation. Earlier native Windows/macOS, stale-authority and offline-continuation proof retains its original build identity in the PR. The AWS Mac and Dedicated Host remain intentionally retained.
Related: #136018; openclaw/crabbox#1724, openclaw/crabbox#1740, openclaw/crabbox#1743, openclaw/crabbox#1782. No configuration, SQLite schema, or public protocol change. See PR #136297 for dependency provenance, review dispositions, production/test LOC classification, and explicitly unresolved diagnostic follow-ups.
Keep one active submenu ancestor branch at the dropdown owner and retire it at close start, including slot loss and disconnection. Preserve the earlier hide/reopen animation repair and synchronize the existing Web Awesome 3.12.0 patch hash.
Fixes#135613. Covers the original sibling/back/down failure, nested branches, and close/reopen lifecycle behavior with 21 Chromium owner cases. Logical dependency runtime shrinks by 41 lines per distribution.
* fix(ui): keep reopened dropdowns dismissible
Repair Web Awesome 3.12.0's dropdown visibility owner so reopening during
hide restores dismissal ownership and fences stale animation completion.
Preserve tooltip-first Escape, native Tab/pointer dismissal, canceled-hide
submenus, and retained-node cleanup/remount behavior.
Consolidate the owner's keyboard submenu handling and cover the lifecycle
with real-browser regressions plus the Control UI catalog flow. Keep the
approved dependency exception exact-versioned; no consumer workaround or
budget/baseline change.
* fix(ui): settle interrupted dropdown and submenu animations
Repair the CI-exposed lifecycle gaps in the approved Web Awesome 3.12.0
patch: native animation completion settles cancellation before start,
and the submenu owner fences visibility and focuses only once. Preserve
public submenu Promise and no-element contracts in both distributions.
Add failing-before browser coverage and verify the three affected Control
UI flows. No dependency version, budget, or baseline changes. The local
startup gzip gate remains explicitly waived (+68 bytes); required CI is
not waived.
Follow-up to #135006; fixes the connected failures behind #134997.
* fix(ui): preserve submenu opening notification order
Restore the upstream event-before-expansion contract in the approved
Web Awesome patch. Embedded appearance controls must observe a closed
submenu during its opening notification to initialize keyboard focus.
Keep the shared appearance consumer and its custom-editor guard intact.
Extend the existing repeated-request browser regression and verify the
sidebar, header, compact, and custom-emoji flows. The local startup-size
gate remains explicitly waived (+92 bytes); required CI is not waived.
Follow-up for #135006 and #134997.
* fix(test): join Windows gateway closure after taskkill
Keep the existing close allowance after Windows taskkill's synchronous
termination sequence, when Node can observe exit and pipe-close events.
Drain naturally exiting children before targeting a dead PID, and retain
failed cleanup when termination or inherited-pipe closure is unverified.
Preserve timeout constants and POSIX deadline/escalation behavior. Add
pre-fix failing regressions for queued natural closure and blocking
termination, with held-pipe and unverified-tree controls.
Bounded CI follow-through for #135006. The UI dependency patch and runtime
Gateway code are unchanged.
Validate Vitest arguments before config evaluation while preserving awaited
CPU/heap capture, native help, repeated-option errors, and configured runners.
Reuse native checks in the explicitly approved exact-version Vitest patch
instead of duplicating its option catalog or running a second config pass.
Refs #132855 (profiler CLI validation regression).
Follow-up to #132224 (awaited profiling completion ownership).
Carry Windows ACL world-principal classification through @openclaw/fs-safe@0.2.2 so Anonymous Logon, Guests, Interactive, Network, and Local SID/principal variants are treated as world-equivalent in filesystem audit findings.
Also add regression coverage, changelog coverage, a narrow lint cleanup, and a UI test isolation fix needed by the current CI shard.
Co-authored-by: dwc <118101032587@njust.edu.cn>