Skip to content

refactor: codex channel goes full-dependency — delete vendored codex-call; executable from pai, governance from codex-pro (superpowers-style) #264

Description

@kiki830621

Problem

IDD 的 codex 通道是自己 vendored 的 plugins/issue-driven-dev/bin/codex-call#147 時代決策:「不依賴 pai 的 bin 佈局」)。這個前提已經失效,且形成生態系內同構機件三處

  1. pai 2.18.0 ship bin/codex-call(隨 plugin 進 PATH)— executable 的 canonical provider;codex-pro 的 setup(design D3)明文「executable 歸 pai,不寫死路徑、不越權繞道」
  2. codex-pro 治理 model/effort defaults(~/.codex-pro/profile.yaml 兩層 + hardcoded gpt-5.6-sol,codex-pro#3 裁決 2026-07-12)
  3. IDD vendored copy — 與 pai 版已分歧 87 diff 行;idd-verify / idd-route / bin/codex-call 的 gpt-5.5 hardcode 落後 GPT 新世代(sister concern from codex-pro#3) #251(2026-07-17)在這份上重做了 codex-pro#3 五天前已做過的同一個 model bump(治理成本重複發生的實證)

#147 的理由在 #207/#219 把 pai 升為 install-time hard dependency(vendored ensemble fork 同時刪除)後已不成立 — IDD 已經 hard-depend pai,卻還 vendor pai 也有的 codex-call。

User Ruling(2026-07-18)

我要改成完全依賴,跟 superpowers 一樣

即:install-time hard dependency + pre-flight fail-fast(缺席 abort + 一步安裝指令),不留 vendored fork(per deep-integration-over-hardcode 的 superpowers exemplar,#209)。

Type

refactor(dependency architecture)

Expected

  • plugins/issue-driven-dev/bin/codex-call 刪除
  • executable 統一解析 pai 的 bin/codex-call(沿用 idd-verify 既有的 pai cache sort -V 解析 + MIN_PAI version gate — 零新依賴,pai 本就是 hard dependency)
  • model/effort 治理 依 codex-pro:上游先官方化 EXTERNAL-CONSUMER CONTRACT(profile.yaml schema + 機器可讀 defaults 檔,同 pai#20 → 2.18.0 前例;上游 issue 見 comment),IDD 解析後以顯式 --model/--effort 呼叫(pai 端 default 是什麼從此無關)
  • plugin.json dependenciescodex-pro(cross-marketplace:root marketplace allowCrossMarketplaceDependenciesOncodex-pro
  • pre-flight:check-plugin-presence.sh 查 codex-pro(缺席 fail-fast,同 superpowers)
  • model-generation-sync drift-guard 重塑:single-pin 從 IDD bin 移到 codex-pro defaults — IDD 樹內零 model pin,換代只動 codex-pro 一處

Actual

三處同構機件;IDD 樹內有一份會漂移的 codex-call fork 與一個 model pin。

Impact


Current Status

Phase: closed

Tasks

(由 diagnose 產出)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions