Commit Graph

79 Commits

Author SHA1 Message Date
Shakker
667e5bf67e test: isolate plugin update home env 2026-06-23 05:16:21 +01:00
Vincent Koc
767e8280ac fix(cli): harden official plugin recovery (#93325)
* fix(cli): harden official plugin recovery

* fix(config): preserve include write context

* fix(config): reject external include mutations

* fix(config): bind snapshots to config paths

* fix(config): preserve write ownership

* fix(cli): preflight plugin config mutations

* chore(plugin-sdk): refresh api baseline

* test(config): prove install env policy mutations

* fix(cli): preflight plugin updates

* fix(cli): preflight non-npm id migrations

* chore(plugin-sdk): refresh api baseline

* fix(cli): satisfy plugin recovery checks
2026-06-15 23:07:29 +08:00
Peter Steinberger
fffd72f36d docs: document plugin compatibility helpers 2026-06-04 04:38:31 -04:00
Brian
7b5f75eb98 Pin official npm plugin install records (#88585)
* fix(plugins): pin official npm install records

* fix(infra): tolerate equivalent plugin install migrations

* fix(plugins): preserve manual exact plugin pins

* fix(infra): remove stale migration imports

* chore: unblock ci guards

* fix: preserve official sync integrity checks

* fix: avoid prerelease integrity carryover

* fix: preserve manual official npm specs

* fix: preserve beta fallback integrity checks

* fix: preserve trusted prerelease fallback integrity

* fix: preserve prerelease-only integrity checks

* fix: pin unchanged official npm records

* fix: allow official compatible fallback updates

* fix: preserve fallback integrity after prerelease resolution

* fix: skip incompatible fallback integrity pins

* fix: preserve pin-only install provenance

* fix: check integrity when repairing missing official pins

---------

Co-authored-by: Lilac <lilac@Lilacs-iMac.local>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-06-03 17:58:09 -07:00
B.K.
c96a12d3c8 fix(update): surface plugin channel fallbacks (#81422)
* fix: surface plugin update channel fallbacks

* fix: clarify dry-run plugin fallback output

* fix: preserve failed plugin fallback metadata

* chore: mark compatibility aliases deprecated

* chore: fix channel runtime lint directive

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-06-03 16:00:40 -07:00
Mukunda Rao Katta
2d61521bd3 fix(update): pin post-core plugin compatibility to the downgraded core version (#87914) (#87952)
* fix(update): pin post-core plugin compatibility to the downgraded core version (#87914)

* fix(update): force plugin compatibility repair on rollback

* style(update): clarify downgrade compatibility note

* fix(plugins): resolve compatible prerelease plugin downgrades

* fix(plugins): honor host gates during npm downgrade repair

* fix(plugins): keep prerelease downgrade fallback on channel

---------

Co-authored-by: Gio Della-Libera <giodl73@gmail.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-06-02 07:13:26 -04:00
Peter Steinberger
23dac6c263 test: keep vitest cases under one second 2026-05-31 06:51:34 +01:00
Phil
00ca654c74 fix(plugins): persist resolved npm install specs
Preserve npm install selectors while recording resolved npm provenance for plugin and hook install/update records. Active `record.spec` stays the requested selector unless explicitly pinned, while resolved npm fields remain available for audit and diagnostics.

Adds focused coverage for hook-pack npm fallback provenance after the maintainer review found that path worth pinning down.

Co-authored-by: Phil <99397913+GitHoubi@users.noreply.github.com>
2026-05-29 09:42:46 +01:00
Peter Steinberger
9b692f0a5b test(plugins): expect openclaw npm metadata lookup 2026-05-29 02:29:07 +01:00
Peter Steinberger
3132969c68 fix: fall back from official ClawHub artifact blocks (#83566)
* fix: fall back from official ClawHub artifact blocks

* test: refresh codex prompt snapshots

* test: refresh code mode prompt snapshots

* test: refresh linux prompt snapshots
2026-05-18 13:00:05 +01:00
Peter Steinberger
2976517bc7 fix(plugins): gate onboarding ClawHub npm fallback 2026-05-18 07:21:42 +01:00
Peter Steinberger
00205cab08 fix(plugins): restrict ClawHub npm fallback scope 2026-05-18 07:21:42 +01:00
JARVIS-Glasses
5214f16e29 fix(update): clear stale plugin refs after failed updates 2026-05-14 00:25:52 +01:00
Jesse Merhi
6c92324c5f Revert "Check ClawHub trust before plugin installs (#81307)" (#81363)
This reverts commit 87eb450047.
2026-05-13 19:34:18 +10:00
Jesse Merhi
87eb450047 Check ClawHub trust before plugin installs (#81307)
Merged via squash.

Prepared head SHA: 273fd7c20e
Co-authored-by: jesse-merhi <79823012+jesse-merhi@users.noreply.github.com>
Co-authored-by: jesse-merhi <79823012+jesse-merhi@users.noreply.github.com>
Reviewed-by: @jesse-merhi
2026-05-13 16:31:52 +10:00
Alex Naidis
a290cd633f fix(doctor): repair managed plugin peer links
Repair managed npm plugin OpenClaw peer links across doctor, install, and update flows.

- relink `peerDependencies.openclaw` packages under managed npm roots during doctor repair
- make read-only doctor preview broken peer links with a `doctor --fix` hint
- reject target plugin installs when their own peer link cannot be repaired, without blocking unrelated installs for stale sibling packages
- preserve update warning behavior for unrepairable package-local `node_modules`

Verification:
- `pnpm test src/plugins/plugin-peer-link.test.ts src/plugins/install.test.ts src/plugins/install.npm-spec.test.ts src/plugins/update.test.ts src/commands/doctor-plugin-registry.test.ts src/commands/doctor/repair-sequencing.test.ts -- --reporter=verbose`
- `pnpm exec oxfmt --check --threads=1 ...`
- `git diff --check`
- Crabbox/Testbox `tbx_01krde1jx199rnpm2rv1rdcj76`: focused tests + `pnpm check:changed`, exit 0
- Real CLI proof in PR body: read-only `openclaw doctor` warning plus `openclaw doctor --fix` symlink repair

Thanks @TheCrazyLex.
2026-05-12 07:49:08 +01:00
Peter Steinberger
3dd2c1a8b8 test: guard plugin diagnostic assertions 2026-05-11 20:07:14 +01:00
Peter Steinberger
738f94b290 fix: clarify update warning states 2026-05-11 18:02:05 +01:00
Peter Steinberger
c9c9c3f7f1 fix: surface plugin beta fallback outcomes 2026-05-11 16:57:27 +01:00
Shakker
ccc6109853 test: assert plugin update warnings 2026-05-11 12:13:14 +01:00
Peter Steinberger
829fae4ef0 test: clear plugin update broad matchers 2026-05-10 04:38:23 +01:00
Peter Steinberger
183615145e test: tighten plugin update installer assertions 2026-05-10 04:36:20 +01:00
Peter Steinberger
5e332e1d58 test: tighten plugin update fallback assertions 2026-05-10 04:34:44 +01:00
Peter Steinberger
d428822d01 test: tighten plugin update outcome assertions 2026-05-10 04:33:23 +01:00
Peter Steinberger
e0142c6cd7 test: tighten plugin update npm assertions 2026-05-10 04:31:46 +01:00
Peter Steinberger
388af50ba1 fix: smooth beta update health checks 2026-05-10 00:20:38 +01:00
Shakker
00a96acb21 test: tighten plugin provider array assertions 2026-05-09 05:44:40 +01:00
Peter Steinberger
9fcb583faf test: require plugin update fixtures 2026-05-08 18:15:45 +01:00
pickaxe
d221d7b6a9 fix(plugins): isolate peer-link repair failures 2026-05-06 05:13:01 +01:00
pickaxe
4d248b887f test(plugins): remove unnecessary peer-link assertion 2026-05-06 05:13:01 +01:00
pickaxe
fb42c722f0 fix(plugins): repair peer links after npm updates 2026-05-06 05:13:01 +01:00
Vincent Koc
2014c2327b fix(plugins): sync official plugin installs during update (#78065)
* fix(plugins): sync official npm installs during update

* fix(plugins): sync official clawhub installs during update

* test(update): mock official plugin sync helpers

---------

Co-authored-by: Patrick Erichsen <patrick.a.erichsen@gmail.com>
2026-05-05 17:27:32 -07:00
pickaxe
2e8761c5c1 fix(plugins): repair missing openclaw peer links on update 2026-05-05 05:04:22 +01:00
Vincent Koc
7c0f5463a5 fix(update): isolate plugin sync failures
Disable and skip plugins that fail package-update plugin sync so broken plugin packages do not fail an otherwise successful OpenClaw update.
2026-05-04 14:06:44 -07:00
Peter Steinberger
4820b701a5 fix(plugins): fall back from invalid beta npm updates 2026-05-04 21:55:08 +01:00
Vincent Koc
5ca0aa1d15 fix(plugins): accept stable correction releases 2026-05-03 20:53:23 -07:00
Vincent Koc
616a4e9782 fix(plugins): restore preferred clawhub installs 2026-05-03 20:34:12 -07:00
Vincent Koc
ac00d7882a fix(plugins): clean resolved npm load paths 2026-05-03 19:51:09 -07:00
Vincent Koc
9799e412f8 fix(plugins): clean pinned externalized load paths 2026-05-03 17:27:18 -07:00
Vincent Koc
c42a349b42 fix(plugins): trust official externalized npm installs 2026-05-03 17:20:47 -07:00
Vincent Koc
f5927cbb43 fix(plugins): update trusted prerelease installs 2026-05-03 17:17:10 -07:00
Simone
c5b559d4ee fix(plugins): keep npm bridge updates scanned (#76765)
Keep externalized bundled npm bridge updates on the normal plugin security scanner path instead of granting source-linked official trust without artifact provenance.

Thanks @Lucenx9.
2026-05-03 17:50:31 +01:00
Vincent Koc
4545a0ed61 fix(plugins): keep launch specs production-ready 2026-05-03 03:08:32 -07:00
Vincent Koc
07e0342106 fix(update): trust catalog-matched npm updates 2026-05-03 03:04:25 -07:00
Vincent Koc
423b5d6981 fix(update): trust externalized npm bridges 2026-05-03 03:02:16 -07:00
Peter Steinberger
f969ae45a3 fix(plugins): follow beta channel for plugin updates 2026-05-02 20:19:03 +01:00
Vincent Koc
7fae11b3b1 fix(plugins): persist clawhub artifact metadata 2026-05-02 10:17:19 -07:00
Vincent Koc
0c6c1cac76 feat(plugins): prefer clawhub for bundled cutovers 2026-05-01 18:13:03 -07:00
Vincent Koc
0aa8022e88 refactor(plugins): rename clawhub storepack metadata to clawpack 2026-05-01 17:32:22 -07:00
Vincent Koc
20e8769d93 feat(plugins): persist clawhub storepack metadata 2026-05-01 17:05:47 -07:00