59 lines
2.9 KiB
Markdown
59 lines
2.9 KiB
Markdown
---
|
|
id: plugin-lifecycle-management
|
|
title: Plugin Lifecycle Management
|
|
type: plugin-lifecycle
|
|
ownedPaths:
|
|
- electron/gateway/config-sync.ts
|
|
- electron/utils/openclaw-auth.ts
|
|
- electron/utils/channel-config.ts
|
|
- electron/utils/plugin-install.ts
|
|
- electron/gateway/skills-symlink-cleanup.ts
|
|
- electron/api/routes/skills.ts
|
|
- src/stores/skills.ts
|
|
- resources/skills/**
|
|
- tests/unit/openclaw-auth.test.ts
|
|
- tests/unit/channel-config.test.ts
|
|
- tests/unit/plugin-install.test.ts
|
|
- tests/unit/harness-specs.test.ts
|
|
- harness/src/cli.mjs
|
|
- harness/src/rules.mjs
|
|
- harness/src/specs.mjs
|
|
- harness/specs/scenarios/gateway-backend-communication.md
|
|
- harness/specs/scenarios/plugin-lifecycle-management.md
|
|
- harness/specs/rules/**
|
|
- harness/specs/tasks/**
|
|
requiredProfiles:
|
|
- fast
|
|
conditionalProfiles:
|
|
comms:
|
|
when:
|
|
- plugin activation changes Gateway startup or runtime message delivery
|
|
- channel/provider plugin ownership changes OpenClaw runtime config
|
|
e2e:
|
|
when:
|
|
- plugin status, install, recovery, or diagnostics behavior is visible in the UI
|
|
requiredRules:
|
|
- channel-plugin-migration-guards
|
|
- capability-owner-resolution
|
|
- active-config-guards
|
|
- packaged-runtime-pruning-guards
|
|
---
|
|
|
|
Plugin lifecycle management covers bundled and external plugins as one system with different source types. The core model has two layers:
|
|
|
|
- `PluginPackage`: a discoverable, installable, upgradable, and recoverable package with identity, version, source, manifest, install location, and validation state.
|
|
- `PluginCapability`: an integration surface declared by a package, such as a channel, provider, skill, or runtime extension.
|
|
|
|
Lifecycle stages:
|
|
|
|
- Declare: plugin manifests describe package identity, source expectations, compatibility, and provided capabilities.
|
|
- Discover: ClawX scans bundled and external sources and produces a factual inventory. Discovery does not choose active owners.
|
|
- Resolve: ClawX chooses canonical package/capability owners, applies migration rules, and marks conflicts before config activation.
|
|
- Materialize: ClawX installs, upgrades, copies, links, or verifies the physical package selected by resolution.
|
|
- Validate: ClawX verifies package manifests, dependencies, capability config, ownership uniqueness, and startup requirements.
|
|
- Activate: only resolved and validated capabilities enter final OpenClaw runtime config.
|
|
- Recover: failed upgrades, stale registrations, conflicts, and removed channels converge to a single diagnosable state with rollback or cleanup paths.
|
|
- Package: cleanup and pruning keep packaged artifacts small without deleting target runtime assets; macOS universal packages keep both x64 and arm64 native payloads.
|
|
|
|
First-stage priority is integration safety: single-owner capability resolution, active config guards, direct regression tests for migration cases, and explicit task specs for resolution, validation, and recovery work.
|