Skip to content

feat(extensions): bind imported agent models - #1946

Merged
limityan merged 1 commit into
GCWing:mainfrom
limityan:yanzhn/external-agent-model-binding
Aug 1, 2026
Merged

feat(extensions): bind imported agent models#1946
limityan merged 1 commit into
GCWing:mainfrom
limityan:yanzhn/external-agent-model-binding

Conversation

@limityan

@limityan limityan commented Aug 1, 2026

Copy link
Copy Markdown
Collaborator

目标

  • 保留 OpenCode、Claude Code 与 Codex 外部 Agent 的声明式模型请求,并以 DefaultInheritReference 三种通用语义进入 BitFun。
  • 对不透明的模型名称先做唯一精确匹配;无法唯一匹配时,由用户绑定到现有 primary、fast 或具体模型配置。GPT、GLM、DeepSeek 及未来模型均走同一机制,不硬编码厂商或模型别名。
  • 将最终模型及运行配置指纹纳入既有审批与 generation lease;新子任务创建时重新校验,Inherit 在任务开始时只解析一次父会话模型。

架构与边界

  • 合同由 product-domains 持有,OpenCode / Claude Code / Codex adapter 仅负责源格式翻译。
  • 绑定解析、冲突聚合和激活判断复用 Product Assembly;持久化复用现有 ExternalSourcesConfigpreferenceRevision 和原子更新路径。
  • Desktop、Peer Host、GUI 与 TUI 暴露同一 typed mutation;工作区身份复用既有 canonical workspace route key,远端工作区不允许本地回退。
  • v1 控制快照提供绑定组与可选模型;legacy v0 投影显式剥离新增字段,保持旧 controller 的 deny_unknown_fields 兼容。
  • 不包含 Plugin Host Runtime、LSP、模型 alias/catalog/router、marketplace cache 或任何临时执行方案。

用户体验

  • 设置页按作用域聚合相同模型请求,展示来源声明、解析方式、实际模型和受影响 Agent 数量,并允许设置或清除显式绑定。
  • TUI /agent 提供同等审阅信息与 /agent bind 操作。
  • 合法的继承模型明确显示为“任务开始时从父会话解析”;缺失或失效绑定保持 fail-closed,并进入现有 attention/approval 流程。

CI 修复

  • Frontend Build 的实际失败来自 check-core-boundaries:新增的产品域合同与 core facade 已有真实调用方,但未登记进既有公开 API 治理清单。
  • 已补齐 11 个实际公开符号/操作及稳定的跨生态垂直切片说明;未修改 workflow、阈值、通配符、规则强度或基线预算。
  • 提交已再次变基到 gcwing/main@ef8cea48b,并针对新增的 MiniApp coordinator 改动重跑模型绑定与 generation lease 回归。

对抗性复审

独立复审发现并修复了两项问题:legacy v0 快照泄漏新增字段导致旧端拒绝响应,以及合法 Inherit Agent 被误显示为不可用。修复后二次复核未发现 P0-P3 可执行问题;CI 治理补丁也未扩大例外面或绕过边界检查。

验证

  • cargo check --workspace
  • cargo test -p bitfun-product-domains --features external-sources --test external_source_contracts(44 passed)
  • OpenCode、Claude Code、Codex adapter 全量/模型请求聚焦测试
  • Core 模型绑定与审批/运行时指纹聚焦测试(10 passed)
  • CLI 外部 Agent 审阅与绑定聚焦测试(9 passed)
  • pnpm run type-check:web
  • Web API 与设置页聚焦测试(75 passed)
  • pnpm run build:web
  • pnpm run i18n:contract:test(37 passed)
  • pnpm run i18n:audit
  • node --test scripts/check-core-boundaries.test.mjs(16 passed)
  • node scripts/check-core-boundaries.mjs
  • pnpm run check:repo-hygiene
  • git diff --check gcwing/main

补充:Windows 本地完整 Web 套件为 372/373 文件通过;唯一失败是最新主线 RemoteConnectDialog.contract.test.ts 以 LF 字面量匹配 CRLF 源文件,本 PR 未修改相关文件,扩展定向测试与生产 Web 构建均通过。

@limityan
limityan force-pushed the yanzhn/external-agent-model-binding branch from 08421a8 to 5a6023b Compare August 1, 2026 11:41
Preserve model requests from OpenCode, Claude Code, and Codex agents, then resolve them through existing BitFun model configuration and approval owners. Expose fail-closed binding controls across Desktop, Peer Host, GUI, and TUI without adding plugin runtime behavior.
@limityan
limityan force-pushed the yanzhn/external-agent-model-binding branch from 5a6023b to 4bfc2bf Compare August 1, 2026 11:45
@limityan
limityan merged commit 88180fc into GCWing:main Aug 1, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant