Docs: refresh extension host migration status

This commit is contained in:
Gustavo Madeira Santana 2026-03-15 14:49:28 +00:00
parent 2777895047
commit 5fc9f4d33c
No known key found for this signature in database
6 changed files with 18 additions and 5 deletions

View File

@ -45,6 +45,7 @@ What has been implemented:
- loader per-candidate orchestration now routes through `src/extension-host/loader-flow.ts`
- loader top-level load orchestration now routes through `src/extension-host/loader-orchestrator.ts`
- loader mutable activation state now routes through `src/extension-host/loader-session.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 final cache, warning, and activation finalization now routes through `src/extension-host/loader-finalize.ts`
- channel, provider, gateway-method, tool, CLI, service, command, context-engine, and hook registration normalization now has a host-owned helper boundary for future catalog migration
@ -59,6 +60,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 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 moving duplicate precedence, config enablement, and early memory-slot gating into explicit host-owned activation-policy outcomes before catalog publication work
What remains pending:

View File

@ -49,6 +49,7 @@ What has been implemented:
- loader per-candidate orchestration now routes through `src/extension-host/loader-flow.ts`
- loader top-level load orchestration now routes through `src/extension-host/loader-orchestrator.ts`
- loader mutable activation state now routes through `src/extension-host/loader-session.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 final cache, warning, and activation finalization now routes through `src/extension-host/loader-finalize.ts`
@ -63,6 +64,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 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 moving duplicate precedence, config enablement, and early memory-slot gating into explicit host-owned activation-policy outcomes before broadening the schema-driven host lifecycle model
What remains pending:

View File

@ -70,6 +70,7 @@ What has been implemented so far:
- loader per-candidate orchestration now routes through `src/extension-host/loader-flow.ts`
- loader top-level load orchestration now routes through `src/extension-host/loader-orchestrator.ts`
- loader mutable activation state now routes through `src/extension-host/loader-session.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 final cache, warning, and activation finalization now routes through `src/extension-host/loader-finalize.ts`
- runtime registration normalization has started in `src/extension-host/runtime-registrations.ts` for channel, provider, HTTP-route, gateway-method, tool, CLI, service, command, context-engine, and hook registrations
@ -106,6 +107,7 @@ How it has been done:
- by turning that compatibility `lifecycleState` field into an enforced loader lifecycle state machine with readiness promotion during finalization
- by moving the remaining top-level loader orchestration into a host-owned module so `src/plugins/loader.ts` becomes a compatibility facade instead of the real owner
- by moving mutable activation state such as seen-id tracking, memory-slot selection, and finalization inputs into a host-owned loader session instead of leaving them in top-level loader variables
- by moving duplicate precedence, config enablement, and early memory-slot gating into explicit host-owned activation-policy outcomes instead of leaving them inline in the loader flow
- by moving central readers first, so later lifecycle and compatibility work can land on one boundary instead of many ad hoc call sites
- by adding focused tests for each extracted seam before widening the boundary further
@ -123,13 +125,14 @@ Committed implementation slices so far:
- `c8d82a8f19` `Plugins: extract loader orchestration`
- `d32f65eb5e` `Plugins: add loader lifecycle state machine`
- `da9aad0c0f` `Plugins: add loader activation session`
- `fc51ce2867` `Plugins: add loader activation policy`
- `89414ed857` `Docs: track extension host migration internally`
- `d8af1eceaf` `Docs: refresh extension host migration status`
What is still missing for these phases:
- keeping the cutover inventory current as more surfaces move
- broader lifecycle ownership beyond the loader state machine and session-owned activation state, remaining explicit policy gate ownership, and broad host-owned registries described for Phase 2
- broader lifecycle ownership beyond the loader state machine, session-owned activation state, and explicit activation-policy outcomes, remaining policy gate ownership, and broad host-owned registries described for Phase 2
- minimal SDK compatibility work beyond preserving current behavior indirectly through existing loading
- any pilot migration, event pipeline, canonical catalog, or arbitration implementation
@ -319,7 +322,7 @@ Current implementation status:
- the host owns the active registry state
- the host exposes a resolved-extension registry view for static consumers
- plugin skills, plugin auto-enable, and config validation indexing now consume host-owned resolved-extension data
- activation, loader cache control, loader policy, loader candidate planning, loader import flow, loader runtime decisions, loader post-import register flow, loader candidate orchestration, loader top-level load orchestration, loader session state, loader record-state helpers, and loader finalization now route through `src/extension-host/*`
- activation, loader cache control, loader policy, loader activation-policy outcomes, loader candidate planning, loader import flow, loader runtime decisions, loader post-import register flow, loader candidate orchestration, loader top-level load orchestration, loader session state, loader record-state helpers, and loader finalization now route through `src/extension-host/*`
- broader lifecycle state ownership beyond the loader state machine, activation states, policy evaluation, and broad host-owned registries are still not implemented
### Phase 3: Build compatibility bridges

View File

@ -47,6 +47,7 @@ What has been implemented:
- loader per-candidate orchestration now routes through `src/extension-host/loader-flow.ts`
- loader top-level load orchestration now routes through `src/extension-host/loader-orchestrator.ts`
- loader mutable activation state now routes through `src/extension-host/loader-session.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 final cache, warning, and activation finalization now routes through `src/extension-host/loader-finalize.ts`, including readiness promotion for successfully registered plugins
@ -73,10 +74,11 @@ How it has been implemented:
- by adding explicit compatibility `lifecycleState` mapping on loader-owned plugin records before enforcing the loader lifecycle state machine
- by promoting successfully registered plugins to `ready` during host-owned finalization while leaving broader activation-state semantics for later phases
- by moving mutable activation state such as seen-id tracking, memory-slot selection, and finalization inputs into a host-owned loader session before broader activation-state semantics move
- by moving duplicate precedence, config enablement, and early memory-slot gating into explicit host-owned activation-policy outcomes before broader policy semantics move
What is still pending from this spec:
- broader extension-host lifecycle ownership beyond the loader state machine and session-owned activation state
- broader extension-host lifecycle ownership beyond the loader state machine, session-owned activation state, and explicit activation-policy outcomes
- activation pipeline ownership
- host-owned registries for setup, CLI, routes, services, slots, and backends
- permission-mode enforcement

View File

@ -45,6 +45,7 @@ Relevant prerequisite work that has landed:
- loader per-candidate orchestration now has a host-owned helper boundary
- loader top-level load orchestration now has a host-owned helper boundary
- loader mutable activation state 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 final cache, warning, and activation finalization now has a host-owned helper boundary

View File

@ -55,6 +55,7 @@ What has landed:
- loader per-candidate orchestration now routes through `src/extension-host/loader-flow.ts`
- loader top-level load orchestration now routes through `src/extension-host/loader-orchestrator.ts`
- loader mutable activation state now routes through `src/extension-host/loader-session.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 final cache, warning, and activation finalization now routes through `src/extension-host/loader-finalize.ts`
- runtime registration normalization has started in `src/extension-host/runtime-registrations.ts` for channel, provider, HTTP-route, gateway-method, tool, CLI, service, command, context-engine, and hook registrations
@ -92,6 +93,7 @@ How it was done:
- by turning that compatibility `lifecycleState` field into an enforced loader lifecycle state machine with readiness promotion during finalization
- by moving the remaining top-level loader orchestration into a host-owned module so `src/plugins/loader.ts` becomes a compatibility facade instead of the real owner
- by moving mutable activation state such as seen-id tracking, memory-slot selection, and finalization inputs into a host-owned loader session instead of leaving them in top-level loader variables
- by moving duplicate precedence, config enablement, and early memory-slot gating into explicit host-owned activation-policy outcomes instead of leaving them inline in the loader flow
- by moving static and lookup-heavy consumers first, where the ownership boundary matters but runtime risk is lower
Committed implementation slices so far:
@ -108,13 +110,14 @@ Committed implementation slices so far:
- `c8d82a8f19` `Plugins: extract loader orchestration`
- `d32f65eb5e` `Plugins: add loader lifecycle state machine`
- `da9aad0c0f` `Plugins: add loader activation session`
- `fc51ce2867` `Plugins: add loader activation policy`
- `89414ed857` `Docs: track extension host migration internally`
- `d8af1eceaf` `Docs: refresh extension host migration status`
What has not landed:
- keeping the cutover inventory current as more surfaces move
- broader lifecycle ownership beyond the loader state machine and session-owned activation state, plus remaining policy semantics
- broader lifecycle ownership beyond the loader state machine, session-owned activation state, and explicit activation-policy outcomes, plus remaining policy semantics
- host-owned registration surfaces beyond the first channel, provider, HTTP-route, gateway-method, tool, CLI, service, command, context-engine, and hook helper slices
- SDK compatibility translation work
- canonical event stages
@ -1330,7 +1333,7 @@ Current implementation status:
- partially implemented in a compatibility-preserving form
- the host now owns active registry state
- the host now exposes resolved static registries for static consumers
- activation, loader cache control, loader policy, loader runtime decisions, loader top-level load orchestration, loader session state, loader record-state helpers, and loader finalization now route through `src/extension-host/*`
- activation, loader cache control, loader policy, loader activation-policy outcomes, loader runtime decisions, loader top-level load orchestration, loader session state, loader record-state helpers, and loader finalization now route through `src/extension-host/*`
- broader lifecycle ownership beyond the loader state machine, registration surfaces, policy gates, and activation-state management are still pending
## Phase 3: Broader Legacy Compatibility Bridges