Devotd Github
新发现AI 智能体

benord-labs/frink b5b3178 — 新增面向五个提供方的通用测试矩阵

Frink 新增了用同一场景验证五个智能体提供方的通用测试矩阵,并清理了测试用例之间出现的权限批准泄漏问题。

仓库信息benord-labs/frink ↗

Frink 新增了用同一场景验证五个智能体提供方的通用测试矩阵,并清理了测试用例之间出现的权限批准泄漏问题。

GitHub 项目说明: Fine-tuned automation for everyone: visual workflows where AI coding agents act on your tickets, errors and schedules, and ask before they change anything. Works with Claude Code, Codex, OpenCode, GitHub Copilot and Cursor. Local and open source, on macOS and Linux.

星标
★ 48
复刻
5
语言
TypeScript
许可证
MIT
最新版本
0.4.0
查看原始来源 ↗在 GitHub 查看 ↗

benord-labs/frink 是一个让 AI 编码智能体依据工单、错误和日程运行的项目,在本次变更之前,它以本地、开源的形式提供会先询问是否批准的自动化。2026 年 10 月 26 日的提交 b5b3178 增加了通用测试矩阵,用同一场景验证五个提供方(Claude Code、Codex、OpenCode、GitHub Copilot、Cursor),同时还清理了权限批准在测试用例之间泄漏的问题。

矩阵的每一行都会经过 handleRemoteExecute,真实聊天与 Flow 阶段都要穿过它,行名采用 conformance: <场景> x <运行时> 格式,因此结果读起来像一张一致性矩阵。场景只有两个。文本响应到达聊天且回合完整跑完的简单回合,五个提供方全部通过;但写入文件后编辑器标签页刷新的场景只有 Claude 通过。原因是只有 Claude 的回合循环会发送 file-changed,而 Codex 的编辑卡片里不包含 file_path。当前的差距列在 conformance/baseline.ts 中,并用 vitest 的 fails 选项标示;由于不在列表中的失败与列表中的成功都会让测试失败,因此防止了列表只减不增。

同一次提交还纠正了更早的测试状态。executor.test.ts 的 490 个用例中,有 237 个带着前一个用例遗留的待处理权限卡片,479 个直接继承了前一个用例安装的卡片发送器;其中 470 个是自动批准实现。原因是 vi.clearAllMocks 清除后实现仍然残留。现在所有用例都在没有待处理卡片的情况下开始,这两个数字都变成了 0。drain 测试也一并修正,让检查在伪 CLI 内部运行,异常不再被当作失败的回合吞掉。

不过,这次变更并未触及产品行为。由于目前还没有用提供方真实二进制记录的允许写入执行,所有夹具都是脚本,只在 RECORDED 与 SCRIPTED 之间区分。单元测试套件只在 Linux CI 上运行,并不是 Windows 上的验证。预计在下一个 PR 中,当编辑器刷新效果从 Claude 的循环移到公共代码后,其余行会变为通过。以当前情况来看,写入文件后的编辑器标签页刷新只作用于 Claude 路径,而矩阵并不掩盖这一差异,而是把它显现出来。