From 8f5eef94e4a297fa079fe5f76de5480b73de4072 Mon Sep 17 00:00:00 2001 From: Hare Date: Sat, 20 Jun 2026 16:29:03 +0900 Subject: [PATCH] ticket: close mcp stdio config trust --- .yoi/tickets/00001KVHR3WRF/item.md | 4 +- .yoi/tickets/00001KVHR3WRF/resolution.md | 37 +++++++++++++++++ .yoi/tickets/00001KVHR3WRF/thread.md | 53 ++++++++++++++++++++++++ 3 files changed, 92 insertions(+), 2 deletions(-) create mode 100644 .yoi/tickets/00001KVHR3WRF/resolution.md diff --git a/.yoi/tickets/00001KVHR3WRF/item.md b/.yoi/tickets/00001KVHR3WRF/item.md index 5bc32885..f4a806a9 100644 --- a/.yoi/tickets/00001KVHR3WRF/item.md +++ b/.yoi/tickets/00001KVHR3WRF/item.md @@ -1,8 +1,8 @@ --- title: 'MCP: add local stdio server config and trust policy' -state: 'done' +state: 'closed' created_at: '2026-06-20T05:30:04Z' -updated_at: '2026-06-20T07:28:26Z' +updated_at: '2026-06-20T07:28:55Z' assignee: null readiness: 'implementation_ready' risk_flags: ['mcp', 'config', 'trust-boundary', 'secrets', 'process-exec'] diff --git a/.yoi/tickets/00001KVHR3WRF/resolution.md b/.yoi/tickets/00001KVHR3WRF/resolution.md new file mode 100644 index 00000000..499a854d --- /dev/null +++ b/.yoi/tickets/00001KVHR3WRF/resolution.md @@ -0,0 +1,37 @@ +## Resolution + +`00001KVHR3WRF` を完了しました。 + +実装内容: +- Typed MCP config schema を `crates/manifest` に追加しました。 +- Profile/config で named local stdio MCP server を宣言できるようにしました。 +- Config fields は `name`, `command`, `args`, `cwd`, `env.inherit`, `env.set` を含みます。 +- Env value は `literal`, `secret_ref`, `env_ref` をサポートします。 +- Validation は duplicate names、empty/NUL command/args、cwd policy/path、env var name、secret ref、NUL literal env values などを fail-closed で検査します。 +- Diagnostics / `Debug` は secret/env/literal values を plaintext で出さないよう redaction します。 +- Profile resolution / child manifest inheritance に MCP config を通しましたが、subprocess spawning / initialize / JSON-RPC lifecycle / tool/resource/prompt registration は実装していません。 +- Docs に local stdio MCP server の trust boundary を記録しました。Configured stdio server は user OS permissions で動く local executable であり、Yoi feature authority / Plugin permissions / MCP config validation は OS sandbox ではありません。 + +主な commit: +- `e0680cce mcp: add stdio server config` +- `9b7c4e27 merge: mcp stdio config trust` + +Review: +- r1 は `approve`。 +- Reviewer は config-only boundary、no process spawning/no auto-start、secret redaction、Profile/config integration、docs trust boundary を確認しました。 + +最終 validation: +- `cargo fmt --all --check` +- `git diff --check HEAD^1..HEAD` +- `cargo test -p manifest mcp --lib` +- `cargo check` +- `nix build .#yoi --no-link` + +Package impact: +- `nix path-info -S .#yoi`: `112615056` + +Known unrelated note: +- Full `cargo test -p manifest --lib` は、branch 外の既存 Plugin template-shape mismatch で失敗するため最終 gate にしませんでした。Reviewer はこの failure が `b0225e48..HEAD` の diff に起因しないことを確認済みです。 + +Validation log: +- `/run/user/1000/yoi/yoi-orchestrator/bash-output/bash-uxMpR3.log` \ No newline at end of file diff --git a/.yoi/tickets/00001KVHR3WRF/thread.md b/.yoi/tickets/00001KVHR3WRF/thread.md index 6a529601..43eae513 100644 --- a/.yoi/tickets/00001KVHR3WRF/thread.md +++ b/.yoi/tickets/00001KVHR3WRF/thread.md @@ -252,3 +252,56 @@ Final state: Implementation was merged into Orchestrator branch at `9b7c4e27`, review approved, and final Orchestrator validation passed: `cargo fmt --all --check`, `git diff --check HEAD^1..HEAD`, `cargo test -p manifest mcp --lib`, `cargo check`, and `nix build .#yoi --no-link`. --- + + + +## State changed + +Ticket を closed にしました。 + + +--- + + + +## 完了 + +## Resolution + +`00001KVHR3WRF` を完了しました。 + +実装内容: +- Typed MCP config schema を `crates/manifest` に追加しました。 +- Profile/config で named local stdio MCP server を宣言できるようにしました。 +- Config fields は `name`, `command`, `args`, `cwd`, `env.inherit`, `env.set` を含みます。 +- Env value は `literal`, `secret_ref`, `env_ref` をサポートします。 +- Validation は duplicate names、empty/NUL command/args、cwd policy/path、env var name、secret ref、NUL literal env values などを fail-closed で検査します。 +- Diagnostics / `Debug` は secret/env/literal values を plaintext で出さないよう redaction します。 +- Profile resolution / child manifest inheritance に MCP config を通しましたが、subprocess spawning / initialize / JSON-RPC lifecycle / tool/resource/prompt registration は実装していません。 +- Docs に local stdio MCP server の trust boundary を記録しました。Configured stdio server は user OS permissions で動く local executable であり、Yoi feature authority / Plugin permissions / MCP config validation は OS sandbox ではありません。 + +主な commit: +- `e0680cce mcp: add stdio server config` +- `9b7c4e27 merge: mcp stdio config trust` + +Review: +- r1 は `approve`。 +- Reviewer は config-only boundary、no process spawning/no auto-start、secret redaction、Profile/config integration、docs trust boundary を確認しました。 + +最終 validation: +- `cargo fmt --all --check` +- `git diff --check HEAD^1..HEAD` +- `cargo test -p manifest mcp --lib` +- `cargo check` +- `nix build .#yoi --no-link` + +Package impact: +- `nix path-info -S .#yoi`: `112615056` + +Known unrelated note: +- Full `cargo test -p manifest --lib` は、branch 外の既存 Plugin template-shape mismatch で失敗するため最終 gate にしませんでした。Reviewer はこの failure が `b0225e48..HEAD` の diff に起因しないことを確認済みです。 + +Validation log: +- `/run/user/1000/yoi/yoi-orchestrator/bash-output/bash-uxMpR3.log` + +---