diff --git a/docs/.internal/extension-host-migration/openclaw-capability-catalog-and-arbitration-spec.md b/docs/.internal/extension-host-migration/openclaw-capability-catalog-and-arbitration-spec.md index b95a5a2b0d4..4881e229a81 100644 --- a/docs/.internal/extension-host-migration/openclaw-capability-catalog-and-arbitration-spec.md +++ b/docs/.internal/extension-host-migration/openclaw-capability-catalog-and-arbitration-spec.md @@ -50,6 +50,7 @@ What has been implemented: - loader top-level load orchestration now routes through `src/extension-host/loader-orchestrator.ts` - loader discovery and manifest bootstrap now routes through `src/extension-host/loader-bootstrap.ts` - loader mutable activation state now routes through `src/extension-host/loader-session.ts` +- loader session run and finalization composition now routes through `src/extension-host/loader-run.ts` - loader activation policy outcomes now route through `src/extension-host/loader-activation-policy.ts` - loader record-state transitions now route through `src/extension-host/loader-state.ts`, which now enforces an explicit loader lifecycle state machine while preserving compatibility `PluginRecord.status` values - loader finalization policy results now route through `src/extension-host/loader-finalization-policy.ts` @@ -66,6 +67,7 @@ How it has been implemented: - by beginning loader-path migration with host-owned compatibility, candidate-planning, import-flow, policy, runtime, register-flow, candidate-orchestration, top-level load orchestration, record-state with compatibility lifecycle mapping, and finalization helpers before attempting canonical catalog publication - by extracting lazy runtime proxy creation and alias-wired Jiti module-loader creation into host-owned helpers before catalog publication work - by extracting discovery, manifest loading, manifest diagnostics, discovery-policy logging, provenance building, and candidate ordering into a host-owned loader-bootstrap helper before catalog publication work +- by extracting candidate iteration, manifest lookup, per-candidate session processing, and finalization handoff into a host-owned loader-run helper before catalog publication work - by converting the compatibility record-state layer into an enforced loader lifecycle state machine before catalog publication work - by moving mutable activation state into a host-owned loader session before catalog publication work - by extracting shared provenance path matching and install-rule evaluation into `src/extension-host/loader-provenance.ts` so activation and finalization policy seams reuse one host-owned implementation diff --git a/docs/.internal/extension-host-migration/openclaw-extension-contribution-schema-spec.md b/docs/.internal/extension-host-migration/openclaw-extension-contribution-schema-spec.md index af7d7bc6949..3e555e11467 100644 --- a/docs/.internal/extension-host-migration/openclaw-extension-contribution-schema-spec.md +++ b/docs/.internal/extension-host-migration/openclaw-extension-contribution-schema-spec.md @@ -54,6 +54,7 @@ What has been implemented: - loader top-level load orchestration now routes through `src/extension-host/loader-orchestrator.ts` - loader discovery and manifest bootstrap now routes through `src/extension-host/loader-bootstrap.ts` - loader mutable activation state now routes through `src/extension-host/loader-session.ts` +- loader session run and finalization composition now routes through `src/extension-host/loader-run.ts` - loader activation policy outcomes now route through `src/extension-host/loader-activation-policy.ts` - loader record-state transitions now route through `src/extension-host/loader-state.ts`, which now enforces an explicit loader lifecycle state machine while preserving compatibility `PluginRecord.status` values - loader finalization policy results now route through `src/extension-host/loader-finalization-policy.ts` @@ -70,6 +71,7 @@ How it has been implemented: - by making the first loader compatibility, candidate-planning, import-flow, runtime-decision, register-flow, candidate-orchestration, top-level load orchestration, record-state with compatibility lifecycle mapping, and finalization helpers explicit host-owned seams before introducing a versioned compatibility layer - by extracting lazy runtime proxy creation and alias-wired Jiti module-loader creation into host-owned helpers before broader schema-driven lifecycle ownership changes - by extracting discovery, manifest loading, manifest diagnostics, discovery-policy logging, provenance building, and candidate ordering into a host-owned loader-bootstrap helper before broader schema-driven lifecycle ownership changes +- by extracting candidate iteration, manifest lookup, per-candidate session processing, and finalization handoff into a host-owned loader-run helper before broader schema-driven lifecycle ownership changes - by turning the compatibility record-state layer into an enforced loader lifecycle state machine before broadening the schema-driven host lifecycle model - by moving mutable activation state into a host-owned loader session before broadening the schema-driven host lifecycle model - by extracting shared provenance path matching and install-rule evaluation into `src/extension-host/loader-provenance.ts` so activation and finalization policy seams reuse one host-owned implementation diff --git a/docs/.internal/extension-host-migration/openclaw-extension-host-implementation-guide.md b/docs/.internal/extension-host-migration/openclaw-extension-host-implementation-guide.md index 1c0cec1cde2..ed779637e3b 100644 --- a/docs/.internal/extension-host-migration/openclaw-extension-host-implementation-guide.md +++ b/docs/.internal/extension-host-migration/openclaw-extension-host-implementation-guide.md @@ -75,6 +75,7 @@ What has been implemented so far: - loader top-level load orchestration now routes through `src/extension-host/loader-orchestrator.ts` - loader discovery and manifest bootstrap now routes through `src/extension-host/loader-bootstrap.ts` - loader mutable activation state now routes through `src/extension-host/loader-session.ts` +- loader session run and finalization composition now routes through `src/extension-host/loader-run.ts` - loader activation policy outcomes now route through `src/extension-host/loader-activation-policy.ts` - loader record-state transitions now route through `src/extension-host/loader-state.ts`, which now enforces an explicit loader lifecycle state machine while preserving compatibility `PluginRecord.status` values - loader finalization policy results now route through `src/extension-host/loader-finalization-policy.ts` @@ -103,6 +104,7 @@ How it has been done: - by moving cache-key construction, cache reads, cache writes, and cache clearing behind host-owned helpers before changing activation-state ownership - by extracting lazy runtime proxy creation and alias-wired Jiti module-loader creation into host-owned helpers before broader bootstrap or lifecycle ownership changes - by extracting discovery, manifest loading, manifest diagnostics, discovery-policy logging, provenance building, and candidate ordering into a host-owned loader-bootstrap helper before broader lifecycle ownership changes +- by extracting candidate iteration, manifest lookup, per-candidate session processing, and finalization handoff into a host-owned loader-run helper before broader lifecycle ownership changes - by moving loader-owned policy helpers next, while keeping module loading and enablement flow behavior unchanged - by moving initial candidate planning and record construction behind host-owned helpers before changing import and registration flow - by moving entry-path opening and module import behind host-owned helpers before changing cache wiring or lifecycle orchestration @@ -142,6 +144,7 @@ Committed implementation slices so far: - `83b18eab72` `Plugins: share loader provenance helpers` - `52495d23d5` `Plugins: extract loader runtime factories` - `6e187ffb62` `Plugins: extract loader bootstrap` +- `234a540720` `Plugins: extract loader session runner` - `89414ed857` `Docs: track extension host migration internally` - `d8af1eceaf` `Docs: refresh extension host migration status` diff --git a/docs/.internal/extension-host-migration/openclaw-extension-host-lifecycle-and-security-spec.md b/docs/.internal/extension-host-migration/openclaw-extension-host-lifecycle-and-security-spec.md index 5fdd3630696..1ea4e32595e 100644 --- a/docs/.internal/extension-host-migration/openclaw-extension-host-lifecycle-and-security-spec.md +++ b/docs/.internal/extension-host-migration/openclaw-extension-host-lifecycle-and-security-spec.md @@ -52,6 +52,7 @@ What has been implemented: - loader top-level load orchestration now routes through `src/extension-host/loader-orchestrator.ts` - loader discovery and manifest bootstrap now routes through `src/extension-host/loader-bootstrap.ts` - loader mutable activation state now routes through `src/extension-host/loader-session.ts` +- loader session run and finalization composition now routes through `src/extension-host/loader-run.ts` - loader activation policy outcomes now route through `src/extension-host/loader-activation-policy.ts` - loader record-state transitions now route through `src/extension-host/loader-state.ts`, which now enforces an explicit loader lifecycle state machine while preserving compatibility `PluginRecord.status` values - loader finalization policy results now route through `src/extension-host/loader-finalization-policy.ts` @@ -71,6 +72,7 @@ How it has been implemented: - by moving provenance and duplicate-order policy next, so lifecycle migration can land on host-owned policy helpers instead of loader-local utilities - by extracting lazy runtime proxy creation and alias-wired Jiti module-loader creation into host-owned helpers before broader bootstrap or lifecycle ownership changes - by extracting discovery, manifest loading, manifest diagnostics, discovery-policy logging, provenance building, and candidate ordering into a host-owned loader-bootstrap helper before broader lifecycle ownership changes +- by extracting candidate iteration, manifest lookup, per-candidate session processing, and finalization handoff into a host-owned loader-run helper before broader lifecycle ownership changes - by moving initial candidate planning and record construction next while leaving module import and registration flow unchanged - by moving entry-path opening and module import next while leaving cache wiring and lifecycle orchestration unchanged - by moving loader runtime decisions next while preserving the current lazy-load, config-validation, and memory-slot behavior diff --git a/docs/.internal/extension-host-migration/openclaw-kernel-event-pipeline-spec.md b/docs/.internal/extension-host-migration/openclaw-kernel-event-pipeline-spec.md index 13ebd528d2d..c2c9aef9122 100644 --- a/docs/.internal/extension-host-migration/openclaw-kernel-event-pipeline-spec.md +++ b/docs/.internal/extension-host-migration/openclaw-kernel-event-pipeline-spec.md @@ -50,6 +50,7 @@ Relevant prerequisite work that has landed: - loader discovery and manifest bootstrap now has a host-owned helper boundary - loader discovery policy outcomes now have a host-owned helper boundary - loader mutable activation state now has a host-owned helper boundary +- loader session run and finalization composition now has a host-owned helper boundary - loader activation policy outcomes now have a host-owned helper boundary - loader record-state transitions now have a host-owned helper boundary and enforced loader lifecycle state machine, while still preserving compatibility `PluginRecord.status` values - loader finalization policy outcomes now have a host-owned helper boundary diff --git a/docs/.internal/extension-host-migration/openclaw-kernel-extension-host-transition-plan.md b/docs/.internal/extension-host-migration/openclaw-kernel-extension-host-transition-plan.md index e31751fc042..139dfa01ccf 100644 --- a/docs/.internal/extension-host-migration/openclaw-kernel-extension-host-transition-plan.md +++ b/docs/.internal/extension-host-migration/openclaw-kernel-extension-host-transition-plan.md @@ -60,6 +60,7 @@ What has landed: - loader top-level load orchestration now routes through `src/extension-host/loader-orchestrator.ts` - loader discovery and manifest bootstrap now routes through `src/extension-host/loader-bootstrap.ts` - loader mutable activation state now routes through `src/extension-host/loader-session.ts` +- loader session run and finalization composition now routes through `src/extension-host/loader-run.ts` - loader activation policy outcomes now route through `src/extension-host/loader-activation-policy.ts` - loader record-state transitions now route through `src/extension-host/loader-state.ts`, which now enforces an explicit loader lifecycle state machine while preserving compatibility `PluginRecord.status` values - loader finalization policy results now route through `src/extension-host/loader-finalization-policy.ts` @@ -89,6 +90,7 @@ How it was done: - by moving cache-key construction, cache reads, cache writes, and cache clearing behind host-owned helpers before changing activation-state ownership - by extracting lazy runtime proxy creation and alias-wired Jiti module-loader creation into host-owned helpers before broader bootstrap or lifecycle ownership changes - by extracting discovery, manifest loading, manifest diagnostics, discovery-policy logging, provenance building, and candidate ordering into a host-owned loader-bootstrap helper before broader lifecycle ownership changes +- by extracting candidate iteration, manifest lookup, per-candidate session processing, and finalization handoff into a host-owned loader-run helper before broader lifecycle ownership changes - by moving the next loader-owned policy helpers behind host-owned modules while preserving the current load/skip/error behavior - by moving initial candidate planning and record construction behind host-owned helpers before changing import and registration flow - by moving entry-path opening and module import behind host-owned helpers before changing cache wiring or lifecycle orchestration @@ -127,6 +129,7 @@ Committed implementation slices so far: - `83b18eab72` `Plugins: share loader provenance helpers` - `52495d23d5` `Plugins: extract loader runtime factories` - `6e187ffb62` `Plugins: extract loader bootstrap` +- `234a540720` `Plugins: extract loader session runner` - `89414ed857` `Docs: track extension host migration internally` - `d8af1eceaf` `Docs: refresh extension host migration status`