日志与诊断

wescode 的日志契约:事件命名、决策点记录与排障指南。


日志文件

文件位置内容
wescode.log$WESCODE_DATA_DIR/logs/Go 后端日志
wescode-chat.logElectron 侧Chat 管道诊断(RPC 收发 + Webview 事件)

Go 日志与 Electron 日志不重复——两端各自记录自己的事件。


事件命名规范

attach.* 事件

文件附件相关事件:

事件说明
attach.pick用户选择文件
attach.resolve解析附件内容
attach.fail附件处理失败

send.* 事件

消息发送相关事件:

事件说明
send.enter进入发送流程
send.model模型选择确定
send.runRun 创建
send.doneRun 完成
send.errorRun 错误

L2 决策点事件

验证体系决策记录:

事件说明
verify.gateQualityGate 决策
verify.skip跳过验证原因
verify.fail验证失败

排障指南

"点了没反应"

从 send.enter 开始排查:

send.enter 存在?
  ├── 否 → 前端事件没到后端(检查 RPC 通道)
  └── 是 → send.model 存在?
        ├── 否 → 模型选择失败(检查 provider)
        └── 是 → send.run 存在?
              ├── 否 → Run 创建失败
              └── 是 → 检查 send.done / send.error

"附件没生效"

从 attach.pick 开始排查:

attach.pick 存在?
  ├── 否 → 文件选择器没触发
  └── 是 → attach.resolve 存在?
        ├── 否 → 文件解析失败
        └── 是 → 检查 attach.fail

Go→TS 通知契约(INV-WS-12)

Go 能发的通知方法名是封闭集合:


引擎版本记录

引擎启动后记录版本:

slog.Info("boot: engine version", "sdk_version", eng.Hypervisor.Version())

版本降级会导致 spec 解码失败(teleclaw 事故实证)。


相关文档