Bug type
Behavior bug (incorrect output/state without crash)
Beta release blocker
No
Summary
Source-built Docker images using the documented OPENCLAW_EXTENSIONS build argument stage selected plugin dependencies but omit compiled runtime entries for selected official plugins whose package metadata sets openclaw.build.bundledDist: false.
Steps to reproduce
- Check out OpenClaw main at
f1b75bf5fa342664b2e3e03a6138a0f8e321500d.
- Build the Dockerfile with
--build-arg OPENCLAW_EXTENSIONS=slack.
- Run
node openclaw.mjs plugins inspect slack --runtime --json inside the final image.
- Observe that the selected plugin runtime is unavailable and
/app/dist/extensions/slack/index.js is absent even though its production dependencies were staged.
Expected behavior
An explicitly selected supported plugin is compiled and packaged into /app/dist/extensions/<id> with its manifest, package metadata, and production dependencies. Unknown selections fail closed, while known dependency/source-only selections retain their existing staging behavior.
Actual behavior
OPENCLAW_EXTENSIONS currently affects dependency installation and pruning only. A selected official plugin excluded from the root bundled distribution can survive pruning without receiving a runnable root dist/extensions/<id> entry.
OpenClaw version
Main at f1b75bf5fa342664b2e3e03a6138a0f8e321500d; the published 2026.6.11 image also predates this support.
Operating system
Linux amd64 and Linux arm64 Docker hosts.
Install method
Source-built Docker image.
Model
N/A (packaging-only reproduction; no inference request).
Provider / routing chain
N/A (packaging-only reproduction; no provider request).
Additional provider/model setup details
No credentials or provider configuration are required.
Logs
The final image also lacks /app/dist/extensions/slack/index.js.
Screenshots, recordings, and evidence
Reproduced through final-image filesystem inspection and plugins inspect --runtime --json on native amd64 and arm64 Docker hosts.
Impact and severity
- Affected: operators building standalone OpenClaw Docker images with selected official plugins.
- Severity: high for affected images because the selected channel cannot load.
- Frequency: deterministic for selected plugins excluded from the root bundled distribution.
- Consequence: an apparently successful image build cannot run the selected channel plugin.
Additional information
The fix should remain Docker-only and must not change the plugins' npm or release bundledDist semantics. Crabhelm-managed gateways use a separate private appliance archive and do not consume these OCI images.
Bug type
Behavior bug (incorrect output/state without crash)
Beta release blocker
No
Summary
Source-built Docker images using the documented
OPENCLAW_EXTENSIONSbuild argument stage selected plugin dependencies but omit compiled runtime entries for selected official plugins whose package metadata setsopenclaw.build.bundledDist: false.Steps to reproduce
f1b75bf5fa342664b2e3e03a6138a0f8e321500d.--build-arg OPENCLAW_EXTENSIONS=slack.node openclaw.mjs plugins inspect slack --runtime --jsoninside the final image./app/dist/extensions/slack/index.jsis absent even though its production dependencies were staged.Expected behavior
An explicitly selected supported plugin is compiled and packaged into
/app/dist/extensions/<id>with its manifest, package metadata, and production dependencies. Unknown selections fail closed, while known dependency/source-only selections retain their existing staging behavior.Actual behavior
OPENCLAW_EXTENSIONScurrently affects dependency installation and pruning only. A selected official plugin excluded from the root bundled distribution can survive pruning without receiving a runnable rootdist/extensions/<id>entry.OpenClaw version
Main at
f1b75bf5fa342664b2e3e03a6138a0f8e321500d; the published2026.6.11image also predates this support.Operating system
Linux amd64 and Linux arm64 Docker hosts.
Install method
Source-built Docker image.
Model
N/A (packaging-only reproduction; no inference request).
Provider / routing chain
N/A (packaging-only reproduction; no provider request).
Additional provider/model setup details
No credentials or provider configuration are required.
Logs
The final image also lacks
/app/dist/extensions/slack/index.js.Screenshots, recordings, and evidence
Reproduced through final-image filesystem inspection and
plugins inspect --runtime --jsonon native amd64 and arm64 Docker hosts.Impact and severity
Additional information
The fix should remain Docker-only and must not change the plugins' npm or release
bundledDistsemantics. Crabhelm-managed gateways use a separate private appliance archive and do not consume these OCI images.