jacky
ecf72319ed
fix: use JSON5 parser for plugin manifest loading ( #57734 ) [AI-assisted] ( #59084 )
...
Merged via squash.
Prepared head SHA: 58a4d537fc
Co-authored-by: singleGanghood <179357632+singleGanghood@users.noreply.github.com >
Co-authored-by: hxy91819 <8814856+hxy91819@users.noreply.github.com >
Reviewed-by: @hxy91819
2026-04-02 22:02:04 +08:00
Vincent Koc
38d2faee20
!feat(plugins): add web fetch provider boundary ( #59465 )
...
* feat(plugins): add web fetch provider boundary
* feat(plugins): add web fetch provider modules
* refactor(web-fetch): remove remaining core firecrawl fetch config
* fix(web-fetch): address review follow-ups
* fix(web-fetch): harden provider runtime boundaries
* fix(web-fetch): restore firecrawl compare helper
* fix(web-fetch): restore env-based provider autodetect
* fix(web-fetch): tighten provider hardening
* fix(web-fetch): restore fetch autodetect and compat args
* chore(changelog): note firecrawl fetch config break
2026-04-02 20:25:19 +09:00
fuller-stack-dev
235908c30e
fix: support multi-kind plugins for dual slot ownership ( #57507 ) (thanks @fuller-stack-dev)
...
* feat(plugins): support multi-kind plugins for dual slot ownership
* fix: address review feedback on multi-kind plugin support
- Use sorted normalizeKinds() for kind-mismatch comparison in loader.ts
(fixes order-sensitive JSON.stringify for arrays)
- Derive slot-to-kind reverse mapping from SLOT_BY_KIND in slots.ts
(removes hardcoded ternary that would break for future slot types)
- Use shared hasKind() helper in config-state.ts instead of inline logic
* fix: don't disable dual-kind plugin that still owns another slot
When a new plugin takes over one slot, a dual-kind plugin that still
owns the other slot must not be disabled — otherwise context engine
resolution fails at runtime.
* fix: exempt dual-kind plugins from memory slot disablement
A plugin with kind: ["memory", "context-engine"] must stay enabled even
when it loses the memory slot, so its context engine role can still load.
* fix: address remaining review feedback
- Pass manifest kind (not hardcoded "memory") in early memory gating
- Extract kindsEqual() helper for DRY kind comparison in loader.ts
- Narrow slotKeyForPluginKind back to single PluginKind with JSDoc
- Reject empty array in parsePluginKind
- Add kindsEqual tests
* fix: use toSorted() instead of sort() per lint rules
* plugins: include default slot ownership in disable checks and gate dual-kind memory registration
2026-03-31 10:06:48 +05:30
Peter Steinberger
02d4c1f2c3
refactor: derive channel metadata from plugin manifests
2026-03-28 17:17:10 +00:00
Peter Steinberger
ef1784d264
refactor: move bundled plugin policy into manifests
2026-03-27 16:40:27 +00:00
Peter Steinberger
417b3dd5e0
refactor: move channel prefer-over metadata into manifests
2026-03-27 02:36:56 +00:00
Peter Steinberger
77d15841d7
refactor: move manifest legacy migration into doctor
2026-03-27 02:09:58 +00:00
Peter Steinberger
42be3fb059
refactor: collapse manifest contract mirrors
2026-03-27 02:01:59 +00:00
Peter Steinberger
40bd36e35d
refactor: move channel config metadata into plugin-owned manifests
2026-03-27 01:59:30 +00:00
Peter Steinberger
ba7804df50
refactor: derive bundled contracts from extension manifests
2026-03-27 01:45:52 +00:00
Peter Steinberger
ce9dff1458
refactor: clean plugin capability boundaries
2026-03-26 21:41:49 +00:00
Peter Steinberger
ab4de18982
fix: auto-load bundled plugin capabilities from config refs
2026-03-26 19:15:56 +00:00
Peter Steinberger
100d9a7a23
refactor: share boundary open and gateway test helpers
2026-03-23 00:37:05 +00:00
Vincent Koc
3ce5a8366a
fix(plugins): enforce minimum host versions for installable plugins ( #52094 )
...
* fix(plugins): enforce min host versions
* fix(plugins): tighten min host version validation
* chore(plugins): trim dead min host version code
* fix(plugins): handle malformed min host metadata
* fix(plugins): key manifest cache by host version
2026-03-22 09:12:08 -07:00
Vincent Koc
a3a5cad7d7
fix(onboarding): hide image-only auth providers
2026-03-21 07:42:42 -07:00
Peter Steinberger
a724bbce1a
feat: add bundled Chutes extension ( #49136 )
...
* refactor: generalize bundled provider discovery seams
* feat: land chutes extension via plugin-owned auth (#41416 ) (thanks @Veightor)
2026-03-17 09:35:21 -07:00
Gustavo Madeira Santana
96ed010a37
Gateway: gate deferred channel startup behind opt-in
2026-03-16 13:55:53 +00:00
Peter Steinberger
ae60094fb5
refactor(plugins): move onboarding auth metadata to manifests
2026-03-15 23:47:16 -07:00
Peter Steinberger
5c120cb36c
refactor: make setup the primary wizard surface
2026-03-15 22:01:04 -07:00
Peter Steinberger
8ab01c5c93
refactor(core): land plugin auth and startup cleanup
2026-03-15 20:12:37 -07:00
Peter Steinberger
fb991e6f31
perf(plugins): lazy-load setup surfaces
2026-03-15 18:46:54 -07:00
markfietje
49687d313c
fix(plugins): allow hardlinks for bundled plugins ( fixes #28175 , #28404 ) (openclaw#32119) thanks @markfietje
...
Verified:
- pnpm install --frozen-lockfile
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: markfietje <4325889+markfietje@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-03-02 16:10:31 -06:00
Peter Steinberger
c424836fbe
refactor: harden outbound, matrix bootstrap, and plugin entry resolution
2026-03-02 19:55:09 +00:00
Peter Steinberger
a97cec0018
refactor: harden remaining plugin manifest reads
2026-02-26 13:12:44 +01:00
Peter Steinberger
b8b43175c5
style: align formatting with oxfmt 0.33
2026-02-18 01:34:35 +00:00
Peter Steinberger
31f9be126c
style: run oxfmt and fix gate failures
2026-02-18 01:29:02 +00:00
cpojer
d0cb8c19b2
chore: wtf.
2026-02-17 13:36:48 +09:00
Sebastian
ed11e93cf2
chore(format)
2026-02-16 23:20:16 -05:00
cpojer
90ef2d6bdf
chore: Update formatting.
2026-02-17 09:18:40 +09:00
max
8d75a496bf
refactor: centralize isPlainObject, isRecord, isErrno, isLoopbackHost utilities ( #12926 )
2026-02-09 17:02:55 -08:00
cpojer
f06dd8df06
chore: Enable "experimentalSortImports" in Oxfmt and reformat all imorts.
2026-02-01 10:03:47 +09:00
cpojer
5ceff756e1
chore: Enable "curly" rule to avoid single-statement if confusion/errors.
2026-01-31 16:19:20 +09:00
Peter Steinberger
9a7160786a
refactor: rename to openclaw
2026-01-30 03:16:21 +01:00
Peter Steinberger
6d16a658e5
refactor: rename clawdbot to moltbot with legacy compat
2026-01-27 12:21:02 +00:00
Peter Steinberger
51a9053387
feat: add OpenProse plugin skills
2026-01-23 00:49:40 +00:00
Peter Steinberger
9a2bf57e1c
refactor: extend channel plugin boundary
2026-01-20 12:07:54 +00:00
Peter Steinberger
636a8e3181
fix: merge plugin manifest types
2026-01-20 11:22:28 +00:00
Peter Steinberger
660f87278c
refactor: plugin catalog + nextcloud policy
2026-01-20 11:22:27 +00:00
Shadow
2f6d5805de
fix: enforce plugin config schemas ( #1272 ) (thanks @thewilloftheshadow)
...
Co-authored-by: thewilloftheshadow <thewilloftheshadow@users.noreply.github.com >
2026-01-20 11:03:17 +00:00