ticket: record mcp list changed implementation report
This commit is contained in:
parent
02cd596139
commit
4caafe99d3
|
|
@ -2,7 +2,7 @@
|
||||||
title: 'MCP: handle list_changed notifications safely'
|
title: 'MCP: handle list_changed notifications safely'
|
||||||
state: 'inprogress'
|
state: 'inprogress'
|
||||||
created_at: '2026-06-20T05:30:04Z'
|
created_at: '2026-06-20T05:30:04Z'
|
||||||
updated_at: '2026-06-20T10:08:05Z'
|
updated_at: '2026-06-20T10:26:13Z'
|
||||||
assignee: null
|
assignee: null
|
||||||
readiness: 'implementation_ready'
|
readiness: 'implementation_ready'
|
||||||
risk_flags: ['mcp', 'notifications', 'tool-schema', 'prompt-cache', 'refresh']
|
risk_flags: ['mcp', 'notifications', 'tool-schema', 'prompt-cache', 'refresh']
|
||||||
|
|
|
||||||
|
|
@ -107,3 +107,52 @@ Next action:
|
||||||
- Wait for Coder implementation report, then inspect branch diff/validation evidence and route to Reviewer。
|
- Wait for Coder implementation report, then inspect branch diff/validation evidence and route to Reviewer。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
<!-- event: implementation_report author: yoi-orchestrator at: 2026-06-20T10:26:13Z -->
|
||||||
|
|
||||||
|
## Implementation report
|
||||||
|
|
||||||
|
Coder implementation report received from `yoi-coder-00001KVHR3WSW`.
|
||||||
|
|
||||||
|
Implementation commit:
|
||||||
|
- `e33dee19 mcp: handle list changed notifications`
|
||||||
|
|
||||||
|
Changed areas reported:
|
||||||
|
- `crates/mcp/src/stdio.rs`:
|
||||||
|
- Records bounded `notifications/tools/list_changed`, `notifications/resources/list_changed`, and `notifications/prompts/list_changed` state。
|
||||||
|
- Ignores notification params entirely so notifications cannot inject prompt/resource content or hidden context。
|
||||||
|
- Exposes snapshot/clear APIs for safe-boundary refresh decisions。
|
||||||
|
- `crates/pod/src/feature/mcp.rs`:
|
||||||
|
- During startup tool discovery, refreshes `tools/list` once if `tools/list_changed` is observed before registration。
|
||||||
|
- If list changes continue during refresh, emits a restart-required diagnostic and does not mutate active-run tool schema after registration。
|
||||||
|
- During MCP tool/resource/prompt operations, appends bounded warnings to explicit tool output when list_changed is observed。
|
||||||
|
- Preserves explicit operations for `tools/call`, `resources/list/read`, and `prompts/list/get`; no notification-driven content injection。
|
||||||
|
- Tests:
|
||||||
|
- Added stdio notification state coverage for tools/resources/prompts。
|
||||||
|
- Added provider/runtime tests for safe-boundary tool refresh, restart-required fallback, and resource/prompt warning behavior without leaking notification params。
|
||||||
|
|
||||||
|
Coder validation reported:
|
||||||
|
- `cargo test -p mcp list_changed -- --nocapture`: passed。
|
||||||
|
- `cargo test -p pod mcp::tests:: -- --nocapture`: passed。
|
||||||
|
- `cargo check --workspace`: passed。
|
||||||
|
- `cargo test -p mcp`: passed。
|
||||||
|
- `cargo test -p pod mcp::tests::`: passed。
|
||||||
|
- `cargo fmt --all -- --check`: passed。
|
||||||
|
- `git diff --check`: passed。
|
||||||
|
- `nix build .#yoi --no-link`: passed; dirty-tree warning expected before commit。
|
||||||
|
|
||||||
|
Known risks / deferrals:
|
||||||
|
- Live mutation of already-presented model-visible MCP tool schemas is intentionally not implemented。
|
||||||
|
- Continued `tools/list_changed` after one startup safe-boundary refresh produces bounded restart-required diagnostic。
|
||||||
|
- Resource/prompt list refresh remains explicit via existing MCP list/read/get tools on later turns; notifications alone do not inject or fetch content。
|
||||||
|
|
||||||
|
Orchestrator evidence checked before review dispatch:
|
||||||
|
- Implementation worktree is clean。
|
||||||
|
- HEAD is `e33dee19`。
|
||||||
|
- Diff from acceptance `d31b8907..HEAD` is one implementation commit touching 4 files, about 459 insertions / 9 deletions。
|
||||||
|
- `git diff --check d31b8907..HEAD` produced no diagnostics。
|
||||||
|
|
||||||
|
Next action:
|
||||||
|
- Dispatch Reviewer for r1 review against Ticket requirements, with focus on current-run schema/history invariants, safe-boundary refresh policy, bounded diagnostics, no hidden prompt/resource injection, tools/resources/prompts notification coverage, and tests。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user