全部插件

DSH / BUNDLE / CLIENT-UI

dsh-native-codex-cli

v0.2.3447662 / dsh-native-codex-cli825f586545

可安装组合包UI 与客户端插件社区 · Topic 自动分析Web UI

概览

dsh-native-codex-cli

DeepSeek Harness ⇄ Codex bridge. DSH owns the chat interface; Codex CLI (codex app-server) owns task execution and native thread history. Tasks go straight to Codex — no second AI in the loop, no chat-archive replay.

README / ZH

插件文档

目录摘要

DeepSeek Harness ⇄ Codex bridge. DSH owns the chat interface; Codex CLI (codex app-server) owns task execution and native thread history. Tasks go straight to Codex — no second AI in the loop, no chat-archive replay.

dsh.pub 核对固定版本的组合包契约、运行时事实与分发语义;完整 README 请查看源仓库。

在 GitHub 阅读完整 README

LIMITATIONS

已知限制

1. **`transport: daemon` 尚未实现**(`lib/app-server.js` 的 `createDaemonTransport` 会明确抛错,而不是偷偷再起一个 Codex 实例)。要接常驻 daemon,只需实现它并复用同一套 `LineRpc` —— 协议帧与载体无关。 2. **Codex 线程是进程作用域的**:app-server 重启后旧 threadId 需要 `thread/resume` 才能继续。插件在 `turn/start` 收到 `thread not found` 时会自动 resume 重试一次。 3. **历史只能靠 `thread/resume` 拿**:在 Codex CLI 0.153.4 上 `thread/turns/list` 返回 `list_turns is not supported yet`,`thread/read` 带 `includeTurns` 也会报同一个错。插件会检测到并**不再重试分页**,改用 `resume` 返回的 turns;因此历史分页代码是死路径,等 Codex 实装后自动生效。 4. **`assistant/message` 无法由插件写入**:真实事件的 `data` 需要内嵌 provider 原始流(`usage` / `stream`),缺失时 DSH 的会话投影会抛 `Cannot read properties of undefined (reading 'length')` 并导致该会话历史加载失败。所以会话镜像只写 `user/message` + turn 生命周期,Codex 的回复由主页面 dock 渲染。 5. **生成的协议绑定落后于运行时**:0.153.4 实际会在线上多发一些绑定里没有的字段(如 `canAcceptDirectInput`、`availableDecisions`)。本插件只读取自己需要的字段,多余字段一律忽略。 6. **`conversation.input.right` 的 `useInput`/`inputActions` 形状**是运行期探测的:首次在真实 GUI 里加载后,`~/.dsh/logs/dsh-native-codex-cli.log` 会记录 `composer-hooks` 一行,里面是宿主实际传入的字段名。如果与你看到的不一致,按那一行改 `ComposerCodexAction` 里的 `liveDraft` / 清空草稿分支即可。 7. **上传的图片会落盘**在 `~/.dsh/storages/dsh-native-codex-cli/uploads/`,由 `GET /dsh-native-codex-cli/image?p=<路径>` 提供(路径被限制在该目录内)。文件不会自动清理。 8. `turn/start` 的返回值是 **stub**(`itemsView:"notLoaded"`,时间戳为空),`turn/completed` 也只带 `itemsView:"summary"` 的切片。插件的镜像以 `item/started` / `item/completed` / delta 为准。 ---