Commit graph

9574 commits

Author SHA1 Message Date
Vincent Koc
2b264148b2
fix(ci): skip SDK rendering for identical revisions (#147572) 2026-09-14 12:54:46 +08:00
Peter Steinberger
6d786ff865
fix: prevent false process failures and stalled background waits (#147871) 2026-09-13 21:53:29 -07:00
Peter Steinberger
87a712681a
perf(runtime): skip asset discovery for absent overlays (#147852) 2026-09-13 21:40:03 -07:00
Vincent Koc
3de18f60bd
feat(gateway): bind requests to selected profiles (#143587)
* feat(gateway): bind requests to selected profiles

Punchcard-Session: amber-timber-workshop-bk

* test(gateway): verify profile-bound wire admission and replay

Punchcard-Session: amber-timber-workshop-bk

* fix(gateway): preserve idle presence during profile refresh

Keep unchanged profiles out of presence writes while retaining explicit refresh and recipient preparation. Complete profile-bound test fixtures and regenerate the dependent Workboard asset pointers.

Punchcard-Session: amber-timber-workshop-bk

* test(gateway): repair context and loading-state fixtures

Punchcard-Session: amber-timber-workshop-bk

* test(gateway): verify instance retirement before agent dispatch

Punchcard-Session: amber-timber-workshop-bk

* test(gateway): verify session revocation during accepted steering

Punchcard-Session: amber-timber-workshop-bk

* chore(gateway): refresh embedded protocol assets

* test(ui): await Inbox fixture preload

* test(transcripts): bind Discord lifecycle fixture generation

* test(gateway): drain task fixture notifications

* fix(protocol): exclude profile ID primitive from generated registry

* test(gateway): simplify subscription fixture state setup

* test(gateway): preserve authority refusal through terminal admission

* fix(gateway): retain live profile refresh after runtime extraction

* test(agents): cover redaction with fresh transcript admission

* refactor(gateway): inline release version checks

* test(gateway): observe async runtime lease disposal

* test(gateway): supply profile refresh callbacks in lifecycle fixtures

* test(agents): assert recorder admission callback availability

* test(gateway): model native profile fixture node subscribers

* test(desktop): retain bounded viewer close diagnostics

* test(ui): keep cloud history aligned with placement failure

* test(ui): brace the desktop close bound
2026-09-14 12:35:53 +08:00
Vincent Koc
dff789c0a6
test(e2e): retire obsolete plugin staging smoke (#147555) 2026-09-14 12:30:54 +08:00
Peter Steinberger
32f06f37f1
fix(pr): preserve unrelated worktree metadata during fetch (#147828)
Disable fetch-triggered automatic maintenance at the PR source owner. Git 2.54+ can otherwise prune a sibling admin directory with a missing or empty backlink during healthy worktree entry. Keep the existing preservation assertions and align direct helper fixtures with the Darwin Bash guard.

Refs #147527. Reproduces the six containment failures from run 34800901928; three full containment runs pass after the fix. P1 autoreview and check:changed passed.
2026-09-13 21:23:25 -07:00
Peter Steinberger
ae5a4b4a55
perf(workers): overlap cloud startup preparation (#147787) 2026-09-13 21:02:04 -07:00
Peter Steinberger
487f227430
test(e2e): use default status budget in Bun smoke (#147774) 2026-09-13 21:01:20 -07:00
Vincent Koc
49dc11a366
refactor(scripts): share plugin lifecycle trace predicate (#147822) 2026-09-14 11:59:42 +08:00
Vincent Koc
731c5a40cf
refactor(i18n): share placeholder validation helpers (#147747) 2026-09-14 11:44:59 +08:00
Peter Steinberger
f984f6648b
perf(ci): batch publication source object sizes (#147768) 2026-09-13 20:39:46 -07:00
Shakker
afd20f8b91
fix: keep affected tests for common importer names (#147754)
Preserve complete affected-test selection for common source names while retaining existing helper and tooling routing.

Refs #147665.
2026-09-14 04:28:55 +01:00
Hannes Rudolph
39c4da494a
fix(docs): exempt version labels from translation glossary (#147377) 2026-09-14 11:00:10 +08:00
Vincent Koc
c1b5f4473e
fix(pr): keep cleanup scoped to the requested worktree (#147527)
* fix(pr): keep cleanup scoped to the requested worktree

* fix(pr): preserve healthy worktree reuse and exact refs

* test(pr): match early orphan identity rejection

* fix(pr): retain canonical identity through linked cleanup

* test(pr): isolate GitHub command fixtures from ESM parents

* test(pr): expand fixed ESM preflight routes
2026-09-14 10:53:23 +08:00
Vincent Koc
1ad5e3f525
fix(setup): resume interrupted setup in the approved workspace (#147705)
* test(setup): cover guided pending workspace recovery

* fix(setup): honor the workspace approved by pending setup

Punchcard-Session: ember-river-timber-wj
2026-09-14 10:43:12 +08:00
Peter Steinberger
a529170cd9
fix(bench): capture Worker isolates in load profiles (#147699) 2026-09-13 19:40:47 -07:00
Peter Steinberger
f9dc685d71
improve: keep large workspace transfers responsive (#147626)
* perf(workspace): offload inventory and manifest processing

Keep the Gateway and paired nodes responsive during large workspace transfers with bounded computation workers. Hosts retain session authority, Git processes, file writes, durable acceptance, and cleanup.

Use transferable UTF-8 payloads for supported Unicode inventories, preserve independent errors during cancellation, and compare already-decoded manifests without copying their object graphs between threads.

* test(workspace): finish manifest fixture ownership

* refactor(workspace): distinguish stage input implementation

* test: register workspace benchmark and honor system Bash
2026-09-13 19:35:25 -07:00
Peter Steinberger
f8b194a5be
fix: restore plugin networking under Bun (#147421)
* fix(plugins): normalize network runtimes

* build(plugins): align network runtime dependencies

* test(runtime): stabilize network compatibility checks

* fix(codex): route managed transports through runtime owners
2026-09-13 19:25:19 -07:00
Vincent Koc
135bc19272
refactor(i18n): share quoted delimiter scanning (#147695) 2026-09-14 10:24:56 +08:00
Peter Steinberger
c809640db1
fix(ui): load Home and System busyness inside their panels (#147574)
* fix(ui): load Home and System busyness inside their panels

* chore(ui): record approved immediate-panel startup budgets

* fix(ui): retain System busyness through automatic chunk recovery

* fix(ui): keep automatic diagnostic restores out of Settings

* chore(ui): refresh approved startup baseline against current main
2026-09-13 18:57:50 -07:00
Peter Steinberger
ccfa94dabd
perf: reduce session history query-builder startup work (#147648) 2026-09-13 18:51:42 -07:00
Dallin Romney
2bb5638001
test(docker): normalize harness artifact permissions (#145919) 2026-09-13 18:33:22 -07:00
Vincent Koc
2c393ecf55
fix(sandbox): restore workspace files in Docker Gateways (#147276)
* fix(sandbox): restore workspace files in Docker Gateways

Resolve managed workspace, agent, skill and nested bind sources from a verified Gateway container before sandbox hashing and creation. Share the effective mount plan across shell and browser lifecycles; preserve read-only permissions and refuse stale hot mounts with scoped recreate guidance.

Fixes #31331

Co-authored-by: AaronWander <siralonne@163.com>
Co-authored-by: Frank Yang <frank.ekn@gmail.com>

* test(sandbox): isolate managed mount permission fixtures

* fix(sandbox): narrow discovered Docker container ids

* test(sandbox): split container creation and mount coverage

* test(sandbox): restore filesystem fixture import

* test(sandbox): sort mount proof records immutably

* fix(sandbox): inspect typed Docker metadata and isolate E2E cleanup

* test(sandbox): assert package import follows fixture environment

---------

Co-authored-by: AaronWander <siralonne@163.com>
Co-authored-by: Frank Yang <frank.ekn@gmail.com>
2026-09-14 09:22:47 +08:00
Ayaan Zaidi
11f212663b
fix(groq): resolve manifest model during external setup (#147539)
The plugin now declares its existing lightweight catalog entry. Setup resolves the advertised model from the same manifest data used by the full runtime. Live catalog refresh keeps its existing behavior.

- Backend before: setup returns an unknown-model rejection, keeps the default unchanged, and makes zero inference requests.
- Backend after: the setup wizard completes, activates the selected model, and saves settings that the Gateway confirms are active.
- Each successful captured setup makes one completion request, followed by one separate catalog-refresh request.
- Fresh-merge validation passed 279 tests across 14 files, plus changed-file lint and formatting. These results cover merge `dd2392aefa4b5b36cf8d75fa3f4b8383047add7b`, with candidate `d5b4e7d4198828c71f78fc988c1cf250855567df` and main `fa5b2d1680` as parents.
- The automated integration fixture substitutes minimal package/runtime registration for sparse-checkout support. Separate real-Gateway evidence uses the actual locally built and installed plugin package.
- Inspected, sanitized Control UI captures show the rendered unknown-model error before the fix and “Connection verified” afterward. Both images are embedded below; matching browser and Gateway records establish zero versus one completion request.
## Consumers

CLI setup, saved-sign-in activation, and web/native setup wizards share the activation owner. Existing manifest parsing, cache identity, package entry emission, and provider discovery consume the new declaration without a schema, configuration, protocol, or public SDK change.

Supersedes #146471 by @jason-allen-oneal. All 16 contributor commits retain their authorship. The takeover's extra commit replaces a retired fixture helper with the current test seed helper; inputs and assertions are unchanged.

## Screenshots

Setup wizard, sanitized captures (before on main, after on this branch).

| Before | After |
| --- | --- |
| ![Setup wizard on main: the plugin model is rejected as Unknown model and the default stays](https://gist.githubusercontent.com/obviyus/99ff1d2f5c86fbdcfb423b22f7a2ca36/raw/dbf04891787bd9f38e5da219e5e04fc48dc67613/before.png) | ![Setup wizard on this branch: the plugin model verifies and becomes the active model](https://gist.githubusercontent.com/obviyus/99ff1d2f5c86fbdcfb423b22f7a2ca36/raw/dbf04891787bd9f38e5da219e5e04fc48dc67613/after.png) |

Co-authored-by: Jason O'Neal <jason.allen.oneal@gmail.com>
Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-09-14 06:03:28 +05:30
Peter Steinberger
02e1075e56
perf(docs): parse maturity targets only for fragment checks (#147560) 2026-09-13 17:06:56 -07:00
Peter Steinberger
520442c337
test(agents): add live Code Mode comparison workloads (#147537)
Extend the existing model matrix with isolated Gateway tasks, fixed-workload build comparisons, and separate task and interview evidence. Preserve failed trials, exact source identities, task effects, logical cell completion, and observed preview coverage.

Validation: 187 focused tests, changed-file and targeted type/lint/docs checks, exact-candidate runtime build, actual OpenAI smoke, read-only replay of 24 original trials plus the final smoke, and fresh P2 review. Original scores and interview qualifications remain preserved.
2026-09-13 16:32:28 -07:00
Peter Steinberger
74b2d3a528
improve(sqlite): speed up snapshot worker startup (#147522) 2026-09-13 16:27:57 -07:00
Vincent Koc
3a99779313
fix(codex): isolate hook imports and cancel disconnected waits (#147444)
Isolate the native hook relay build graph while preserving readonly state lookup, explicit policy decisions, and the lazy authenticated Gateway fallback.

Cancel disconnected request waits through the existing approval authority. Keep duplicate callers independently cancellable, retain unbound durable approval deduplication, and detach exact relay-owned entries before callbacks so old cleanup cannot remove a successor. Observe already-started promises when synchronous cancellation wins.

Update managed Codex to the official 0.154.0 release and align its version fixtures and current documentation. This improves lifecycle ownership and reduces the relay import closure; it does not cap hook concurrency, prove faster bursts, or establish resolution of the historical constrained-host timeout.

Related: https://github.com/openclaw/openclaw/issues/91009

Thanks to @nvtoroy for the constrained-host captures and guarded opt-out evidence in https://github.com/openclaw/openclaw/pull/121668 and https://github.com/openclaw/openclaw/pull/111205. The opt-out proposal remains distinct and unimplemented by this change.
2026-09-14 07:14:04 +08:00
Vincent Koc
46aa369b31
fix(update): identify FreeBSD handoff processes (#147415)
* fix(update): identify FreeBSD handoff processes

* test(update): mock the native byte-order binding

* fix(build): capture handoff compiler inputs

* fix(build): recognize staged handoff native assets
2026-09-14 06:25:04 +08:00
Peter Steinberger
3aa044cdce
refactor: finish Docker diagnostic command lookup cleanup (#147396) 2026-09-13 15:17:25 -07:00
Vincent Koc
40015ca1c3
refactor(release): share model configuration commands (#147077)
* refactor(release): share model configuration commands

* fix(release): satisfy model command owner lint gates
2026-09-14 05:59:47 +08:00
Peter Steinberger
caaa75308c
feat(bench): report process and main-thread CPU usage (#147436) 2026-09-13 14:54:35 -07:00
Peter Steinberger
bc9ea0c348
fix(codex): run Bun history reads through built worker (#147408)
Some checks are pending
Native App Locale Refresh / Refresh native ja-JP (push) Blocked by required conditions
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 / Refresh native ru (push) Blocked by required conditions
Native App Locale Refresh / Refresh native sv (push) Blocked by required conditions
Native App Locale Refresh / Refresh native th (push) Blocked by required conditions
Native App Locale Refresh / Refresh native tr (push) Blocked by required conditions
Native App Locale Refresh / Refresh native uk (push) Blocked by required conditions
Native App Locale Refresh / Refresh native vi (push) Blocked by required conditions
Native App Locale Refresh / Refresh native zh-CN (push) Blocked by required conditions
Native App Locale Refresh / Refresh native zh-TW (push) Blocked by required conditions
Native App Locale Refresh / Commit native locale refresh (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
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 / Seal prepared plugin npm release (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
Workflow Sanity / generated-doc-baselines (push) Waiting to run
* fix(codex): route Bun history reads through built worker

* test(codex): align prepared auth restart requests

* fix(codex): recognize aliased Bun history workers

* test(codex): allow optional account read after restart
2026-09-13 14:52:04 -07:00
Peter Steinberger
153c60641b
fix: keep Doctor writes working across module reloads (#147292)
* fix: keep Doctor writes working across module reloads

* test: isolate updater schema coordination owner

* test: isolate Doctor worker lifecycle checks

* fix(ci): exclude worker-owned tests from command shards
2026-09-13 14:44:37 -07:00
Peter Steinberger
b6db30fd9f
fix(logging): keep redaction consistent across module copies (#147316)
* fix(logging): share redaction state across module copies

Share the live registry, revision, and cached redactor while preserving independent captured snapshots. Include the singleton helper in frozen publication tooling and its fixture.

* test(agents): keep live read arguments within output budget

Use the fixture path relative to the configured session workspace so deep temporary roots do not exhaust the unchanged 128-token model limit before a tool call completes. Preserve all redaction and continuation assertions.
2026-09-13 14:37:30 -07:00
Peter Steinberger
d0100a4264
fix(memory): emit one JSON result for command failures (#147366)
* fix(memory): emit one JSON result for command failures

* test(memory): prepare the SDK before root CLI integration tests
2026-09-13 14:25:55 -07:00
Vincent Koc
4394ad538c
refactor(release): share agent turn retry lifecycle (#147076) 2026-09-14 05:09:04 +08:00
Peter Steinberger
dab1f08376
feat: give every plugin a compact chat activity icon (#147333)
* feat: give every plugin a compact chat activity icon

Separate package-owned activity SVGs from plugin identity artwork. Ship 154 defaults and seven exact tool overrides, preserving Echo and the progress claw. Include authenticated bounded delivery, safe mask rendering, packaging, and authoring guidance.

* test: declare Vite types for the activity asset browser test

* refactor: keep plugin artwork selection with catalog presentation facts

* test: scope activity browser types and simplify fixture copies
2026-09-13 13:49:51 -07:00
Vyctor H. Brzezowski
d626e5f782
refactor(workboard): simplify cards and session status (#144752)
* refactor(ui): organize Workboard cards and session status

* fix(ui): retain one selectable agent declaration after layer rebase

* test(ui): align staged card proof with legacy detail rendering

* fix(workboard): recover partial card moves and column creation

* test(workboard): exercise column creation in a visible scoped column

* fix(workboard): refresh relative card times while idle

* test(workboard): isolate clock count from selection events

* style(workboard): format card clock regression

* fix(workboard): retain move failures after load recovery

* fix(workboard): honor widget board scope in empty columns

* build(workboard): refresh card assets and format regression

* refactor(workboard): keep card helpers private until consumed

* test(workboard): describe required clock fixture elements

* test(workboard): match card flows to their stack layer

* style(workboard): format scoped priority locators

* test(workboard): check legacy picker readiness in cards

* fix(workboard): dismiss session status on outside pointer

* fix(workboard): recover failed moves without overwriting peers

* fix(workboard): consume host colors and verify recovery

* refactor(workboard): reuse priority and timestamp rendering

* chore(workboard): format sources and refresh browser assets

* fix(workboard): retain automation labels until heading migration

* fix(workboard): recover canonical state with comment drafts

* build: refresh Workboard browser assets
2026-09-13 17:11:34 -03:00
Vyctor H. Brzezowski
06431c33f0
refactor(ui): model Workboard preview sessions consistently (#144747)
* fix(ui): preserve mock session lifecycle through send and abort

* fix(ui): retain mock cancellations and isolate Workboard fixtures

* fix(ui): reconcile mock session previews after cancellation

* fix(workboard): restore dashboard progress in mock

* refactor(workboard): isolate mock progress fixtures

* fix(ui): retain mock session failure diagnostics

* style(ui): format session diagnostic fixtures

* fix(ui): preserve newer mock session outcomes

* fix(ci): provision ripgrep for runtime projection tests
2026-09-13 17:11:33 -03:00
Vincent Koc
1a0e78fc8a
fix(ci): avoid live retries caused by passing test names (#147322) 2026-09-14 04:06:20 +08:00
Peter Steinberger
791124ac5e
feat(computer): control Gateway desktops without paired nodes (#147275)
* feat(computer): control Gateway desktops without paired nodes

* fix(computer): preserve remote nodes and cancel revoked executions
2026-09-13 12:58:42 -07:00
Vincent Koc
c8c4390cc7
refactor(scripts): share Docker diagnostic command lookup (#144231) 2026-09-14 03:58:04 +08:00
Peter Steinberger
cd1ff2a4d6
feat: load CDN libraries and fonts in widgets (#147265)
* feat: load CDN libraries and fonts in widgets

Share public static-resource origins across document, sandbox, and channel policies while keeping API access and native Gateway pins separate. Add visualization guidance for inline code explanations and persistent dashboards.

* fix: preserve local widget renderers in direct hosting

Keep document-approved same-origin renderer scripts available in the intersecting HTTP CSP. Cover stored and newly wrapped registered documents without granting API connections.
2026-09-13 12:50:45 -07:00
Vincent Koc
305bcbe12d
fix(install): preserve empty PATH search entries (#147249) 2026-09-14 03:46:26 +08:00
Vincent Koc
f6a10b8436
fix(ci): keep native drift comparisons locale-independent (#147309) 2026-09-14 03:34:59 +08:00
Peter Steinberger
3d727aef5a
fix(cli): preserve startup metadata when publication fails (#147290)
Publish the complete generated artifact through the existing atomic replacement owner. Preserve ordinary modes and symlinked output parents, remove the direct truncating write, and cover partial-write and rename failures. Fixes #127453. Production net -3 lines.
2026-09-13 12:32:36 -07:00
Vincent Koc
4d6ebf94e6
fix(install): preserve runtime links when Node validation fails (#147221)
* fix(install): preserve runtime links when Node validation fails

* fix(install): preserve relative runtime targets and empty aliases

* test(install): preserve runtime fixture tuple types
2026-09-14 03:17:04 +08:00
Vincent Koc
28887b5642
fix(qa): bind coverage IDs to producer assertions (#144000)
Punchcard-Session: silver-brook-timber-ry
2026-09-14 02:50:18 +08:00
Vincent Koc
c2eb6a2a0e
fix(install): use system Node for FreeBSD CLI setup (#147204)
* fix(install): use system Node for FreeBSD CLI setup

* test(install): use system Bash for sourced macOS fixtures
2026-09-14 02:43:28 +08:00