|
@@ -311,3 +311,33 @@ mtime 过滤的盲区:**后来的会话产出的新文件会混进更早会话
|
|
|
方案讨论时对比过 B(每会话产物目录:协议没有输出目录概念,靠 prompt 约束不可靠)、
|
|
方案讨论时对比过 B(每会话产物目录:协议没有输出目录概念,靠 prompt 约束不可靠)、
|
|
|
D(主进程 watcher:只覆盖活会话,要养常驻进程)、E(按回合组织:交互重做)——都否了。
|
|
D(主进程 watcher:只覆盖活会话,要养常驻进程)、E(按回合组织:交互重做)——都否了。
|
|
|
提交 `(本次)`;验证 type:check 89 基线 / 本包 0 报错 + build exit=0。
|
|
提交 `(本次)`;验证 type:check 89 基线 / 本包 0 报错 + build exit=0。
|
|
|
|
|
+
|
|
|
|
|
+## Codex 支持本地 Ollama / chat-only 端点(P1-P4 全部落地)
|
|
|
|
|
+
|
|
|
|
|
+**前提修正(调研取证)**:Codex 0.155+ 已物理移除 wire_api="chat"(WireApi 只剩 Responses,
|
|
|
|
|
+配 chat 硬报错,官方 Discussion #7782);Ollama ≥ 0.13.3 原生支持非状态化 /v1/responses,
|
|
|
|
|
+而 Codex core 每轮重建完整 input(无状态调用),两者天然兼容。我们应用永远不需要给 Codex
|
|
|
|
|
+做消息转换;chat-only 端点的转换只能在 Codex 与端点之间的代理层。
|
|
|
|
|
+
|
|
|
|
|
+**四期落地**:
|
|
|
|
|
+- P1 `cf328ab`:probeEndpoint 四态(responses/chat-only/unsupported/unreachable),
|
|
|
|
|
+ 真实 modelId 修 Ollama 404 误伤(Ollama 对未拉取模型也返回 404!),/api/version 消歧。
|
|
|
|
|
+- P2 `b029cbb`:chatBridgeTranslate.ts 纯函数翻译层 + ResponsesSseTranslator 流式状态机。
|
|
|
|
|
+- P3 `b9075dd`:chatBridgeService(127.0.0.1 随机端口、只接 POST /v1/responses、不持 key);
|
|
|
|
|
+ applyProvider 判 chat-only 自动桥接 + **Ollama 桥接必须降级为自定义 provider**(内置
|
|
|
|
|
+ provider 的 buildArgs 只允许覆盖 base_url,不降级会绕过桥接直连);AppliedProviderInfo
|
|
|
|
|
+ 加 bridged(落盘存上游真实地址,桥接 URL 不落盘,重启靠重新「应用」重建)。
|
|
|
|
|
+- P4 `0d765ae`:运行时面板桥接行 + 已应用「桥接」标记。
|
|
|
|
|
+
|
|
|
|
|
+**关键经验**:
|
|
|
|
|
+- 冒烟(npm run smoke:codex)**真实验证了 Codex 无状态调用**:第二轮 turn 上游收到的
|
|
|
|
|
+ messages 含第一轮全部内容(user+assistant 回放)——这是 Ollama 非状态化兼容的根基。
|
|
|
|
|
+- 冒烟有两个**基线既有失败**(git stash 对照证实,与本改动无关):`status.version` 在沙箱里
|
|
|
|
|
+ 拿到 object(spawnSync 怪癖)、codexCtl.itest.ts 的 electron 二进制未装好。
|
|
|
|
|
+- SSE 事件序列按 OpenAI Responses 规范合成(created→item.added→part.added→delta→done
|
|
|
|
|
+ 系列→completed),真实 Codex 一次跑通,说明规范实现即可被接受。
|
|
|
|
|
+- provider.json 的 AppliedProviderInfo.bridged 只在桥接时写入;重启后 bridge 不自动重建,
|
|
|
|
|
+ 页面重新「应用」时自然恢复(与 apiKey 注入同一流程)。
|
|
|
|
|
+
|
|
|
|
|
+验证:tsc 0 报错、114 单测全过、smoke 桥接 turn 通、build-electron exit=0(chat-bridge 已进包)、
|
|
|
|
|
+前端 type:check 89 基线 0 新增 + build exit=0。
|