openclaw - ✅(Solved) Fix [Bug]: Third-party TypeScript plugin missing compiled output causes startup warning with no fix path [1 pull requests, 1 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#77835Fetched 2026-05-06 06:20:31
View on GitHub
Comments
1
Participants
2
Timeline
5
Reactions
2
Timeline (top)
referenced ×2closed ×1commented ×1cross-referenced ×1

After upgrading to OpenClaw 2026.5.3-1, a new config warning appears on every gateway restart:

plugins: plugin: installed plugin package requires compiled runtime output for TypeScript entry index.ts: expected ./dist/index.js, ./dist/index.mjs, ./dist/index.cjs, index.js, index.mjs, index.cjs

Error Message

  1. When OpenClaw detects a TypeScript plugin entry with no compiled output, provide a clear error message explaining the issue is with the plugin publisher, not the user's configuration

Root Cause

The installed plugin @tencent-weixin/[email protected] declares its entry point as ./index.ts in openclaw.plugin.json, but the published npm package contains no compiled output (dist/ directory does not exist) and no tsconfig.json. As a result, the plugin cannot be built locally either.

The package's package.json has a build script (tsc) and prepublishOnly that should run it, but the compiled output was not included in the published package.

Fix Action

Fixed

PR fix notes

PR #77842: fix(plugins): explain source-only package diagnostics (#77835)

Description (problem / solution / changelog)

Summary

Fixes #77835.

Source-only TypeScript package diagnostics currently say an installed plugin package requires compiled runtime output, but they do not tell operators what action is available. For packages such as @tencent-weixin/[email protected], the missing compiled JS is a publisher packaging issue rather than a local config problem.

This PR makes that diagnostic actionable by telling users to update/reinstall after the publisher ships compiled JavaScript, or disable/uninstall the plugin until then. It also documents the same recovery path in the general plugin docs and WeChat troubleshooting page.

Changes

  • src/plugins/package-entry-resolution.ts: extend the missing compiled runtime output diagnostic with user action and scope.
  • src/plugins/discovery.test.ts: assert startup/discovery warnings include the actionable guidance.
  • src/plugins/install.test.ts: assert install-time rejection includes the same guidance.
  • src/cli/plugins-install-config.test.ts: keep official reinstall recovery tolerant of the new longer diagnostic.
  • docs/tools/plugin.md and docs/channels/wechat.md: document the publisher-package fix path.

Scout audit

  • Audit A (existing helper): reused existing missingCompiledRuntimeEntryMessage; no new classifier/predicate added.
  • Audit B (shared callers): one shared diagnostic helper, contract preserved; message text becomes more actionable without changing severity or control flow.
  • Audit C (broader rival): no fresh open PR found for #77835 or the exact source-only compiled-output diagnostic.

Real behavior proof

  • Behavior or issue addressed: Operators who hit a source-only TypeScript managed plugin package now receive an actionable diagnostic explaining the missing compiled output is a plugin packaging issue and giving update/reinstall or disable/uninstall recovery steps.
  • Real environment tested: Local OpenClaw checkout on branch fix/77835-plugin-source-only-actionable-diagnostic, based on origin/main 0c977cd687; repository plugin discovery/install and CLI install-config test shards.
  • Exact steps or command run after this patch:
    • pnpm test src/plugins/discovery.test.ts src/plugins/install.test.ts src/cli/plugins-install-config.test.ts src/cli/plugins-cli.install.test.ts
    • pnpm exec oxlint CHANGELOG.md src/plugins/package-entry-resolution.ts src/plugins/discovery.test.ts src/plugins/install.test.ts src/cli/plugins-install-config.test.ts src/cli/plugins-cli.install.test.ts
    • pnpm exec oxfmt --check --threads=1 src/plugins/package-entry-resolution.ts src/plugins/discovery.test.ts src/plugins/install.test.ts src/cli/plugins-install-config.test.ts src/cli/plugins-cli.install.test.ts docs/tools/plugin.md docs/channels/wechat.md CHANGELOG.md
    • pnpm check:changed
  • Evidence after fix: Terminal output from after-patch runs:
Test Files  2 passed (2)
Tests  89 passed (89)
Test Files  2 passed (2)
Tests  150 passed (150)
[test] passed 2 Vitest shards in 9.84s

Found 0 warnings and 0 errors.
All matched files use the correct format.
pnpm check:changed exited 0.
  • Observed result after fix: Discovery/install diagnostics now include plugin packaging issue and disable/uninstall the plugin; all focused plugin/CLI tests and changed-file guardrails passed.
  • What was not tested: Did not install the broken @tencent-weixin/[email protected] package in a live Gateway; verification used repository package discovery/install coverage and docs checks.

Additional real behavior proof after maintainer-bot review

After the initial review requested real plugin output, I reproduced the source-only package shape against this branch with actual plugin install and discovery code paths:

node --import tsx --input-type=module <<'NODE'
# creates a temp plugin package with openclaw.extensions=["./src/index.ts"]
# and no compiled JS, then runs installPluginFromDir() and discoverOpenClawPlugins()
NODE

Observed after-fix output:

scenario=install-source-only-package
install.ok=false
install.error=package install requires compiled runtime output for TypeScript entry ./src/index.ts: expected ./dist/index.js, ./dist/index.mjs, ./dist/index.cjs, ./src/index.js, ./src/index.mjs, ./src/index.cjs. This is a plugin packaging issue, not a local config problem; update or reinstall the plugin after the publisher ships compiled JavaScript, or disable/uninstall the plugin until then. TypeScript source fallback is only supported for source checkouts and local development paths.
scenario=discover-managed-source-only-package
candidates=<none>
warn:source-only-pack:installed plugin package requires compiled runtime output for TypeScript entry src/index.ts: expected ./dist/index.js, ./dist/index.mjs, ./dist/index.cjs, src/index.js, src/index.mjs, src/index.cjs. This is a plugin packaging issue, not a local config problem; update or reinstall the plugin after the publisher ships compiled JavaScript, or disable/uninstall the plugin until then. TypeScript source fallback is only supported for source checkouts and local development paths.

Changed files

  • CHANGELOG.md (modified, +1/-0)
  • docs/channels/wechat.md (modified, +5/-0)
  • docs/tools/plugin.md (modified, +6/-0)
  • src/cli/plugins-install-config.test.ts (modified, +1/-1)
  • src/plugins/discovery.test.ts (modified, +3/-1)
  • src/plugins/install.test.ts (modified, +2/-0)
  • src/plugins/package-entry-resolution.ts (modified, +1/-1)

Code Example

plugins: plugin: installed plugin package requires compiled runtime output for TypeScript entry index.ts: expected ./dist/index.js, ./dist/index.mjs, ./dist/index.cjs, index.js, index.mjs, index.cjs
RAW_BUFFERClick to expand / collapse

Description

After upgrading to OpenClaw 2026.5.3-1, a new config warning appears on every gateway restart:

plugins: plugin: installed plugin package requires compiled runtime output for TypeScript entry index.ts: expected ./dist/index.js, ./dist/index.mjs, ./dist/index.cjs, index.js, index.mjs, index.cjs

Root Cause

The installed plugin @tencent-weixin/[email protected] declares its entry point as ./index.ts in openclaw.plugin.json, but the published npm package contains no compiled output (dist/ directory does not exist) and no tsconfig.json. As a result, the plugin cannot be built locally either.

The package's package.json has a build script (tsc) and prepublishOnly that should run it, but the compiled output was not included in the published package.

Impact

  • Warning appears on every gateway restart
  • No actionable fix path for end users — the plugin cannot be built locally due to missing tsconfig.json
  • The plugin's source repository is not publicly available (no repository field in package.json)

Suggested Improvements

  1. When OpenClaw detects a TypeScript plugin entry with no compiled output, provide a clear error message explaining the issue is with the plugin publisher, not the user's configuration
  2. Consider validating compiled output exists during plugin installation (openclaw plugins install) rather than at gateway startup
  3. Document the requirement for plugin authors to include compiled output in published packages

Environment

  • OpenClaw: 2026.5.3-1 (2eae30e)
  • OS: macOS 26.4.1 (arm64)
  • Node: 24.15.0
  • Plugin: @tencent-weixin/[email protected]
  • Install method: npm global

extent analysis

TL;DR

The issue can be mitigated by contacting the plugin author to include compiled output in the published package or by forking the plugin repository to build and publish a corrected version.

Guidance

  • Verify the @tencent-weixin/openclaw-weixin plugin package for any updates that may include compiled output.
  • Consider reaching out to the plugin author to request they include compiled output in future releases.
  • If the plugin's source repository becomes available, fork it to build and publish a corrected version with compiled output.
  • OpenClaw could improve error messaging to clearly indicate the issue lies with the plugin publisher, not the user's configuration.

Example

No code snippet is provided as the issue is related to the plugin's packaging and distribution.

Notes

The solution relies on the plugin author correcting the issue or the user having access to the plugin's source repository to build and publish a corrected version.

Recommendation

Apply workaround: Contact the plugin author or fork the repository (if available) to build and publish a corrected version, as upgrading to a fixed version is not currently possible due to the nature of the issue.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

openclaw - ✅(Solved) Fix [Bug]: Third-party TypeScript plugin missing compiled output causes startup warning with no fix path [1 pull requests, 1 comments, 2 participants]