Skip to content

【bug】OpenCode 连接失败:托管二进制未下载(binary cache 空),回退系统 opencode 后 Initialize 超时,opencode卸载假成功 #631

Description

@galact-byte

环境

  • codeg-server: v0.29.0
  • OpenCode: 1.18.25 (windows-x86_64)
  • 系统: Windows x64

问题1:codeg 一直连不上 OpenCode;"Binary cache" 预检一直显示没下载,OpenCode 的扩展在软件里只能用 bun 装

复现

  1. 在 Agent SDK 管理里启用 OpenCode,让 codeg 自动准备二进制。
  2. codeg 的 "Binary cache" 预检一直是未下载状态。
  3. 连接 OpenCode → 握手超时、连不上。

让AI看了下,说是

   回退用的那个 bun 装的 opencode 带 `oh-my-openagent` 插件(启动时加载 14 个 Claude Code 插件 + 更新检查 + 二进制部署
 ),冷启动 6.5s+。对照实验:移除 `oh-my-openagent@4.19.4` 后握手从 6.65s 降到 2.29s。
   完整链条:binary cache 下载失败 → codeg 静默回退到慢启动的系统二进制 → ACP 握手被超时掐断 → 连不上。

今天又发现,codeg 的自动下载始终没把二进制放进它自己的 cache 目录,所以 "Binary cache" 一直显示没下载、连接时只能回退系统 PATH。codeg 的 binary cache 没把下载的文件写到自己会去读的那个目录,手动把已有的 opencode 二进制放到 codeg 指定目录后,"Binary cache" 立刻变 PASS,重启 codeg 就好了

期望

  1. binary cache 下载后要真正落盘到 codeg 自己读取的目录
    ...\app.codeg\cache\opencode\opencode-windows-x86_64.exe),并让预检显示已下载。
  2. 下载失败时给出明确报错/重试入口,不要静默回退。
  3. 回退到系统二进制时,Initialize 超时应更宽容(或先探测再定超时),别被重型插件启动拖死。

问题2 同一处的"卸载"是假成功,在 Agent SDK 管理 → OpenCode → 版本状态

复现

版本状态区点"卸载",会发现UI 提示已卸载/成功,但实际并没有卸载,只是binary cache没了
Image

期望:

卸载要真正删除托管二进制与缓存,并把版本状态 / Binary cache 刷成未安装;删除失败要如实报错,而不是报成功。

这是日志,昨天问题一忘记截图了
codeg.2026-09-01.log

codeg.2026-09-02.log

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions