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.
* 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
* 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
* 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>
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 |
| --- | --- |
|  |  |
Co-authored-by: Jason O'Neal <jason.allen.oneal@gmail.com>
Co-authored-by: Ayaan Zaidi <hi@obviy.us>
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.
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.
* 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
* 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.
* 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
* 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.
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.