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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions