openclaw/docs/gateway
Peter Steinberger e98c7dfbcb
feat(cloud-workers): session placement, dispatch, and worker turn routing (#106332)
* feat(gateway-protocol): add session placement schema

Closed state discriminator for session execution placement (local/requested/provisioning/syncing/starting/active/draining/reconciling/reclaimed/failed), sessions.dispatch params, and worker-admission transcript/live cursor extensions. Swift protocol models mirror the schema.

* feat(state): add worker session placement table

worker_session_placements rows carry placement state, transition generation, worker ownership metadata, ACK cursors, and the turn claim columns used for atomic admission.

* feat(cloud-workers): add durable placement state machine store

SQLite-backed placement store split by concern: state table (placement-state), discriminated record types + shape invariants (placement-record), row codec + CAS transition values (placement-row-codec), atomic turn-claim admission/release/waiters (placement-turn-claims), and lifecycle CAS transitions (placement-store).

* feat(cloud-workers): sync workspaces and attach sessions to worker environments

Environment service session attachment + turn credentials, tunnel workspace commands over a dedicated SSH runner, and git/plain workspace sync into $HOME/.openclaw-worker/workspaces with an immutable manifest. Symlink escapes are rejected locally before transfer (macOS openrsync stat-fails them opaquely) and again by the remote manifest guard.

* feat(worker): run one-shot embedded turns from launch descriptors

Worker runtime executes a single embedded turn from a stdin launch descriptor and reports completed/failed/fenced on stdout for the gateway launcher. Terminal lifecycle live events are deferred past the final transcript flush; transcript projection helpers are shared via transcript-message instead of duplicated in the runtime.

* feat(cloud-workers): dispatch placements and route worker turns

Dispatch service drives local->requested->provisioning->syncing->starting->active with failure teardown (placement-dispatch-failure) and restart/runtime recovery incl. lost-worker reclaim (placement-dispatch-recovery). Worker turn launcher claims the placement turn atomically, builds a windowed launch descriptor (worker-turn-payload), runs the remote one-shot worker, and reconciles the committed transcript; agent runners route turns through the session placement admission provider.

* feat(gateway): expose session placement RPCs and startup reconciliation

sessions.dispatch RPC with lifecycle admission barriers, operator-facing placement projection on session listings, placement-aware session reset guard, and startup/interval reconciliation wiring for worker placements.
2026-07-13 08:03:53 -07:00
..
security docs: harden Gmail hook guidance 2026-07-12 22:42:48 -07:00
1password.md docs(gateway): dedicated 1Password integration page (#106109) 2026-07-12 23:52:33 -07:00
audit.md feat: add metadata-only message audit events (#103903) 2026-07-11 13:14:08 -07:00
authentication.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
background-process.md fix: suspension and restart wait for background execs (#104172) 2026-07-10 22:56:17 -07:00
bonjour.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
bridge-protocol.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
cli-backends.md fix(agents): honor claude-cli contextTokens setting (#93198) 2026-07-13 01:58:44 -07:00
config-agents.md fix(config): reject schema-only keys (#106031) 2026-07-12 23:10:12 -07:00
config-channels.md refactor(config): retire flat streaming keys from the last six channel schemas via doctor migration (#105709) 2026-07-12 15:27:28 -07:00
config-tools.md chore: migrate active GPT-5.5 references to GPT-5.6 (#104452) 2026-07-11 06:30:57 -07:00
configuration-examples.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
configuration-reference.md feat(worktrees): configurable cleanup limits (max count, max total size) with Settings UI (#106224) 2026-07-13 06:00:33 -07:00
configuration.md refactor: flip sessions and transcripts to sqlite storage (#98236) 2026-07-11 14:50:37 -07:00
diagnostics.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
discovery.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
doctor.md fix(sqlite): reject runtimes vulnerable to WAL corruption (#106065) 2026-07-13 13:59:00 +08:00
external-apps.md docs(plugins): document safe external cron projection (#104227) 2026-07-10 23:26:40 -07:00
gateway-lock.md fix(sqlite): serialize offline maintenance with gateway (#106210) 2026-07-13 18:15:32 +08:00
health.md refactor: flip sessions and transcripts to sqlite storage (#98236) 2026-07-11 14:50:37 -07:00
heartbeat.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
index.md feat(gateway): land remaining durable-approvals stack and repair main gates (#104837) 2026-07-12 10:51:38 +01:00
local-model-services.md docs: cover embedding local service leases 2026-07-11 16:22:22 +08:00
local-models.md fix(agents): keep exec visible for lean local models (#101607) 2026-07-07 12:46:26 +01:00
logging.md chore: migrate active GPT-5.5 references to GPT-5.6 (#104452) 2026-07-11 06:30:57 -07:00
multi-tenant-hosting.md feat(fleet): harden create, port allocation, drift visibility, and audit guidance (#104814) 2026-07-12 07:02:42 +01:00
multiple-gateways.md fix(sqlite): serialize offline maintenance with gateway (#106210) 2026-07-13 18:15:32 +08:00
network-model.md docs: consolidate moved docs pages 2026-05-05 17:38:21 +01:00
openai-http-api.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
openresponses-http-api.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
openshell.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
opentelemetry.md fix: show exported tool results in trace viewers (#101371) 2026-07-07 17:14:30 +10:00
operator-scopes.md docs(security): clarify computer act authorization 2026-07-10 13:06:53 -05:00
pairing.md feat(gateway): auto-approve node pairing via SSH device-key verification (#104180) 2026-07-10 22:23:10 -07:00
prometheus.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
protocol.md feat(cloud-workers): session placement, dispatch, and worker turn routing (#106332) 2026-07-13 08:03:53 -07:00
remote-gateway-readme.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
remote.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
restart-recovery.md fix(gateway): preserve Control UI turns across restarts (#106151) 2026-07-13 02:08:56 -07:00
sandbox-vs-tool-policy-vs-elevated.md fix(computer): prevent stale, replayed, and post-cancel desktop actions (#103422) 2026-07-10 06:47:56 +01:00
sandboxing.md fix: land ten small reliability fixes (#100483) 2026-07-06 00:08:51 +01:00
secrets-plan-contract.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
secrets.md docs(gateway): dedicated 1Password integration page (#106109) 2026-07-12 23:52:33 -07:00
tailscale.md fix(gateway): preserve local access for specific binds (#98479) 2026-07-10 19:18:47 -07:00
tools-invoke-http-api.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
troubleshooting.md docs(gateway): add launchd supervisor loop troubleshooting (#89816) 2026-07-11 15:59:12 -07:00
trusted-proxy-auth.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00