Peter Steinberger
ddd0b48673
refactor: remove 3,527 lines of runtime and test duplication ( #115626 )
...
* refactor: remove obsolete runtime and test duplication
* test: preserve typed cron and realtime fixtures
2026-07-29 02:21:20 -04:00
Jason (Json)
78720fbaef
fix(plugins): load replacement npm plugin after reinstall ( #114713 )
...
* fix(plugins): reconcile managed npm load paths
* fix(plugins): preserve replacement load path order
2026-07-27 19:48:45 -06:00
Peter Steinberger
8ad5139d7c
refactor(tests): consolidate plugin update fixtures and version cases ( #114344 )
2026-07-27 02:15:49 -04:00
Peter Steinberger
418b79f31a
test(plugins): consolidate update fixtures ( #113243 )
2026-07-24 00:42:55 -07:00
Gio Della-Libera
ba467fbd3e
Install ClawHub packages for new Claw agents ( #102228 )
...
* Install ClawHub packages for new Claw agents
* test(claws): cover skill and plugin installation
* docs(claws): document package artifacts
* fix(claws): bind package trust preflight
* fix(claws): bind package capability consent
* fix(claws): satisfy package type guards
* test(claws): update package installer fixtures
* test(claws): complete package plan fixtures
* test(claws): model complete ClawHub results
* fix(claws): serialize plugin ownership changes
* fix(claws): cover legacy plugin lifecycle updates
* fix(claws): preserve legacy ClawHub update selectors
* test(claws): type lifecycle lease mock
* refactor(claws): isolate plugin update lifecycle
* fix(claws): declare managed installer coordination
* test(claws): preserve partial collision result
* test(claws): clean installer temp dirs
---------
Co-authored-by: Patrick Erichsen <patrick.a.erichsen@gmail.com >
2026-07-21 18:55:10 -07:00
Jason (Json)
b8b9825083
fix(plugins): report newer registry releases for exact-pinned npm installs ( #111169 )
...
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-07-19 00:16:54 -06:00
Peter Steinberger
a2eb27c03a
refactor(plugins): split update lifecycle ( #108877 )
...
* refactor(plugins): split update lifecycle
* fix(plugins): break update type cycle
* fix(plugins): keep update modules below line budget
* fix(plugins): preserve update export surface
2026-07-16 07:54:21 -07:00
Peter Steinberger
2c977bebce
fix(plugins): preserve trust policy after update failures ( #108649 )
2026-07-16 00:56:06 -07:00
Peter Steinberger
7a398fe6f8
fix(update): preserve plugin policy on failures ( #108661 )
2026-07-16 00:38:44 -07:00
Peter Steinberger
6ec5a2e5aa
refactor(plugins): defer installed payload validation ( #108051 )
2026-07-14 23:14:06 -07:00
mushuiyu886
646dfd7e76
fix(plugins): preserve state on npm metadata failures ( #107063 )
...
* fix(plugins): preserve state on npm metadata failures
* fix(plugins): harden npm metadata recovery
Co-authored-by: 杨浩宇0668001029 <yang.haoyu@xydigit.com >
* refactor(plugins): adapt metadata errors to installer split
Co-authored-by: 杨浩宇0668001029 <yang.haoyu@xydigit.com >
* fix(plugins): validate preserved npm payloads
Co-authored-by: 杨浩宇0668001029 <yang.haoyu@xydigit.com >
* fix(plugins): satisfy update lint
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-14 22:05:15 -07:00
Peter Steinberger
f81f9d8570
chore: enforce max-lines suppression ratchet ( #107315 )
...
* ci: enforce max-lines suppression ratchet
* chore: prune stale max-lines suppression
* fix: close max-lines ratchet enforcement gaps
* fix: harden max-lines ratchet checks
* fix(ci): satisfy max-lines ratchet checks
* style: format max-lines declarations
* fix(ci): match oxlint suppression grammar
* test: isolate max-lines git fixtures
* chore: prune resolved max-lines debt
* test: skip newline path fixture on Windows
* fix: harden max-lines suppression ratchet
* chore: refresh max-lines baseline
* fix: close max-lines ratchet bypasses
* fix: derive ratchet base from PR merge tree
* fix: support older Git in staged ratchet
* fix: align max-lines declarations and baseline
* chore: refresh max-lines baseline for current main
* fix: exclude generated wizard locales from max-lines
* chore: prune resolved max-lines debt
2026-07-14 09:27:02 -07:00
Peter Steinberger
98e3f729bc
refactor: remove dead plugin loader exports ( #105937 )
...
* refactor(plugins): trim activation and contract exports
* test(plugins): restore fixture cleanup
* refactor(plugins): trim install and loader exports
* test(plugins): fully reset loader caches
* refactor(plugins): trim metadata and catalog exports
* test(plugins): preserve catalog trust coverage
* refactor(plugins): trim provider and plugin exports
* refactor(plugins): trim runtime and tool exports
* test(plugins): update dead-export consumers
* test(plugins): remove empty dead-export suites
* refactor(plugins): align exports with split registry
* refactor(plugins): trim drifted loader exports
* style(plugins): format test fixtures
* refactor(scripts): use supported plugin APIs
* refactor(plugins): finish dead export cleanup
* chore(deadcode): refresh export baseline
* test(cli): mock production memory state
* chore(deadcode): sync latest export baseline
* fix(tests): keep plugin fixtures inside core
* chore(deadcode): refresh rebased export baseline
* chore(deadcode): sync current ratchets
* fix(plugins): retain reserved slot invariant
* fix(plugins): preserve dead-export invariants
* test(plugins): use neutral catalog query fixture
* test(plugins): satisfy catalog lint
* test(plugins): preserve integrity drift coverage
* fix(ci): register skill experience live proof
2026-07-13 01:29:33 -07:00
Peter Steinberger
1b313dc4d4
chore(tooling): enforce indexed access in core tests ( #105375 )
...
* test(tooling): enforce indexed access in core tests
* test(tui): constrain theme environment overrides
* test(doctor): enforce indexed access in migration fixtures
2026-07-12 14:29:52 +01:00
Peter Steinberger
a99ecff78a
fix(plugins): enforce own install record lookups ( #102872 )
...
* fix(plugins): enforce own install record lookups
Co-authored-by: Alix-007 <li.long15@xydigit.com >
* test(plugins): use valid prototype-key package fixtures
---------
Co-authored-by: Alix-007 <li.long15@xydigit.com >
2026-07-09 15:54:21 +01:00
Kevin Lin
9d2d517296
feat: publish plugins with extended-stable releases ( #100448 )
...
* feat(release): publish plugins on extended-stable
* feat(plugins): align extended-stable with core
* docs: explain extended-stable plugin alignment
* fix(release): make plugin convergence recoverable
* fix(plugins): preserve extended-stable fallback intent
* fix(release): keep plugin tag mutation credential-isolated
2026-07-05 16:16:26 -07:00
Yung-Chen Tang
f3bcee8b2e
fix: clarify pinned plugin dry-run updates ( #97282 )
...
* fix: clarify pinned plugin dry-run updates
* fix(plugins): normalize pinned npm dry-run versions
2026-06-28 12:18:31 -07:00
Jesse Merhi
ec737ee74d
fix: rebase clawhub install trust ( #81364 )
2026-06-26 18:33:19 +10:00
brokemac79
dd0e4f6e61
fix: avoid plugin update range fallback after metadata failure ( #96143 )
...
Co-authored-by: Dallin Romney <dallinromney@gmail.com >
2026-06-25 17:15:50 -07:00
Radek Sienkiewicz
0247eab773
fix(cli): sync official plugins during update all ( #96831 )
...
Co-authored-by: ooiuuii <169449607+ooiuuii@users.noreply.github.com >
2026-06-25 20:13:37 +02:00
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