Files
Cyrene_v2/internal
AskaEth 28b663231e
CI / Backend (build / vet / test / cross-compile) (push) Has been cancelled
CI / Frontend (tsc + vite build) (push) Has been cancelled
test(gateway): 补 graph_update 的 WS 中继与 wire 契约测试(此前零覆盖)
`#/admin/flow` 报障调查发现:flow 链路每一环都是对的(loop 的 FlowPublisher 三入口
在真实回合里都被调用 / wire.go 的 allow 白名单正确 / parseGraph 与 Snapshot 字段逐条对得上),
但**「bus 的 ws.graph_update 经 ws_bridge 中继成 WS 帧」这一跳此前完全没有测试**——
逐环人工核对永远核不到它。补两个契约测试把它钉死:

- TestFlowGraphUpdateRelayedToWS:真 bus Publish("ws.graph_update", <真 trace.RunGraph.Snapshot()>)
  → 断言 WS 收到 graph_update 且数据逐字节未被改写
- TestFlowGraphUpdateWireFields:精确断言 graph/node/edge/log 四层的 key 集合
  = 前端 parseGraph 读取的那一套(改名/多字段/少必填都 FAIL)

验证:go build/vet 绿;-race 网关 ok;全量 58 包 ok / 0 FAIL;交叉编译绿。
变异验证:① 改 trace.FlowNode.Label 的 json tag → 键集断言 FAIL;
② 让 ws_bridge 的 normalizeEvent 丢掉 ws.graph_update → 中继测试 i/o timeout FAIL。
2026-10-03 21:39:03 +08:00
..