mirror of https://github.com/openclaw/openclaw.git
* 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 |
||
|---|---|---|
| .. | ||
| bundled | ||
| bundled-dir.ts | ||
| config.ts | ||
| fire-and-forget.test.ts | ||
| fire-and-forget.ts | ||
| frontmatter.test.ts | ||
| frontmatter.ts | ||
| gmail-ops.ts | ||
| gmail-setup-utils.test.ts | ||
| gmail-setup-utils.ts | ||
| gmail-watcher-errors.ts | ||
| gmail-watcher-lifecycle.test.ts | ||
| gmail-watcher-lifecycle.ts | ||
| gmail-watcher.ts | ||
| gmail.test.ts | ||
| gmail.ts | ||
| hooks-install.test.ts | ||
| hooks-status.ts | ||
| hooks.ts | ||
| import-url.test.ts | ||
| import-url.ts | ||
| install.runtime.ts | ||
| install.test.ts | ||
| install.ts | ||
| installs.ts | ||
| internal-hooks.test.ts | ||
| internal-hooks.ts | ||
| llm-slug-generator.ts | ||
| loader.test.ts | ||
| loader.ts | ||
| message-hook-mappers.test.ts | ||
| message-hook-mappers.ts | ||
| message-hooks.test.ts | ||
| module-loader.test.ts | ||
| module-loader.ts | ||
| plugin-hooks.test.ts | ||
| plugin-hooks.ts | ||
| policy.test.ts | ||
| policy.ts | ||
| types.ts | ||
| update.ts | ||
| workspace.test.ts | ||
| workspace.ts | ||