Skip to content

mcp-server-runtime:443 把 metadata outage 答成 'Agent "X" not found' —— fail-closed 但误述,#5840 定性后的 cli 侧跟进 #6055

Description

@baozhoutao

Part of #5840(engine-core 车道按跨座位协议转席;定性测量由该单 dev 完成,⛔ 未改动 cli 车道文件)。

事实(#5840 / PR #6051 的跨车道定性,origin/main)

packages/mcp/src/mcp-server-runtime.ts:443(行号会漂,内容定位:metadataService.get('agent', agentName))把 get()undefined 一律读成「不存在」:metadata 平面 outage 时,MCP 调用方拿到 Error: Agent "X" not found —— 误述(把可用性故障讲成声明事实,ADR-0110 D3 的形状),但 fail-closed(不放宽任何访问),故非安全缺陷,是诊断质量缺陷。

修法(PR #6051 落地后可用)

PR #6051 已在 IMetadataService 提供可选 getDiagnosed(type, name) → { data, degraded, errors }(spec 座位核可在途)。本单 = mcp 调用点切换到诊断版读法,degraded 时返回如实的 unavailable 错误(而非 not found),错误措辞与 #5532/#5843 家族的 SERVICE_UNAVAILABLE 口径对齐。

Blocked-by: #5840(PR #6051 合入后解锁)。

Refs #5840 / PR #6051、ADR-0110 D3、#5532/#5705

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions