← Back to PRs

#9196: Fix: Use local plugins for unpublished npm packages

by vishaltandale00 open 2026-02-05 00:34 View on GitHub →
channel: googlechat channel: line channel: mattermost channel: tlon commands stale
Fixes #9189 This PR fixes the issue where users encounter 404 errors when trying to install Google Chat and other channel plugins during setup. ## Problem Four channel plugins were configured to download from npm (defaultChoice: npm), but were never published to the npm registry: - @openclaw/googlechat - @openclaw/mattermost - @openclaw/line - @openclaw/tlon Users selecting these channels during setup would see: ``` npm error 404 Not Found - GET https://registry.npmjs.org/@openclaw%2fgooglechat ``` ## Solution Changed defaultChoice from npm to local for all four plugins. This makes the setup wizard use the bundled versions from extensions/*/ instead of attempting npm downloads. ## Testing - ✅ Verified each package does NOT exist on npm - ✅ Confirmed bundled versions exist in extensions/ - ✅ Changes are minimal (4 lines total) - ✅ No breaking changes ## Impact Users can now successfully install these channel plugins during initial setup. <!-- greptile_comment --> <h2>Greptile Overview</h2> <h3>Greptile Summary</h3> This PR changes the onboarding install preference for four bundled channel plugins (`googlechat`, `mattermost`, `line`, `tlon`) by switching their `openclaw.install.defaultChoice` from `"npm"` to `"local"` in `extensions/*/package.json`. The intent is to prevent the setup wizard from attempting `npm` downloads for packages that aren’t published to the npm registry, and instead use the bundled copies under `extensions/`. The change plugs into the existing channel plugin catalog and onboarding installer flow, where `defaultChoice` influences the initial selection when prompting users to install a plugin (unless overridden by `update.channel`). <h3>Confidence Score: 3/5</h3> - This PR is likely safe, but may not fully fix the reported onboarding 404s in stable/beta configurations. - Changes are limited to four `package.json` fields and match the manifest type (`"npm"|"local"`). Main remaining concern is behavioral: onboarding forces npm when `update.channel` is `stable` or `beta`, which can still trigger 404s for unpublished packages regardless of `defaultChoice`. - src/commands/onboarding/plugin-install.ts (default choice override), plus the four edited extensions/*/package.json files <!-- greptile_other_comments_section --> <!-- /greptile_comment -->

Most Similar PRs