openclaw/docs/gateway/cloud-workers
Peter Steinberger 10ea4739bd
fix(nodes): apply the same tool policy to node sessions as Gateway sessions (#160444)
* fix(nodes): apply the same tool policy to node sessions as Gateway sessions

Share Gateway tool preparation and resolved filesystem/apply_patch policy with worker turns. Deliver the issued surface during admission and route Gateway-owned tools through one build-gated transport. Move session-tool grants and durable operation journals to the SQLite worker broker while preserving live authority, replay, cancellation, and recovery.

* fix(nodes): repair worker tool surface CI contracts

Keep worker-only schemas outside the operator registry, distinguish worker tool proxies from Gateway executors, and split runtime and receipt contracts from their implementations. Extract coherent source and test siblings without weakening authority checks or removing coverage. Remove unused profile inputs and migrate their internal callers.

Validation: 67 focused test files pass on the isolated Linux lease; core, package, source-test, extension, and UI-test typechecks pass. Protocol generation, export contracts, architecture, formatting, assertion safety, and line-cap checks pass. The changed-set Node matrix has 93 rows against its 130-row cap; aggregate production LOC remains negative.

* refactor(nodes): retire unused worker tool exports

Keep worker protocol primitives, local tool grouping, and the Skill Workshop descriptor private now that shared constructors own their callers. Remove the unused worker session-tool name type; no runtime implementation or public package entry point changes.

Validation: full Knip production and export scans, protocol generation/checks, core and package typechecks, and nine affected test files pass on the isolated Linux lease. The export-only diff passed independent review through P2.

* fix(nodes): preserve authority receivers and async fixture ordering

Bind portal authority methods to their owner, await worker recovery and authorization in affected fixtures, and preserve immutable tool descriptors while projecting tools. Enforce required braces and exhaustive operation handling, remove obsolete policy inputs and duplicate projections, and retire the no-longer-needed max-lines allowance.

Validation: typed lint on all changed files, core and complete source-test typechecks, and 88 focused test files pass on the lease. The portal receiver regression fails against the prior implementation. Independent repair review is clean through P2.

* refactor(agents): colocate configured main-session helpers

Keep configured-main lookup and creation with the existing sessions-send delivery owner after rebasing. Preserve roster, sentinel, optional agent identity, and Cron authority behavior while removing the line-cap growth. The main-key constructor is the same owner called by the previous constant-main adapter.

* test(workers): reuse the shared gateway tool capability

The attached environment fixture already advertises worker-gateway-tools-v1. Appending it again violated the admission schema uniqueItems contract and rejected both queued launches before the browser custody assertions could complete. Remove only the redundant import and entry; keep skill-resource admission and every custody assertion unchanged.

* fix(workers): register tool cancellation before yielding

Admission already prepares and issues the exact tool handles. Consume those validated handles synchronously during invocation so immediate cancellation and close can see the call before it yields. Preserve live authority checks, FIFO barriers, active-call joining, four-call bounds, and cooperative settlement.

The Gateway RPC regression fails on the prior implementation and passes with the fix. All 210 tests in 11 affected files pass; production LOC is unchanged by this repair.

* fix(tooling): include worker tool protocol dependencies in PR wrapper

Keep the trusted wrapper extraction inventory closed over the worker-admission runtime imports by including the worker Gateway-tool schema and its validation-error dependency. Preserve the extracted-context and inventory closure assertions.

* fix(workers): preserve control budgets across mixed-media results

Share encoded frame accounting with transcripts and keep unreadable input rejection inside its owner. Verify fresh catalogs and handles across warm retained turns, preserve current node launch limits, and align the async authority fixture after the main rebase.

* fix(workers): preserve protocol imports and live sender authority

Share canonical session-tool schemas and collapse duplicate tool, receipt, and teardown plumbing. Preserve published 2026.9.6 decoding imports without advertising retired RPCs. Carry sender authority through direct steering to the final enqueue.

* fix(agents): retain the typed tool description projection

* style(workers): retain compact type import layout

* refactor(tools): construct projected tools in a single pass

* fix(workers): preserve acyclic tool and receipt contracts

Keep cross-owner tool and receipt types in leaf modules. Consolidate preparation and live/abort checks without changing validation order, and reuse the canonical timeout and captured caller facts.

* style(workers): distinguish the prepared catalog binding

* fix(workers): project claim data before database dispatch

* refactor(workers): share publication settlement and string normalization

Preserve commit, rollback, invalidation, and tool binding order after main integration. Reuse the canonical string normalization owner and keep the complete production diff net negative.

* test(gateway): track lazy prepared tool construction

* fix(cron): use the prepared capability profile contract

* test(agents): restore real tools in prepared delivery fixture

* fix(protocol): preserve published worker presence decoders

Retain the schemas, types, validator, and feature constant shipped in
@openclaw/gateway-protocol 2026.9.7 as decoding-only APIs. Keep the retired
worker RPC unadvertised and preserve the published error-code schema shape.

Extend the compatibility regression and share static inventory transport
normalization. Production remains net -11 lines against the PR base.
2026-09-30 01:14:31 -07:00
..
desktop.md feat(desktop): let agents resume after manual control (#159923) 2026-09-28 10:16:42 -07:00
dispatching-a-session.md fix: explain cloud worker startup failures (#152043) 2026-09-18 13:30:41 -07:00
per-project-default-profiles.md fix(cloud-workers): slow cold enrollments fail pairing, and timed-out enrollments can still pair (#161552) 2026-09-29 23:02:35 -07:00
placement-and-machine-selection.md feat(crabbox): run native CUA in macOS and Windows cloud desktops (#152060) 2026-09-21 15:31:06 -07:00
security-model.md fix(nodes): apply the same tool policy to node sessions as Gateway sessions (#160444) 2026-09-30 01:14:31 -07:00
session-lifecycle.md fix(cloud-workers): first turn after a Gateway update fails with a missing worker bundle (#160820) 2026-09-30 01:41:55 +00:00
setup-and-bundle-installation.md fix(cloud-workers): slow cold enrollments fail pairing, and timed-out enrollments can still pair (#161552) 2026-09-29 23:02:35 -07:00
troubleshooting.md fix(cloud-workers): slow cold enrollments fail pairing, and timed-out enrollments can still pair (#161552) 2026-09-29 23:02:35 -07:00
verify-the-profile.md docs(cloud-workers): profile setup still tells operators to restart the Gateway (#159640) 2026-09-27 11:00:14 -07:00
warm-images.md fix(crabbox): first dispatch fails when the backend cannot capture native snapshots (#161465) 2026-09-29 22:23:40 -07:00