ticket: approve plugin component model runtime
This commit is contained in:
parent
ac58bfdd63
commit
e6619bc6c9
|
|
@ -2,7 +2,7 @@
|
||||||
title: 'Plugin: migrate WASM Tool runtime to WebAssembly Component Model'
|
title: 'Plugin: migrate WASM Tool runtime to WebAssembly Component Model'
|
||||||
state: 'inprogress'
|
state: 'inprogress'
|
||||||
created_at: '2026-06-19T13:18:58Z'
|
created_at: '2026-06-19T13:18:58Z'
|
||||||
updated_at: '2026-06-19T17:17:08Z'
|
updated_at: '2026-06-19T17:19:55Z'
|
||||||
assignee: null
|
assignee: null
|
||||||
readiness: 'implementation_ready'
|
readiness: 'implementation_ready'
|
||||||
risk_flags: ['plugin', 'wasm', 'component-model', 'wit', 'runtime-backend', 'sandbox', 'packaging', 'sdk']
|
risk_flags: ['plugin', 'wasm', 'component-model', 'wit', 'runtime-backend', 'sandbox', 'packaging', 'sdk']
|
||||||
|
|
|
||||||
|
|
@ -291,3 +291,68 @@ Next action:
|
||||||
- Route back to Reviewer for r2 verification of the resource-boundary blocker and final acceptance criteria.
|
- Route back to Reviewer for r2 verification of the resource-boundary blocker and final acceptance criteria.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
<!-- event: review author: yoi-reviewer-00001KVG0HR96-r1 at: 2026-06-19T17:19:55Z status: approve -->
|
||||||
|
|
||||||
|
## Review: approve
|
||||||
|
|
||||||
|
Verdict: `approve`
|
||||||
|
|
||||||
|
確認範囲:
|
||||||
|
- Ticket contract: `.yoi/tickets/00001KVG0HR96/item.md`, `.yoi/tickets/00001KVG0HR96/thread.md`
|
||||||
|
- r1 blocker fix diff: `57bbf14e..a705bb3b`
|
||||||
|
- 全体実装: `878517dc..a705bb3b`
|
||||||
|
- 主な対象: Plugin runtime / manifest / WIT / docs / tests / Cargo/Nix/package impact paths。
|
||||||
|
|
||||||
|
Previous blocker verification:
|
||||||
|
- Component runtime now has raw-runtime-equivalent Wasmtime store limits:
|
||||||
|
- `crates/pod/src/feature/plugin.rs:1514-1523`
|
||||||
|
- `memory_size(PLUGIN_WASM_MEMORY_BYTES)`
|
||||||
|
- `table_elements(PLUGIN_WASM_TABLE_ELEMENTS)`
|
||||||
|
- `instances(1)`
|
||||||
|
- `tables(1)`
|
||||||
|
- `memories(1)`
|
||||||
|
- `trap_on_grow_failure(true)`
|
||||||
|
- Component host state carries those limits:
|
||||||
|
- `crates/pod/src/feature/plugin.rs:1926-1930`
|
||||||
|
- Component store installs the limiter before instantiation/execution:
|
||||||
|
- `crates/pod/src/feature/plugin.rs:1991-2001`
|
||||||
|
- Code documents why WIT string lifting remains bounded before ToolOutput JSON cap enforcement:
|
||||||
|
- `crates/pod/src/feature/plugin.rs:2017-2026`
|
||||||
|
- Focused negative tests were added and passed:
|
||||||
|
- component memory limit fails closed before string lift
|
||||||
|
- component table limit fails closed
|
||||||
|
- component output cap still fails closed after bounded lift
|
||||||
|
|
||||||
|
Overall Ticket satisfaction:
|
||||||
|
- Runtime kind is explicit and manifest-driven: raw `kind = "wasm"` + `abi = "yoi-plugin-wasm-1"`; component `kind = "wasm-component"` + `component` + expected `world`。
|
||||||
|
- Component execution stays on existing Plugin Tool / ToolRegistry path。
|
||||||
|
- Plugin grants remain authority boundary before Tool execution and host API use。
|
||||||
|
- Component imports are validated; unsupported imports fail closed。
|
||||||
|
- No WASI fs/network/env is linked。
|
||||||
|
- Static inspection reports runtime metadata without executing component artifacts。
|
||||||
|
- Existing raw runtime tests continue passing。
|
||||||
|
- Docs record JSON-string WIT v1 as deliberate migration bridge and defer structured WIT records:
|
||||||
|
- `docs/design/plugin-component-model.md:169-177`
|
||||||
|
|
||||||
|
Blocking issues: none。
|
||||||
|
|
||||||
|
Non-blocking follow-ups:
|
||||||
|
- Structured WIT request/response/error records are intentionally deferred。
|
||||||
|
- Sample remains an authoring sketch rather than fully built packaged sample, but runtime behavior is covered by focused component fixtures/tests。
|
||||||
|
|
||||||
|
Reviewer validation:
|
||||||
|
- `git diff --check 878517dc..a705bb3b`: passed
|
||||||
|
- `cargo fmt --check`: passed
|
||||||
|
- `cargo test -p pod feature::plugin::tests -- --nocapture`: 58 passed
|
||||||
|
- `cargo test -p manifest plugin -- --nocapture`: 17 passed
|
||||||
|
- `cargo test -p yoi plugin -- --nocapture`: 11 passed
|
||||||
|
- `cargo check`: passed
|
||||||
|
- `nix build .#yoi --no-link`: passed
|
||||||
|
- `nix path-info -S .#yoi`: `/nix/store/g9nhx3g2xsn7r3rw6n61scdkha5s7m8s-yoi-0.1.0 112156120`
|
||||||
|
- `stat -c '%s %n' "$out/bin/yoi"`: `54605944 .../bin/yoi`
|
||||||
|
- `du -sh "$out"`: `53M`
|
||||||
|
|
||||||
|
Worktree status at review end: clean。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user