Summary
After PR #97 (feat/centralize-autoupdate), the OpenClaw plugin's checkForUpdate() correctly polls the npm registry instead of ClawHub, and emits Run: hivemind update instead of openclaw plugins update hivemind. But during cold gateway init, the 5-second AbortSignal.timeout(5000) on the registry fetch fires before the response lands, swallowing the upgrade-available notice for that gateway run.
Symptom
[plugins] Hivemind plugin registered
[plugins] Auto-update check failed: The operation was aborted due to timeout
Expected output ⬆️ Hivemind update available: <current> → <latest>. Run: hivemind update never renders.
Repro
- Start a fresh openclaw gateway with
--dev profile (or production)
- Watch
/tmp/openclaw.log for the [plugins] lines
The timeout is reproducible on cold start. Re-running the gateway tends to succeed (warm TLS / DNS).
Confirmation that the change itself is in the bundle
$ grep -oE 'registry.npmjs.org/@deeplake|clawhub.ai' ~/.openclaw/extensions/hivemind/dist/index.js
registry.npmjs.org/@deeplake
$ grep -c 'openclaw plugins update' ~/.openclaw/extensions/hivemind/dist/index.js
0
So the centralization at the source-of-truth layer (npm registry vs ClawHub) and the advice-text layer (Run: hivemind update) is in place. Only the live notice render is unreliable due to the cold-init timeout.
Confirmation the registry itself is fast
$ time curl -sS -o /dev/null https://registry.npmjs.org/@deeplake/hivemind/latest
real 0m0.167s
So 5s is plenty in steady state. The first-run timeout was likely cold TLS + bonjour-watchdog noise running concurrently with plugin register.
Suggested fix
In openclaw/src/index.ts:checkForUpdate:
- Bump the timeout from
5000 to 10000 ms to absorb cold-init latency.
- OR: on
AbortError, retry once with exponential backoff before silently giving up.
const res = await fetch(VERSION_URL, { signal: AbortSignal.timeout(10000) }); // was 5000
What this PR established for OpenClaw
- ✅ Bundle URL changed from
clawhub.ai → registry.npmjs.org/@deeplake/...
- ✅ Advice text changed from
openclaw plugins update hivemind → Run: hivemind update (in the in-prompt notice, the registerCommand handler, AND the inlined SKILL.md)
- ⚠️ Live notice render not observed in E2E this run (5s timeout); registry measured 167ms in steady state, so a small bump fixes it.
Priority
Low. The check runs once per gateway start and doesn't affect runtime behavior. Users still get hivemind update (manually or through any other agent's session-start centralized trigger) — just don't get the in-prompt nudge from OpenClaw on the cold-start gateway run.
Summary
After PR #97 (
feat/centralize-autoupdate), the OpenClaw plugin'scheckForUpdate()correctly polls the npm registry instead of ClawHub, and emitsRun: hivemind updateinstead ofopenclaw plugins update hivemind. But during cold gateway init, the 5-secondAbortSignal.timeout(5000)on the registry fetch fires before the response lands, swallowing the upgrade-available notice for that gateway run.Symptom
Expected output
⬆️ Hivemind update available: <current> → <latest>. Run: hivemind updatenever renders.Repro
--devprofile (or production)/tmp/openclaw.logfor the[plugins]linesThe timeout is reproducible on cold start. Re-running the gateway tends to succeed (warm TLS / DNS).
Confirmation that the change itself is in the bundle
So the centralization at the source-of-truth layer (npm registry vs ClawHub) and the advice-text layer (
Run: hivemind update) is in place. Only the live notice render is unreliable due to the cold-init timeout.Confirmation the registry itself is fast
$ time curl -sS -o /dev/null https://registry.npmjs.org/@deeplake/hivemind/latest real 0m0.167sSo 5s is plenty in steady state. The first-run timeout was likely cold TLS + bonjour-watchdog noise running concurrently with plugin register.
Suggested fix
In
openclaw/src/index.ts:checkForUpdate:5000to10000ms to absorb cold-init latency.AbortError, retry once with exponential backoff before silently giving up.What this PR established for OpenClaw
clawhub.ai→registry.npmjs.org/@deeplake/...openclaw plugins update hivemind→Run: hivemind update(in the in-prompt notice, the registerCommand handler, AND the inlined SKILL.md)Priority
Low. The check runs once per gateway start and doesn't affect runtime behavior. Users still get
hivemind update(manually or through any other agent's session-start centralized trigger) — just don't get the in-prompt nudge from OpenClaw on the cold-start gateway run.