Skip to content

[Bug] OpenCode 本地配置无法被识别:WeSight 读取的是 opencode.json,但 OpenCode 实际使用 opencode.jsonc #60

Description

@stephenlzc

Bug Description

WeSight 在“更多 Agent 引擎”里检测到 OpenCode CLI 后,仍提示需要配置模型。根本原因是 WeSight 内部把 OpenCode 的配置文件路径硬编码为 ~/.config/opencode/opencode.json,而 OpenCode(v1.17.13)实际创建/使用的是 ~/.config/opencode/opencode.jsonc

此外,OpenCode 通过 opencode providers login 把登录凭证存在 ~/.local/share/opencode/auth.json,并不会自动写入 opencode.jsonc。WeSight 目前只读 opencode.json 且只解析其中的 model/provider,不会从 auth.json 推断已登录的 provider,所以即使用户已经在 OpenCode 里“配好了模型/Key”,WeSight 仍然看不到。

Steps to Reproduce

  1. 安装/初始化 OpenCode CLI,执行 opencode providers login 登录若干 provider(例如 DeepSeek / Kimi / OpenAI)。
  2. 确认 ~/.config/opencode/opencode.jsonc 存在,且 ~/.local/share/opencode/auth.json 已写入凭证。
  3. 打开 WeSight → 设置 → 更多 Agent 引擎 → 选择 OpenCode。
  4. 看到提示“下一步:打开设置配置模型,或先运行该 CLI 的本机登录/初始化命令”。

Expected Behavior

WeSight 应能正确读取 OpenCode 当前生效的配置文件(.jsonc),并在 OpenCode 已登录 provider 的情况下识别出可用模型,或至少给出与事实一致的提示。

Actual Behavior

WeSight 找不到 opencode.jsonreadJsonObject(getOpenCodeConfigPath()) 返回 null,导致数据库 external_agent_providersapp_type='opencode' 为空,UI 持续提示需要配置模型。

Environment

  • OS: macOS (Apple Silicon)
  • WeSight Version: 2026.6.28
  • OpenCode Version: 1.17.13
  • Node.js Version: 26.3.1

Logs/Screenshots

WeSight main log只显示 CLI 被检测到:

[AgentEngineSnapshot] opencode found at /Users/cong/.local/bin/opencode (1.17.13)

external_agent_providers 表中没有 OpenCode 记录:

SELECT * FROM external_agent_providers WHERE app_type='opencode';
-- 0 rows

Code References

  • src/main/libs/externalAgentProviderStore.ts:212 硬编码 opencode.json
  • src/main/libs/externalAgentProviderStore.ts:1213 通过 readJsonObject(getOpenCodeConfigPath()) 读取配置
  • src/main/libs/externalAgentEnvironment.ts:1021
  • src/main/libs/externalAgentConfigSync.ts:647

Suggested Fix

  1. getOpenCodeConfigPath() 优先查找 opencode.jsonc,回退到 opencode.json,与 OpenCode 自身的加载顺序保持一致。
  2. opencode.json(c) 为空但 ~/.local/share/opencode/auth.json 存在时,可考虑从 auth.json 解析出已登录的 provider,并在 UI 中列出对应模型,避免用户重复配置 Key。

Checklist

  • I have searched for existing issues
  • I have provided all the requested information

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