openclaw/docs/install
Peter Steinberger 5c60120e89
fix: prevent Gateway shutdown failures after in-place updates (#160674)
An in-place update replaces the package's hashed chunks while the old Gateway is still running. Shutdown then lazily imported cleanup modules that no longer existed: 2026.9.6 exited with ERR_MODULE_NOT_FOUND for the transcript capture-operations chunk, and other teardown paths (MCP runtime retirement, provider local services, browser relay and Chrome MCP, worker temp-artifact cleanup) had the same hazard.

Cleanup owners are now retained when their resources are created, so teardown never first-imports code. Transcript capture ownership moves into the eagerly loaded capture-startup module, and shutdown persists heuristic notes without starting optional model inference. Provider local services register their stop callback when they start. MCP cleanup has a lightweight owner module. Browser teardown peeks the lazy accessors that production ingress loads. The worker pool preloads artifact cleanup in its async preparation step before creating resources, which keeps chalk/tslog out of the native hook relay's static graph.

The provider-runtime-lifecycle stable tsdown entry stays, because published-update compatibility bridges map older hashed chunks onto it, and Knip treats it as an entry. Protection applies to updates from a release containing this change; older running Gateways keep the limitation, as docs/install/updating.md describes.

Proof: a built-runtime smoke removed 7,011 hashed chunks after startup and still shut down cleanly (exit 0, 6.3 s). Focused shutdown, transcript, worker-pool, browser and MCP suites pass, along with core types, import-cycle checks, Knip and the CLI bootstrap guard. Codex autoreview is scoped-clean. The final CI failures were main-side inventory breaks (wrapper components, suppression count), fixed on main by b3b34beebe and bd11387977.
2026-09-30 19:20:24 -07:00
..
docker
updating fix(update): refuse automatic restore after unattributed Doctor-time database writes (#160167) 2026-09-30 18:34:33 -07:00
ansible.md
azure.md
backups.md docs(backup): correct malformed config recovery guidance (#159259) 2026-09-26 17:21:05 -07:00
bun-compatibility.md improve: keep SQLite workers alive on Bun builds that release native handles (#161764) 2026-09-30 04:50:56 -07:00
bun.md fix: source workers receive Node loaders under renamed Bun (#158521) 2026-09-26 10:58:04 -07:00
cloudflare.md
daytona.md
development-channels.md fix(update): exclude extended-stable tags from stable Git updates (#154598) 2026-09-21 09:17:09 +00:00
digitalocean.md
docker-vm-runtime.md
docker.md fix: prevent temporary-file exhaustion from SQLite coordination (#157413) 2026-09-27 05:30:41 -07:00
exe-dev.md
fly.md
gcp.md
hetzner.md
hostinger.md
index.md docs: install the checkout pnpm version without Corepack (#160513) 2026-09-30 18:10:40 -07:00
installer.md chore(deps): refresh dependencies with a seven-day cutoff (#157238) 2026-09-25 02:38:45 +00:00
kubernetes.md
macos-vm.md docs: macOS VM install step fails on a fresh VM without Node (#160239) 2026-09-30 17:56:17 -07:00
migrating-claude.md
migrating-hermes.md
migrating.md
nix.md
node-compatibility.md chore(deps): refresh dependencies with a seven-day cutoff (#157238) 2026-09-25 02:38:45 +00:00
node.md fix(update): prevent private Node installation after authority is lost (#154334) 2026-09-21 17:20:55 +08:00
northflank.mdx
oracle.md
podman.md refactor(scripts): deslop tooling scripts (#160798) 2026-09-28 17:20:56 -07:00
railway.mdx
raspberry-pi.md
render.mdx
uninstall.md
update-troubleshooting.md fix(node): headless nodes with default plugins never activate automatic updates (#160790) 2026-09-28 19:12:09 -07:00
updating.md fix: prevent Gateway shutdown failures after in-place updates (#160674) 2026-09-30 19:20:24 -07:00
upstash.md