Commit Graph

34411 Commits

Author SHA1 Message Date
Peter Steinberger
b0244f613e fix(plugins): clean bundled runtime install stage 2026-04-24 03:27:04 +01:00
simonemacario
02a9dd0ddc fix(plugins): stage bundled-plugin runtime-dep install outside the plugin root
When a packaged bundled plugin's `pluginRoot` is used directly as the npm
execution cwd, `npm install <specs>` resolves the plugin's own
`package.json` as the project manifest and fails with
`EUNSUPPORTEDPROTOCOL: Unsupported URL Type "workspace:": workspace:*`
whenever that manifest declares a `workspace:` runtime dep (e.g.
`"@openclaw/plugin-sdk": "workspace:*"`). This takes out every plugin
with any runtime deps at gateway startup.

`ensureBundledPluginRuntimeDeps` already filters `workspace:` specs from
the CLI arguments, but npm's own resolver reads the cwd manifest
regardless, so the filter alone is not enough. The existing isolated
execution-root + `replaceNodeModulesDir` machinery handles this exact
problem for source-checkout + cache-hit installs. This change activates
the same staging path for the packaged case: when `installRoot ===
pluginRoot` and we are not in the source-checkout cache path, stage the
install inside `<pluginRoot>/.openclaw-install-stage` (which has a
minimal generated `package.json`) and move the produced `node_modules/`
back to the plugin root as before.

- Add regression test `stages plugin-root install when the plugin's own
  package.json declares workspace:* deps` covering the Docker scenario
  (mixed `workspace:*` + concrete runtime dep, e.g. anthropic-style
  `@openclaw/plugin-sdk` + `@anthropic-ai/sdk`).
- Update existing plugin-root-install expectations (`installs
  plugin-local runtime deps when one is missing`, `skips workspace-only
  runtime deps before npm install`, `installs deps that are only present
  in the package root`, `does not trust runtime deps that only resolve
  from the package root`, `does not treat sibling extension runtime deps
  as satisfying a plugin`) to assert the new `installExecutionRoot`.

Reported in #70844; same root cause as #70701, #70756, #70773, #70818,
#70839 which see the downstream "Cannot find package 'openclaw' from
plugin-runtime-deps" symptom because their
`resolveBundledRuntimeDependencyInstallRoot` resolves to an external
stage dir (clean manifest) so the install succeeds but the resulting
node_modules tree cannot satisfy the filtered-out workspace packages at
ESM import time.

## AI assistance

This PR was AI-assisted with Claude Code.

Testing degree: fully tested for the touched `bundled-runtime-deps`
install staging surface.

- `pnpm exec vitest run --config test/vitest/vitest.plugins.config.ts src/plugins/bundled-runtime-deps.test.ts` (31/31)
- `pnpm exec vitest run --config test/vitest/vitest.plugins.config.ts src/plugins/` (43/43 across 8 files)
- `pnpm exec tsgo --noEmit -p tsconfig.core.json`, `pnpm exec tsgo --noEmit -p tsconfig.core.test.json` (clean)
- `pnpm exec oxlint src/plugins/bundled-runtime-deps.ts src/plugins/bundled-runtime-deps.test.ts` (0 warnings, 0 errors)
- `node scripts/check-src-extension-import-boundary.mjs --json` and `node scripts/check-sdk-package-extension-import-boundary.mjs --json` (both `[]`)

I understand the code path changed here: packaged bundled plugins now
stage their runtime-dep install one directory below `pluginRoot` so npm
never reads the plugin's `workspace:*`-containing manifest during
install; after install completes, the produced `node_modules/` is moved
back to `pluginRoot` via the existing `replaceNodeModulesDir` helper.

Signed-off-by: Simone Macario <simone@sharly.ai>
2026-04-24 03:27:04 +01:00
Shakker
64ed439ad0 perf: avoid broad models list enumeration (#70883) (thanks @shakkernerd) 2026-04-24 03:25:26 +01:00
Shakker
c93f053f80 test: cover default models list registry narrowing 2026-04-24 03:25:26 +01:00
Shakker
a6a2516cd8 perf: narrow default models list registry loading 2026-04-24 03:25:26 +01:00
Peter Steinberger
f9b33b7d96 fix: disable bundled plugins during Parallels update 2026-04-24 03:23:14 +01:00
Peter Steinberger
a59d1bd46d perf: narrow slack test imports 2026-04-24 03:17:32 +01:00
Peter Steinberger
3aa3551491 test: cover OpenAI server compaction docs 2026-04-24 03:15:47 +01:00
Peter Steinberger
467f839198 docs(plugins): explain google meet audio install 2026-04-24 03:14:25 +01:00
Peter Steinberger
2af88fab6c docs: document local memory embedding provider 2026-04-24 03:11:22 +01:00
Matt Znoj Assist
e069d03945 fix(memory-core): declare local memoryEmbeddingProviders contract (#70873)
Fix standalone memory CLI resolution for the built-in local embedding provider by declaring the memory-core capability contract.\n\nFixes #70836.\nThanks @mattznojassist.
2026-04-24 03:09:49 +01:00
Peter Steinberger
272bd59e7a docs(plugins): clarify google meet quick start 2026-04-24 03:05:42 +01:00
Peter Steinberger
0c9659b70c feat(plugins): simplify google meet realtime defaults 2026-04-24 03:03:21 +01:00
Peter Steinberger
28299a94ba fix: escape Parallels config scrub script 2026-04-24 03:02:12 +01:00
Peter Steinberger
e41298f501 docs(plugins): expand google meet realtime consult docs 2026-04-24 02:56:25 +01:00
Peter Steinberger
e314190403 feat(plugins): give google meet realtime agent consult 2026-04-24 02:55:43 +01:00
Peter Steinberger
3361593442 perf: reduce feishu monitor import drag 2026-04-24 02:55:09 +01:00
Peter Steinberger
68e2d6f088 fix: use node for Parallels config scrub 2026-04-24 02:50:42 +01:00
Peter Steinberger
903308dbf2 fix: stabilize qa lab mock suite 2026-04-24 02:46:33 +01:00
Peter Steinberger
2779020cbe perf: lazy load browser test server 2026-04-24 02:45:25 +01:00
Peter Steinberger
86f69ba5a0 fix: preserve gateway image refs for text-only models 2026-04-24 02:40:10 +01:00
Peter Steinberger
92a42413df perf: lazy load discord inbound runtimes 2026-04-24 02:36:36 +01:00
Peter Steinberger
1a8a6f8fba feat(ui): steer queued chat messages 2026-04-24 02:35:40 +01:00
Shakker
7dc1aeebbf refactor: split models list row sources (#70867) (thanks @shakkernerd) 2026-04-24 02:34:36 +01:00
Shakker
a606838b4b refactor: plan models list registry loading 2026-04-24 02:34:36 +01:00
Shakker
0af56c8ba6 refactor: split models list row sources 2026-04-24 02:34:36 +01:00
Peter Steinberger
07cb18ca04 fix: scrub future plugin entries in Parallels update smoke 2026-04-24 02:33:21 +01:00
Peter Steinberger
794437a730 ci: keep full install smoke off merge pushes 2026-04-24 02:31:36 +01:00
Peter Steinberger
754acc4478 perf: reduce telegram test import drag 2026-04-24 02:28:38 +01:00
Peter Steinberger
d268c850e6 fix: honor explicit media image model routing 2026-04-24 02:21:30 +01:00
Vincent Koc
c0a7b6a510 fix(plugins): align provider auth metadata 2026-04-23 18:16:20 -07:00
Peter Steinberger
8129ac0f26 docs: add Google Meet changelog entry 2026-04-24 02:15:53 +01:00
Peter Steinberger
e63b16cf46 refactor: centralize realtime voice resolution 2026-04-24 02:15:53 +01:00
Peter Steinberger
09a79bf499 refactor: share realtime voice bridge sessions 2026-04-24 02:15:53 +01:00
Peter Steinberger
15a82d4536 refactor: share provider selection runtime helper 2026-04-24 02:15:53 +01:00
Peter Steinberger
051c543bcb fix: guard Google Meet API fetches 2026-04-24 02:15:53 +01:00
Peter Steinberger
59a8afe6fa feat: add Google Meet participant plugin 2026-04-24 02:15:53 +01:00
Peter Steinberger
e0072ef91a chore: bump version to 2026.4.24 2026-04-24 02:13:50 +01:00
Peter Steinberger
b2cface9d5 perf: consolidate browser test entrypoints 2026-04-24 02:08:38 +01:00
Peter Steinberger
27b8aa1ddf perf: consolidate extension test entrypoints 2026-04-24 02:03:00 +01:00
Shakker
c42ae0afd8 docs: update changelog for models list 2026-04-24 02:01:58 +01:00
Shakker
19f9b69586 fix: include configured provider rows in all models list 2026-04-24 02:01:58 +01:00
Shakker
d289e400d5 fix: keep model catalog reads read-only 2026-04-24 02:01:58 +01:00
Shakker
097a81fbe7 docs: document read-only models list 2026-04-24 02:01:58 +01:00
Shakker
dcc180f14f test: cover read-only models list 2026-04-24 02:01:58 +01:00
Shakker
c7af4dcb31 fix: make models list read-only 2026-04-24 02:01:58 +01:00
Peter Steinberger
93e95a2057 perf: speed up cli prepare tests 2026-04-24 01:55:02 +01:00
Peter Steinberger
b164bb3717 refactor: centralize realtime voice resolution 2026-04-24 01:50:43 +01:00
Peter Steinberger
57e139100b refactor: share realtime voice bridge sessions 2026-04-24 01:50:43 +01:00
Peter Steinberger
958afeb397 refactor: share provider selection runtime helper 2026-04-24 01:50:43 +01:00