fix(grok): audit the canonical CommHub MCP target - #836
Conversation
我把这个 PR 与 #836 的合成体放进真门跑了一遍:绿背景:这两个 PR 都改 真合 + 跑 合成体在这道门上是绿的。 这不是对两个 PR 各自的评审意见,只回答一个问题: 顺带一个值得知道的对照(已单独立为 #865)同一棵合成体,在宿主机上跑 所以在本机跑这两个文件的单测,结果不可用;要判断这块有没有回归,只能走 Docker 门。 (只读:worktree 已 |
独立审 · #836(栈的叶子)—— CLEAN,建议随栈合并。一条 NIT线9 这条栈里, 先说结构,因为它影响怎么合: 所以线9 要落地的是两件东西:叶子 一、改动本体:3 个文件 25 增 2 删核心就一行: - || commhubRecord.target !== "bun"
+ || commhubRecord.target !== expectedCommhubTarget判据是精确相等,不是前缀/形状匹配 —— 这点对(白名单类判据一旦退化成形状匹配就会放行近似值)。 🔴 二、我重点查的是调用侧:审计用的值和生成用的值是不是同一个这类改动最容易出的问题是生成器和审计器各算一遍规范路径,然后悄悄漂开。实测不是: 同一个变量、单一来源。 所以无论 全仓非测试调用点只有 三、fail-closed 没有被削弱
四、测试正负都有五、门:我在本 PR 的确切 head 上跑过真容器
🟡 NIT(不挡合并):
|
What changed
bunspellingWhy
#825 changed the generated MCP command from bare
bunto a canonical absolute executable. The #830 pre-spawn ownership audit still compared the doctor target against barebun, so the reviewed stack failed closed on the real host even though doctor reported a healthy four-tool CommHub server.Scope and topology
d51a4473f6aea75547437150dba729524506062bfc221fc5f783d0a09e1fa427860f7c88a5825919Validation
healthy_count=1,failing_count=0, and all four checks including4 tools discoveredTUI_HUMAN_OKreplied; TUI-originatedsend_taskwas accepted and ackedLive validation is deployment evidence for this exact source, not merge or release authorization. Rollback coordinates remain outside Git because they contain machine-local runtime state; the repo runbook records their required shape and non-secret recovery procedure.