1. 13 Jan, 2026 2 commits
    • ianshaw's avatar
      fix(openai): 增强 OpenCode 兼容性和模型规范化 · 3d6e01a5
      ianshaw authored
      ## 主要改动
      
      1. **模型规范化扩展到所有账号**
         - 将 Codex 模型规范化(如 gpt-5-nano → gpt-5.1)应用到所有 OpenAI 账号类型
         - 不再仅限于 OAuth 非 CLI 请求
         - 解决 Codex CLI 使用 ChatGPT 账号时的模型兼容性问题
      
      2. **reasoning.effort 参数规范化**
         - 自动将 `minimal` 转换为 `none`
         - 解决 gpt-5.1 模型不支持 `minimal` 值的问题
      
      3. **Session/Conversation ID fallback 机制**
         - 从请求体多个字段提取 session_id/conversation_id
         - 优先级:prompt_cache_key → session_id → conversation_id → previous_response_id
         - 支持 Codex CLI 的会话保持
      
      4. **Tool Call ID fallback**
         - 当 call_id 为空时使用 id 字段作为 fallback
         - 确保 tool call 输出能正确匹配
         - 保留 item_reference 类型的 items
      
      5. **Header 优化**
         - 添加 conversation_id 到允许的 headers
         - 移除删除 session headers 的逻辑
      
      ## 相关 Issue
      - 参考 OpenCode issue #3118 关于 item_reference 的讨论
      3d6e01a5
    • IanShaw027's avatar
      fix(codex): 添加codex CLI instructions fallback机制 · f9713e87
      IanShaw027 authored
      ## 问题
      - 使用OpenAI API key时,opencode客户端可能因instructions不兼容而报错
      - 依赖外部GitHub获取instructions,网络故障时会失败
      
      ## 解决方案
      1. 将codex CLI标准instructions嵌入到项目中
      2. 实现自动fallback机制:
         - 优先使用opencode GitHub的instructions
         - 失败时自动fallback到本地codex CLI instructions
      3. 添加辅助函数用于错误检测和手动替换
      
      ## 改动
      - 新增: internal/service/prompts/codex_cli_instructions.md
        - 从codex项目复制的标准instructions
        - 使用go:embed嵌入到二进制文件
      
      - 修改: internal/service/openai_codex_transform.go
        - 添加embed支持
        - 增强getOpenCodeCodexHeader()的fallback逻辑
        - 新增GetCodexCLIInstructions()公开函数
        - 新增ReplaceWithCodexInstructions()用于手动替换
        - 新增IsInstructionError()用于错误检测
      
      ## 优势
      - 零停机:GitHub不可用时仍能正常工作
      - 离线可用:不依赖外部网络
      - 兼容性:使用标准codex CLI instructions
      - 部署简单:instructions嵌入到二进制文件
      f9713e87
  2. 11 Jan, 2026 1 commit
  3. 10 Jan, 2026 2 commits
  4. 09 Jan, 2026 2 commits