Commit graph

85 commits

Author SHA1 Message Date
Peter Steinberger
292e1618d9
fix(gateway): classify opening timeouts and repair lifetime checks (#146508)
* 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
2026-09-12 17:13:42 -07:00
Peter Steinberger
d13f07b1c2
chore(deps): advance cooled dependencies and major upgrades (#146258)
* 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
2026-09-12 13:28:12 -07:00
Peter Steinberger
b07b7d8bd1
fix(ui): keep reopened select menus visible (#141047)
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.
2026-09-07 05:34:03 -07:00
Vincent Koc
8e5a3f3638
chore(test): migrate to stable Vitest 5 (#138264)
* build(test): migrate to stable Vitest 5

Co-authored-by: Peter Steinberger <steipete@gmail.com>

* docs(test): document Vitest 5 contracts

* test(test): prove Vitest cache invalidation

* test(test): stabilize report config load proof

* test(test): restore Vitest 5 compatibility

Co-authored-by: Peter Steinberger <steipete@gmail.com>

* test(test): isolate pnpm cache fixture registry

* fix(test): keep pnpm 12 env lock portable

* fix(test): preserve explicit Vitest project roots

* fix(test): preserve nested Vitest project identity

* test(test): expect captured Vitest name prefix

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-09-06 04:17:59 +09:00
Peter Steinberger
57dffbf322
fix(test): preserve Vitest cache generations (#138248) 2026-09-05 00:06:18 -07:00
Peter Steinberger
8c6653a78d
fix(gateway): preserve desktop readiness and worker outcomes (#136297)
Some checks are pending
Native App Locale Refresh / Refresh native ko (push) Blocked by required conditions
Native App Locale Refresh / Refresh native nl (push) Blocked by required conditions
Native App Locale Refresh / Refresh native pl (push) Blocked by required conditions
Native App Locale Refresh / Refresh native pt-BR (push) Blocked by required conditions
Native App Locale Refresh / resolve-base (push) Waiting to run
Native App Locale Refresh / Verify generated PR App permissions (push) Blocked by required conditions
Native App Locale Refresh / Refresh native ar (push) Blocked by required conditions
Native App Locale Refresh / Refresh native de (push) Blocked by required conditions
Native App Locale Refresh / Refresh native es (push) Blocked by required conditions
Native App Locale Refresh / Refresh native fa (push) Blocked by required conditions
Native App Locale Refresh / Refresh native fr (push) Blocked by required conditions
Native App Locale Refresh / Refresh native hi (push) Blocked by required conditions
Native App Locale Refresh / Refresh native id (push) Blocked by required conditions
Native App Locale Refresh / Refresh native it (push) Blocked by required conditions
OpenClaw Stable Main Closeout / Resolve stable release closeout inputs (push) Waiting to run
OpenClaw Stable Main Closeout / Verify stable main closeout (push) Blocked by required conditions
Plugin Init Scaffold Validation / Validate provider scaffold (push) Waiting to run
Plugin NPM Release / preview_plugins_npm (push) Waiting to run
Workflow Sanity / generated-doc-baselines (push) Waiting to run
Native App Locale Refresh / Refresh native ja-JP (push) Blocked by required conditions
Plugin NPM Release / Validate release publish approval (push) Blocked by required conditions
Plugin NPM Release / preview_plugin_pack (push) Blocked by required conditions
Plugin NPM Release / Preflight plugin npm package () (push) Blocked by required conditions
Plugin NPM Release / Trusted publisher OIDC exchange (push) Blocked by required conditions
Plugin NPM Release / publish_plugins_npm (push) Blocked by required conditions
Plugin NPM Release / verify_plugins_npm (push) Blocked by required conditions
Vitest Cache Warm / warm (linux) (push) Waiting to run
Vitest Cache Warm / warm (macos) (push) Waiting to run
Workflow Sanity / no-tabs (push) Waiting to run
Workflow Sanity / actionlint (push) Waiting to run
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.
2026-09-03 15:32:01 -07:00
Peter Steinberger
b060c7a110
fix(ui): restore keyboard navigation after switching submenus (#135629)
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.
2026-09-01 17:22:50 -07:00
Peter Steinberger
9ec9a1fbc9
fix(ui): keep reopened dropdowns dismissible (#135006)
* 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.
2026-09-01 04:49:41 -07:00
Peter Steinberger
c093e85957
perf(qa): run isolated live transports with bounded concurrency (#133616)
* perf(qa): run isolated live transports with bounded concurrency

* fix(qa): separate setup deadlines and join Matrix client cleanup

* fix(qa): preserve SDK boundaries in Matrix cleanup tests

* fix(matrix): keep cached sync events out of live verification

* fix(plugins): preserve approved dependency patches in package artifacts

* fix(qa): bind Matrix recovery proof to synced rooms and account state

* test(qa): supply the gateway mutation callback context

* fix(qa): expose failure causes and repair verification checks

Use public typed SDK contracts in generated provider plugins, preserve complete negative-reply observation evidence, report bounded redacted failures promptly, and align packaging assertions with staging.

* perf(matrix): trim unused QA channel import

* test(qa): preserve request URLs in Matrix fetch fixture

* fix(qa): expose bounded concurrency on isolated live commands

* perf(ui): consolidate repeated chat footer selectors
2026-08-30 22:45:29 -07:00
Peter Steinberger
145b071729
fix(testing): reject invalid profiler CLI options (#132858)
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).
2026-08-29 16:54:00 -07:00
Peter Steinberger
0f22112947
fix: preserve private hook checks and diagnostics (#132403)
* fix: preserve private hook checks and diagnostics

* fix(test): join graceful Vitest fork shutdown

* test: expose Vitest shutdown fixture dependency
2026-08-29 11:25:36 -07:00
Peter Steinberger
50d229fe47
fix(test): preserve trailing Vitest task updates (#132132)
* fix(test): preserve trailing Vitest task updates

* chore(test): normalize Vitest patch format
2026-08-28 15:04:06 -07:00
Peter Steinberger
f07a1fb502
refactor: centralize bounded file reads in fs-safe (#111104)
* refactor: use fs-safe bounded descriptor reads

* build: update fs-safe to 0.4.2

* build: refresh root npm shrinkwrap

* fix: satisfy bounded read return paths

* fix: update fs-safe integration for latest main

* fix: adopt fs-safe overflow compatibility release

* build: complete fs-safe lockfile update

* build: update fs-safe to 0.4.4

* build: refresh plugin SDK API baseline

* test: follow fs-safe bounded read seam
2026-07-19 01:29:23 -07:00
Peter Steinberger
614e87cce1
chore: update dependencies (#100027) 2026-07-04 14:56:50 -04:00
Peter Steinberger
48ccc50282
chore: update dependencies 2026-05-31 09:07:53 +01:00
Peter Steinberger
cda7c30150
build: refresh dependency pins (#86628)
* build: refresh dependencies

* build: align pi fallback version
2026-05-25 21:55:46 +01:00
Peter Steinberger
c5e8bd08b8
fix(whatsapp): remove baileys logger patch 2026-05-21 22:33:13 +01:00
Peter Steinberger
26e64bda14
fix(whatsapp): update baileys dependency 2026-05-21 22:20:09 +01:00
Peter Steinberger
ec10d12112
chore: update dependencies 2026-05-21 08:28:44 +01:00
Peter Steinberger
6e7bd551f2
chore(deps): update whatsapp baileys 2026-05-20 21:36:39 +01:00
Peter Steinberger
5479b6b32c
build(deps): consume fs-safe 0.2.3 2026-05-14 07:31:40 +01:00
dwc1997
cffae53b43
fix(security): classify broad Windows SIDs as world principals
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>
2026-05-13 15:19:02 -05:00
Peter Steinberger
85f9276624
build(whatsapp): externalize whatsapp plugin 2026-05-13 11:21:17 +01:00
Peter Steinberger
fcc042559f
build(deps): refresh workspace dependencies 2026-05-10 14:00:08 +01:00
Peter Steinberger
0496063264
build(deps): refresh workspace dependency pins 2026-05-10 02:14:40 +01:00
Peter Steinberger
8ee08b2b77
chore: update dependencies 2026-05-04 23:07:09 +01:00
Peter Steinberger
040f533f60
chore: update dependencies 2026-05-01 12:43:17 +01:00
Peter Steinberger
83267e99b0
chore: update dependencies 2026-04-29 22:42:45 +01:00
Peter Steinberger
277cc640b1
fix(acp): wait for claude results before idle completion 2026-04-27 12:12:48 +01:00
Frank Yang
d86527d8c6
fix(whatsapp): harden Baileys media upload hotfix (#65966)
Merged via squash.

Prepared head SHA: b5db59b8fe
Co-authored-by: frankekn <4488090+frankekn@users.noreply.github.com>
Co-authored-by: frankekn <4488090+frankekn@users.noreply.github.com>
Reviewed-by: @frankekn
2026-04-14 21:34:23 +08:00
Peter Steinberger
6c0a01dc90 fix: bundle mac model catalog 2026-01-21 19:58:19 +00:00
Peter Steinberger
74f382f732 fix: default Anthropic API cache TTL to 1h 2026-01-20 15:48:53 +00:00
Michael Behr
003c6c9ae1
add patches/.gitkeep (#1104) 2026-01-17 08:50:50 -06:00
Peter Steinberger
548a32c8d4 chore: drop unused patches 2026-01-16 22:31:21 +00:00
Peter Steinberger
500c75b4f0 fix: align ZAI thinking toggles 2026-01-16 22:26:43 +00:00
Peter Steinberger
b7ba94f0c1 fix: harden antigravity claude support (#968)
Co-authored-by: Max <rdev@users.noreply.github.com>
2026-01-16 02:16:17 +00:00
Peter Steinberger
f87016a5fe fix: handle unsigned tool calls for gemini 3 2026-01-15 00:29:53 +00:00
Peter Steinberger
8f6e67553f chore: drop stale pi-ai patch 2026-01-13 23:59:17 +00:00
Peter Steinberger
0a8be132b9 chore: prep 2026.1.13 release 2026-01-13 23:59:04 +00:00
Peter Steinberger
cb0f6cefa4 Deps: update Pi + Vitest and add Bedrock docs 2026-01-13 06:57:11 +00:00
Peter Steinberger
ca8e2bccab chore: update deps 2026-01-12 09:13:18 +00:00
Peter Steinberger
fb6a809f91 fix: refresh pnpm patch for pi-ai 2026-01-12 09:05:17 +00:00
Peter Steinberger
d8feadb57a fix: strip gemini cli tool ids (#756) 2026-01-12 09:01:19 +00:00
Peter Steinberger
f328cd5246 fix: preserve reasoning on tool-only turns 2026-01-11 11:22:07 +00:00
Peter Steinberger
55da6ca449 fix: keep reasoning for tool-only turns 2026-01-11 11:00:19 +00:00
Peter Steinberger
8dbf72099a fix: refresh pi-ai patch for pnpm lockfile 2026-01-11 10:55:36 +00:00
Peter Steinberger
eec082e541 fix: update pi-ai reasoning replay patch 2026-01-11 10:44:19 +00:00
Peter Steinberger
f00038b383 fix(testing): stabilize live model runs 2026-01-11 04:22:35 +00:00
Peter Steinberger
eeae5ce7fd fix: stabilize notes and reasoning replay 2026-01-11 04:37:06 +01:00
Peter Steinberger
20b4e2b859 fix: stabilize live probes and docs 2026-01-11 02:26:39 +00:00