ticket: request plugin cli invalid package changes
This commit is contained in:
parent
3a0fd1c219
commit
a5709d8bfc
|
|
@ -2,7 +2,7 @@
|
||||||
title: 'Plugin: add read-only CLI inspection list/show'
|
title: 'Plugin: add read-only CLI inspection list/show'
|
||||||
state: 'inprogress'
|
state: 'inprogress'
|
||||||
created_at: '2026-06-19T07:39:23Z'
|
created_at: '2026-06-19T07:39:23Z'
|
||||||
updated_at: '2026-06-19T13:45:45Z'
|
updated_at: '2026-06-19T13:51:48Z'
|
||||||
assignee: null
|
assignee: null
|
||||||
readiness: 'implementation_ready'
|
readiness: 'implementation_ready'
|
||||||
risk_flags: ['plugin', 'cli', 'diagnostics', 'read-only', 'json-output', 'no-execution']
|
risk_flags: ['plugin', 'cli', 'diagnostics', 'read-only', 'json-output', 'no-execution']
|
||||||
|
|
|
||||||
|
|
@ -799,3 +799,65 @@ Next:
|
||||||
- 修正後、configured invalid/incompatible package status semantics を中心に再レビューする。
|
- 修正後、configured invalid/incompatible package status semantics を中心に再レビューする。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
<!-- event: review author: yoi-reviewer-00001KVFD3YSV-r4 at: 2026-06-19T13:51:48Z status: request_changes -->
|
||||||
|
|
||||||
|
## Review: request changes
|
||||||
|
|
||||||
|
Review result: request_changes
|
||||||
|
|
||||||
|
対象:
|
||||||
|
- Ticket: `00001KVFD3YSV`
|
||||||
|
- branch: `impl/00001KVFD3YSV-plugin-cli-inspection`
|
||||||
|
- commits:
|
||||||
|
- `462de32a` — `plugin: add cli inspection`
|
||||||
|
- `b5f10ab7` — `plugin: align inspection statuses`
|
||||||
|
- `dfa966db` — `plugin: report inspection package metadata`
|
||||||
|
- `982a1b75` — `plugin: validate inspected tool schemas`
|
||||||
|
|
||||||
|
Resolved:
|
||||||
|
- round-4 Tool schema/name blocker は解消済み。
|
||||||
|
- Static inspection は duplicate tool names、invalid names、invalid `input_schema`、recursive/schema member issues を検出する。
|
||||||
|
- Invalid Tool definitions は typed static inspection で ineligible になり、bounded diagnostics が出る。
|
||||||
|
- `partial` は mixed usable/unusable tools を表現できる。
|
||||||
|
- JSON/human invalid schema/name coverage が追加されている。
|
||||||
|
- Prior metadata/status fixes も維持されている。
|
||||||
|
|
||||||
|
Remaining blocker:
|
||||||
|
- Configured invalid / incompatible package が `rejected` ではなく `missing` と報告され得る。
|
||||||
|
|
||||||
|
Evidence:
|
||||||
|
- Ticket acceptance は `enabled but absent package => missing` と `invalid manifest / incompatible API => rejected with diagnostic` を区別している。
|
||||||
|
- `crates/yoi/src/plugin_cli.rs` の snapshot construction は configured enablements を diagnostics より先に記録する。
|
||||||
|
- config enablement が `configured = true` と inferred `package_path` を設定する。
|
||||||
|
- discovery/resolution diagnostics for invalid package files は後から attach される。
|
||||||
|
- しかし `ItemBuilder::finish` の status precedence は概ね次の順序になっている。
|
||||||
|
|
||||||
|
```rust
|
||||||
|
} else if self.discovered && !self.configured {
|
||||||
|
"disabled"
|
||||||
|
} else if self.configured && !self.discovered {
|
||||||
|
"missing"
|
||||||
|
} else {
|
||||||
|
"rejected"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
- そのため `project:bad` が明示 enable され、`.yoi/plugins/bad.yoi-plugin` が存在するが manifest invalid / unsupported API version の場合、discovery diagnostic は出るが discovered package は作られない。builder は `configured=true`, `discovered=false`, diagnostics present となり、status が `missing` になる。
|
||||||
|
- Current tests は unconfigured invalid manifests as rejected と configured digest mismatch as rejected を覆るが、configured invalid/incompatible packages を覆っていない。
|
||||||
|
|
||||||
|
Why this blocks acceptance:
|
||||||
|
- CLI inspection は package discovery / enablement resolution の debugging surface であり、存在するが invalid/incompatible な package と、存在しない package を区別する必要がある。
|
||||||
|
- invalid manifest / incompatible API を `missing` と表示すると、原因調査を誤誘導し、Ticket の `rejected` semantics を満たさない。
|
||||||
|
|
||||||
|
Requested changes:
|
||||||
|
- Configured package に discovery/resolution diagnostic が attach されている場合、absent package `missing` よりも `rejected` を優先する。
|
||||||
|
- enabled but truly absent package だけを `missing` にする。
|
||||||
|
- Add tests for configured invalid manifest / incompatible API package reporting `rejected` with diagnostic in JSON/human output.
|
||||||
|
- Preserve current fixes: status vocabulary, package path/API fields, Tool schema validation, read-only/no-execution.
|
||||||
|
|
||||||
|
Reviewer validation:
|
||||||
|
- Static review only, per read-only boundary and because Orchestrator already reran validation.
|
||||||
|
- Inspected final branch clean at HEAD `982a1b75`, incremental diff `dfa966db..982a1b75`, final implementation in `crates/pod/src/feature/plugin.rs`, `crates/yoi/src/plugin_cli.rs`, and relevant Ticket acceptance text.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user