Skip to content

fix: repair source-only official plugin installs#82425

Merged
joshavant merged 2 commits into
mainfrom
fix/doctor-official-plugin-repair
May 16, 2026
Merged

fix: repair source-only official plugin installs#82425
joshavant merged 2 commits into
mainfrom
fix/doctor-official-plugin-repair

Conversation

@joshavant

@joshavant joshavant commented May 16, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Repairs configured official external plugin installs when the installed package only contains TypeScript source and no compiled runtime output.
  • Allows invalid-config reinstall recovery for externalized stock Brave and Slack installs.
  • Adds catalog metadata and regression coverage for Brave web search and Slack channel repair paths, including provenance and failure-preservation cases.

Verification

  • node scripts/run-vitest.mjs src/commands/doctor/shared/missing-configured-plugin-install.test.ts src/cli/plugins-install-config.test.ts src/cli/program/preaction.test.ts src/plugins/official-external-plugin-catalog.test.ts
  • Packaged local E2E with a real packed openclaw-2026.5.16.tgz installed into an isolated prefix, seeded source-only official Brave install, openclaw doctor --fix --non-interactive, post-repair openclaw config validate, and install-record assertions.
  • AWS Crabbox packaged E2E: run run_c1bef99ee105, lease cbx_b51c44bf1af6 (harbor-prawn), exit 0.
  • env CI=1 NODE_OPTIONS=--max-old-space-size=4096 OPENCLAW_TEST_PROJECTS_PARALLEL=6 OPENCLAW_VITEST_MAX_WORKERS=1 OPENCLAW_VITEST_NO_OUTPUT_TIMEOUT_MS=900000 pnpm check:changed

Behavior addressed: openclaw doctor --fix now replaces broken source-only official Brave/Slack installs from trusted official install metadata when the configured plugin/channel still needs that owner.
Real environment tested: AWS Crabbox Linux host using the rebased feature branch, with a freshly packed openclaw-2026.5.16.tgz installed into an isolated npm prefix and isolated HOME, OPENCLAW_HOME, OPENCLAW_STATE_DIR, and OPENCLAW_CONFIG_PATH.
Exact steps or command run after this patch: installed Node 22/pnpm on the AWS host, ran pnpm install --frozen-lockfile, packed the checkout, installed the packed CLI, seeded a tracked source-only brave package install with openclaw.extensions pointing at src/index.ts, ran openclaw doctor --fix --non-interactive, then ran openclaw config validate and inspected .openclaw/plugins/installs.json.
Evidence after fix: doctor output included the compiled-runtime diagnostic and Installed missing configured plugin "brave" from @openclaw/brave-plugin.; the repaired record is source: npm, spec: @openclaw/brave-plugin, resolvedName: @openclaw/brave-plugin, version 2026.5.12, with dist/index.js present.
Observed result after fix: the source-only install path was removed, the official npm package was installed, post-repair config validation passed, and the AWS Crabbox command exited 0.
What was not tested: live Brave Search API calls; this validates install/config/doctor recovery and plugin runtime payload repair, not provider credentialed search execution.

Fixes #82301

@github-actions github-actions Bot added the dependencies-changed PR changes dependency-related files label May 16, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Dependency Changes Detected

This PR changes dependency-related files. Maintainers should confirm these changes are intentional.

Changed files:

  • extensions/brave/package.json
  • extensions/slack/package.json

Maintainer follow-up:

  • Review whether the dependency changes are intentional.
  • Inspect resolved package deltas when lockfile or workspace dependency policy changes are present.
  • Run pnpm deps:changes:report -- --base-ref origin/main --markdown /tmp/dependency-changes.md --json /tmp/dependency-changes.json locally for detailed release-style evidence.

@openclaw-barnacle openclaw-barnacle Bot added channel: slack Channel integration: slack cli CLI command changes scripts Repository scripts commands Command implementations extensions: brave size: L maintainer Maintainer-authored PR labels May 16, 2026
@clawsweeper

clawsweeper Bot commented May 16, 2026

Copy link
Copy Markdown
Contributor

ClawSweeper status: review started.

I am starting a fresh review of this pull request: fix: repair source-only official plugin installs This is item 1/1 in the current shard. Shard 0/1.

This placeholder means the worker is alive and reading the current context. I will edit this same comment with the actual review when the claws are done clicking.

Crustacean status: shell secured, claws on keyboard, evidence pebbles being sorted.

@joshavant
joshavant merged commit 0240cc5 into main May 16, 2026
26 of 27 checks passed
@joshavant
joshavant deleted the fix/doctor-official-plugin-repair branch May 16, 2026 04:04
galiniliev pushed a commit to galiniliev/openclaw that referenced this pull request May 20, 2026
* fix: repair source-only official plugin installs

* docs: add changelog for official plugin repair
github-actions Bot pushed a commit to Desicool/openclaw that referenced this pull request May 24, 2026
* fix: repair source-only official plugin installs

* docs: add changelog for official plugin repair
galiniliev pushed a commit to galiniliev/openclaw that referenced this pull request May 25, 2026
* fix: repair source-only official plugin installs

* docs: add changelog for official plugin repair
qiaokuan1992 pushed a commit to qiaokuan1992/openclaw that referenced this pull request Jun 2, 2026
* fix: repair source-only official plugin installs

* docs: add changelog for official plugin repair
jameslcowan pushed a commit to jameslcowan/openclaw that referenced this pull request Jun 2, 2026
* fix: repair source-only official plugin installs

* docs: add changelog for official plugin repair
SYU8384 pushed a commit to SYU8384/openclaw that referenced this pull request Jun 3, 2026
* fix: repair source-only official plugin installs

* docs: add changelog for official plugin repair
sablehead pushed a commit to sablehead/openclaw that referenced this pull request Jun 10, 2026
* fix: repair source-only official plugin installs

* docs: add changelog for official plugin repair
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

channel: slack Channel integration: slack cli CLI command changes commands Command implementations dependencies-changed PR changes dependency-related files extensions: brave maintainer Maintainer-authored PR scripts Repository scripts size: L

Projects

None yet

1 participant