ticket: record plugin resolver restore fix
This commit is contained in:
parent
a2b991adf8
commit
37e11e465f
|
|
@ -2,7 +2,7 @@
|
||||||
title: 'Plugin: package discovery and explicit enablement resolver'
|
title: 'Plugin: package discovery and explicit enablement resolver'
|
||||||
state: 'inprogress'
|
state: 'inprogress'
|
||||||
created_at: '2026-06-15T13:40:15Z'
|
created_at: '2026-06-15T13:40:15Z'
|
||||||
updated_at: '2026-06-15T15:05:55Z'
|
updated_at: '2026-06-15T15:16:14Z'
|
||||||
assignee: null
|
assignee: null
|
||||||
readiness: 'implementation_ready'
|
readiness: 'implementation_ready'
|
||||||
risk_flags: ['plugin', 'package-loading', 'discovery', 'enablement', 'capability-boundary', 'startup-restore']
|
risk_flags: ['plugin', 'package-loading', 'discovery', 'enablement', 'capability-boundary', 'startup-restore']
|
||||||
|
|
|
||||||
|
|
@ -372,3 +372,59 @@ Conclusion:
|
||||||
- Changes requested. Do not integrate until the non-profile/spawn restore determinism path and docs/parser mismatch are fixed and covered.
|
- Changes requested. Do not integrate until the non-profile/spawn restore determinism path and docs/parser mismatch are fixed and covered.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
<!-- event: implementation_report author: yoi-coder-00001KV5R5V2S at: 2026-06-15T15:16:14Z -->
|
||||||
|
|
||||||
|
## Implementation report
|
||||||
|
|
||||||
|
Second follow-up implementation report after reviewer request_changes:
|
||||||
|
|
||||||
|
New commit:
|
||||||
|
- `07978d2d fix: persist plugin snapshots for restore`
|
||||||
|
|
||||||
|
Resolved remaining blockers:
|
||||||
|
|
||||||
|
1. Non-profile / spawn-config restore determinism
|
||||||
|
- Changed Pod metadata snapshot persistence so resolved manifests are snapshotted when either:
|
||||||
|
- `manifest.profile.is_some()` (existing profile behavior), or
|
||||||
|
- `manifest.plugins.has_resolved_plan()` (new plugin-resolved manifest behavior).
|
||||||
|
- Added helper path:
|
||||||
|
- `pod_metadata_for_manifest`
|
||||||
|
- `should_persist_resolved_manifest_snapshot`
|
||||||
|
- A named Pod whose plugin enablement is resolved at startup now persists resolved plugin metadata/digest plan in `resolved_manifest_snapshot` even without a profile.
|
||||||
|
- Restore therefore uses the original resolved plan instead of silently rediscovering mutable stores.
|
||||||
|
|
||||||
|
Focused runtime persistence test added:
|
||||||
|
- `plugin_resolved_manifest_snapshot_is_persisted_without_profile`
|
||||||
|
- verifies a non-profile manifest does not snapshot by default;
|
||||||
|
- adds resolved plugin metadata;
|
||||||
|
- verifies runtime metadata snapshot is persisted;
|
||||||
|
- verifies restored snapshot contains the original plugin digest/version.
|
||||||
|
|
||||||
|
2. Docs/parser alignment
|
||||||
|
- Updated `docs/design/plugin-packages.md` with a minimal currently-valid strict `plugin.toml` example:
|
||||||
|
- top-level `schema_version`, `id`, `name`, `version`, `description`, `surfaces`;
|
||||||
|
- `[[hooks]]` with `id` and `file`.
|
||||||
|
- Clarified referenced files must exist in the package archive.
|
||||||
|
- Clarified optional `[runtime]` currently accepts only:
|
||||||
|
- `kind = "wasm"`
|
||||||
|
- `entry = "..."`
|
||||||
|
- `abi = "yoi-plugin-wasm-1"`
|
||||||
|
- Marked `[package]`, `[permissions]`, richer `contributions`, and `runtime.kind = "declarative"` as future/aspirational and intentionally rejected by strict parser for now.
|
||||||
|
- Added parser-alignment test:
|
||||||
|
- `currently_documented_manifest_shape_is_accepted`
|
||||||
|
|
||||||
|
Validation reported by coder:
|
||||||
|
- Passed: `cargo fmt --check`
|
||||||
|
- Passed: `cargo test -p manifest plugin`
|
||||||
|
- Passed: `cargo test -p manifest`
|
||||||
|
- Passed: `cargo test -p pod plugin_resolved_manifest_snapshot_is_persisted_without_profile`
|
||||||
|
- Passed: `cargo test -p pod spawn_pod`
|
||||||
|
- Passed: `cargo check`
|
||||||
|
- Passed: `git diff --check`
|
||||||
|
- Passed: `nix build .#yoi`
|
||||||
|
|
||||||
|
Repository status:
|
||||||
|
- Child implementation worktree clean after follow-up commit.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user