Files
ycode/docs/responses-integration-2026-10-16.md

3.9 KiB
Raw Permalink Blame History

Responses 真实 OMP 集成验收(2026-10-16)

结论:统一构建后的生产 Electron App/preload/IPC → 真实 OMP executable → 受控 Responses HTTP/SSE 上游已通过 28/28。验证完整 /v1/responses 配置、两轮对话历史、禁工具、认证以及开放 SSE 取消。受控服务的成功不代表用户实际远程上游已恢复,也不代表 WorkBuddy 功能/视觉 1:1 验收。

修改范围

  • 新增 scripts/verify-responses-integration.cjs。
  • 新增本结果文档。
  • 未修改 production/main/store/package;未读取或修改用户真实模型注册表,未调用真实用户上游,没有观察原版 WorkBuddy。

验证方法

脚本创建独立 .tmp/responses-integration-*,分别设置 userData、sessionData、YCODE_OMP_HOME;通过真实 preload app.info() 断言 configDir 必须等于该隔离 data 目录,之后才保存模型与创建空间/会话。真实模型明文密钥只在隔离进程生成,报告只记录 Authorization 存在及匹配布尔值;不保存任意 OMP stderr,不返回已有明文密钥。

服务只监听 127.0.0.1 随机端口,接收实际请求,没有替换 production IPC 或 OMP。真实 SSE 依次发送 response.created、response.in_progress、response.output_item.added、response.content_part.added、response.output_text.delta、response.output_text.done、response.content_part.done、response.output_item.done、response.completed,完成响应包含 usage。第三轮发送真实 partial delta 后保持连接开放,调用 production chat.cancel 检查终态。

如果真实 OMP 首轮进入 error,脚本会停止,并在 report 中保留 preload 的实际 events/messages/error;不会切换成 Chat 协议绕过失败。

命令与结果

  • node --check scripts/verify-responses-integration.cjs:退出 0。
  • Root 统一 npm run build 完成后,node scripts/verify-responses-integration.cjs:退出 0,28/28 PASS。
  • 机器报告:.tmp/responses-integration-UbxGhB/report.json。
  • 受测 production out/main/index.mjs SHA-256:3bb668280e3a6b5386e787517afc6dfea466006400f1e64fc01a4687b2c6d462。
真实请求 路径 stream 模型 tools max_output_tokens
production models.test /v1/responses false responses-fixture 0 16
OMP 首轮 /v1/responses true responses-fixture 0 1234
OMP 第二轮 /v1/responses true responses-fixture 0 1234
OMP 取消轮 /v1/responses true responses-fixture 0 1234

四个请求的受控 Authorization 均存在且精确匹配测试密钥,没有 endpoint 双拼。models.test 返回连接测试成功,耗时 37ms。首轮与次轮分别进入 done,实际内容精确为服务的两个不同 reply 标记。第二轮真实 input roles 为 user,assistant,user,包含首轮 user prompt、首轮真实 assistant reply 和第二轮 prompt。

第三轮实际收到 RESPONSES_CANCEL_PARTIAL 后取消,持久消息状态为 cancelled,partial 内容保留,preload terminal events 恰好一个 cancelled,没有混成 done/error。两轮正常终态均为 text → done。

真实 OMP transcript 已写入隔离 data/omp-sessions/session-*.jsonl。实际生成 profile 选择 api: openai-responses,baseUrl 为受控服务 /v1 前缀,模型 responses-fixture,contextWindow 8192、maxTokens 1234、input [text]、reasoning false;密钥配置为环境变量名 YCODE_MODEL_API_KEY,YAML 不含受控明文密钥。

范围与未验项

本轮覆盖网络失败/取消要求中的取消分支,没有重复发送网络失败轮。真实用户 endpoint 的网络可达性、鉴权和供应商协议兼容性仍需在用户已授权的真实重试中单独确认。未覆盖 Responses function tool、图片、reasoning、复杂多 output item、服务端错误格式及 interrupted stream 后重试。没有以受控 Responses fixture 代替真实上游成功结论。