mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 15:50:46 +00:00
fix: make npm global updates atomic
This commit is contained in:
@@ -85,7 +85,11 @@ install method aligned:
|
||||
The Gateway core auto-updater (when enabled via config) reuses this same update path.
|
||||
|
||||
For package-manager installs, `openclaw update` resolves the target package
|
||||
version before invoking the package manager. Even when the installed version
|
||||
version before invoking the package manager. npm global installs use a staged
|
||||
install: OpenClaw installs the new package into a temporary npm prefix, verifies
|
||||
the packaged `dist` inventory there, then swaps that clean package tree into the
|
||||
real global prefix. If verification fails, post-update doctor, plugin sync, and
|
||||
restart work do not run from the suspect tree. Even when the installed version
|
||||
already matches the target, the command refreshes the global package install,
|
||||
then runs plugin sync, a core-command completion refresh, and restart work. This
|
||||
keeps packaged sidecars and channel-owned plugin records aligned with the
|
||||
|
||||
@@ -87,11 +87,13 @@ curl -fsSL https://openclaw.ai/install.sh | bash -s -- --install-method npm --ve
|
||||
npm i -g openclaw@latest
|
||||
```
|
||||
|
||||
When `openclaw update` manages a global npm install, it first runs the normal
|
||||
global install command. If that command fails, OpenClaw retries once with
|
||||
`--omit=optional`. That retry helps hosts where native optional dependencies
|
||||
cannot compile, while keeping the original failure visible if the fallback also
|
||||
fails.
|
||||
When `openclaw update` manages a global npm install, it installs the target into
|
||||
a temporary npm prefix first, verifies the packaged `dist` inventory, then swaps
|
||||
the clean package tree into the real global prefix. That avoids npm overlaying a
|
||||
new package onto stale files from the old package. If the install command fails,
|
||||
OpenClaw retries once with `--omit=optional`. That retry helps hosts where native
|
||||
optional dependencies cannot compile, while keeping the original failure visible
|
||||
if the fallback also fails.
|
||||
|
||||
```bash
|
||||
pnpm add -g openclaw@latest
|
||||
|
||||
Reference in New Issue
Block a user