Summary
During a 2026.5.12-beta.4 -> 2026.5.12-beta.5 update on one macOS npm/pnpm install, configured external plugin lossless-claw had no @beta release, so the updater fell back to @latest. The beta 5 plugin scanner then blocked the installed tree for dangerous patterns in transitive dependency/example files, disabled the plugin, and left stale config references including the configured contextEngine slot.
Core OpenClaw remained healthy after update, but the host lost its configured context engine and now falls back to legacy with stale plugin config warnings.
Environment
- OpenClaw before:
2026.5.12-beta.4
- OpenClaw after:
2026.5.12-beta.5 (2cdd69a)
- Install mode/root: npm/pnpm global install under Homebrew Node prefix
- OS: macOS
- Update command:
openclaw update --channel beta --tag 2026.5.12-beta.5 --yes --timeout 1800
Hostnames, usernames, local paths, account IDs, and tokens are intentionally omitted.
What happened
The update completed the core package upgrade, but plugin update output included:
Could not check lossless-claw before update; falling back to installer path: Package not found on npm: @martian-engineering/lossless-claw@beta.
Plugin "lossless-claw" has no beta npm release for @martian-engineering/lossless-claw@beta; using @martian-engineering/lossless-claw@latest instead. Core update can still complete.
WARNING: Plugin "lossless-claw" installed tree contains dangerous code patterns: Shell command execution detected (child_process); Dynamic code execution detected; Environment variable access combined with network send.
Disabled "lossless-claw" after plugin update failure; OpenClaw will continue without it.
After update, config and doctor output showed stale references:
Config warnings:
- plugins.entries.lossless-claw: plugin not found: lossless-claw (stale config entry ignored; remove it from plugins config)
- plugins.allow: plugin not found: lossless-claw (stale config entry ignored; remove it from plugins config)
Doctor:
- plugins.slots.contextEngine: slot references missing plugin "lossless-claw"
Runtime logs also confirmed fallback away from the configured context engine:
[context-engine] Context engine "lossless-claw" is not registered; falling back to default engine "legacy".
openclaw plugins doctor printed the stale config warnings, but still ended with:
No plugin issues detected.
Expected behavior
If a channel-specific plugin install falls back to @latest and the security scanner blocks the resulting tree, the updater should avoid leaving the host in a half-disabled/stale-config state. Possible acceptable outcomes:
- Keep or restore the previously working plugin version if it was already installed and passed prior validation.
- Disable the plugin but atomically clean or rewrite dependent config such as
plugins.allow, plugins.entries, and plugins.slots.contextEngine.
- Leave config untouched but emit a high-signal remediation summary that clearly says the context engine was disabled and what command/operator action is needed next.
The scanner may be correct to block this install; the bug is the confusing post-update state and stale context-engine configuration.
Actual post-update state
Healthy:
openclaw --version: OpenClaw 2026.5.12-beta.5 (2cdd69a)
openclaw gateway status --deep: LaunchAgent loaded, gateway running, CLI and gateway both beta 5, connectivity probe OK
- Direct agent check through
openai/gpt-5.5 / agentHarnessId: codex passed with fallbackUsed: false
Regressed/degraded:
lossless-claw absent from selected plugins after update
- stale
plugins.entries.lossless-claw
- stale
plugins.allow reference
plugins.slots.contextEngine still points at missing plugin
- runtime falls back to
legacy context engine
plugins doctor still says No plugin issues detected after printing related warnings
Likely source areas
src/plugins/update.ts
src/plugins/install-security-scan.runtime.ts
src/plugins/config-activation-shared.ts
src/plugins/effective-plugin-ids.ts
src/plugins/slots.ts
- context engine registration/fallback path
Not treated as failures
- Existing task-audit warnings on the host predated beta 5.
- Optional model-pricing warnings did not block model routing.
- I did not force reinstall the plugin or run
openclaw doctor --fix, because either would mutate the operator state beyond update/audit verification.
Summary
During a
2026.5.12-beta.4->2026.5.12-beta.5update on one macOS npm/pnpm install, configured external pluginlossless-clawhad no@betarelease, so the updater fell back to@latest. The beta 5 plugin scanner then blocked the installed tree for dangerous patterns in transitive dependency/example files, disabled the plugin, and left stale config references including the configuredcontextEngineslot.Core OpenClaw remained healthy after update, but the host lost its configured context engine and now falls back to
legacywith stale plugin config warnings.Environment
2026.5.12-beta.42026.5.12-beta.5 (2cdd69a)Hostnames, usernames, local paths, account IDs, and tokens are intentionally omitted.
What happened
The update completed the core package upgrade, but plugin update output included:
After update, config and doctor output showed stale references:
Runtime logs also confirmed fallback away from the configured context engine:
openclaw plugins doctorprinted the stale config warnings, but still ended with:Expected behavior
If a channel-specific plugin install falls back to
@latestand the security scanner blocks the resulting tree, the updater should avoid leaving the host in a half-disabled/stale-config state. Possible acceptable outcomes:plugins.allow,plugins.entries, andplugins.slots.contextEngine.The scanner may be correct to block this install; the bug is the confusing post-update state and stale context-engine configuration.
Actual post-update state
Healthy:
openclaw --version:OpenClaw 2026.5.12-beta.5 (2cdd69a)openclaw gateway status --deep: LaunchAgent loaded, gateway running, CLI and gateway both beta 5, connectivity probe OKopenai/gpt-5.5/agentHarnessId: codexpassed withfallbackUsed: falseRegressed/degraded:
lossless-clawabsent from selected plugins after updateplugins.entries.lossless-clawplugins.allowreferenceplugins.slots.contextEnginestill points at missing pluginlegacycontext engineplugins doctorstill saysNo plugin issues detectedafter printing related warningsLikely source areas
src/plugins/update.tssrc/plugins/install-security-scan.runtime.tssrc/plugins/config-activation-shared.tssrc/plugins/effective-plugin-ids.tssrc/plugins/slots.tsNot treated as failures
openclaw doctor --fix, because either would mutate the operator state beyond update/audit verification.