AgentCompare
中文 · English · 日本語 · 한국어 · Español · Português (Brasil) · Français · Deutsch
同一需求,2–4 版真跑。选风格,盲选或公开对比,再采用。
DSH 桌面端 + 浏览器 / Desktop + Web
安装 / Install · 真实演示 / Recorded demo
2.0.0 · 正式版。 DSH 桌面端与 Web 端,中英双语。在主对话内比较 2–4 版回答、文件或网页;普通文件夹也能开始,复用已配置模型。
2.0.0 新增:
- 全新蓝色液态玻璃界面。 极光与星尘背景、玻璃面板、会滑动的玻璃选择器、液体进度球;选中时光粒迸发,揭晓时光束扫过。深色模式、减弱动效与高对比模式都已适配。
- 说出为什么选。 选完点几个理由(布局、配色与质感、交互手感……)或补一句话;主对话接着修改时会保留这些优点。
- 快速组合。 一键设好版本数和风格:经典对照、三种视觉、三种取舍、四向探索。
- 2–4 版,按风格比较。 八种预设或一句话自定义;也可让不同模型使用同一风格。
- 盲选或公开对比。 逐版体验,暂时排除后可恢复,用 1–4 专注、0 回到全部。
- 回答、文件、网页都可看。 Markdown 排版,复制回答、代码、文件内容和保存路径;明确标记你的选择。
- 留在主对话。 比较、选择、采用与撤销写入当前对话记忆;继续交流时可接着修改。
- Desktop + Web,中英双语。 沿用已配置模型;有改动时先审查,再确认采用,并保留撤销与恢复入口。
AgentCompare 是 DeepSeek Harness(DSH)插件:同一需求,独立完成 2–4 版回答、文件或网页。有可运行页面时实际预览;没有可运行项目时按内容比较,不宣称通过功能测试。先体验再选;盲选时选后才揭晓模型和风格。采用前核对当前项目与候选改动,确认后才写回。
| 你想要 | 在哪里用 | 卡片里会看到 | |---|---|---| | 网页或界面改版 | Git 仓库里的 Vite、Node 或静态网页项目,也包括子目录 | 2–4 个能直接点击、输入的实时页面,以及共同验收 | | 脚本、文档或其它文件 | 任何目录,包括 DSH 默认工作区 | 各版写出的文件,盲选前就能逐个打开 | | 一个回答 | 任何对话 | 排好版的回答并排,可一键复制;选中的那份进入主对话记忆 |
30 秒上手:
- 桌面版在应用的「插件 → 添加插件」里安装
dsh-agent-compare(Web 版见安装)。 - 点输入框左下角的 A|B,选好版本数和风格。
- 像平常一样写需求并发送。
功能示意 / Product illustrations · 查看真实演示 / Watch the recorded workflow
新版界面速览
先看四版实时页面,再看主对话、设置与选择理由。下面是固定候选在真实 DSH 宿主中的界面;首图和流程图为功能示意。
展开四张实际界面 / Open four interface views
!四版页面直接操作 / Four independently interactive pages; controlled candidates in a real DSH host
!版本、风格与上下文 / Versions, styles and context; controlled candidates in a real DSH host
!英文回答并排比较 / Compare English answers; controlled candidates in a real DSH host
看一次完整流程
在真实 DSH 宿主里录制的固定候选演示(2.0.0 发布候选源码,中文界面):
- 在普通文件夹里让 4 版各写一个番茄钟页面,4 个实时页面都能直接操作;
- 排除两版后,剩下的并排比较;
- 选择后揭晓每版的风格,光粒迸发、光束扫过卡片;
- 点选两个理由(布局、更简洁),主对话的下一条请求会带上它们;
- 保存到新文件夹后,继续主对话。
English answers · 390 px

安装
以下命令用于自行运行的 DSH Web profile。桌面版的 desktop profile 由应用管理,请使用应用的插件页面。
安装 npm 包到默认 Web profile(公开发布状态见顶部 npm 徽章):
dsh plugin --profile web add [email protected]
如使用其他自行运行的 profile,请将 web 换成实际名称。
也可以从源码构建并安装:
git clone https://github.com/lijiaqi-AI-Product-Manager/dsh-agent-compare.git
cd dsh-agent-compare
npm ci
npm pack
dsh plugin --profile <你的 profile> add ./dsh-agent-compare-2.0.0.tgz
重启 DSH 后,在主对话输入框左下角点 A|B:
- 输入框上方展开设置条,选择比较方式:「同一模型 · 不同风格」(默认,复用当前模型)或「不同模型 · 同一风格」(每版选一个已配置的模型,共用一种风格)。
- 选择版本数(2、3 或 4)和盲选或公开对比;同一模型时为每一版选一种风格,或写一句话自定义。版本越多,用量越多,设置条会提示。
- 选择每版生成上限(5–120 分钟),以及各版能看到的「主对话上下文」:不带、最近几轮(默认 3 轮)或手动勾选。设置条会显示各版将收到的完整内容。设置保存在当前对话,重新打开仍可读取。
- 在原输入框里写需求并发送。无需填写指令或参数;模式切换只操作自己的命令标记,保留草稿、引用与附件。暂不支持的附件提交会由宿主拒绝并保留原稿。
- 同一条对话里出现 A|B 卡片,每个小窗口都是一版真实运行的应用。新会话尚未显示聊天时间线时,同一份记录直接显示在输入框上方。默认适应窗口、直接交互,也可切换统一桌面/手机视口,或专注某一版(在卡片里按 1–4,按 0 回到全部)。3–4 版时可以「排除」暂时不考虑的版本,剩下的并排放大。「大窗口查看」用于放大检查。
- 盲选时,选择后才揭晓模型和风格;公开对比一开始就显示。之后展开代码改动,再点「审查并采用」。先显示目标仓库与核验结果,确认后才写入。恢复操作置于结果顶部;采用后点「继续主对话」,退出比较模式并聚焦原输入框,记录仍保留。
右上角的比较记录与使用教程在新建和已有对话中均可打开。历史保留需求、检查、选择、采用与撤销记录;预览停止后可查看验收截图。
安装环境造成失败时,卡片会区分连接、访问权限、磁盘、运行环境、锁文件和超时,给出处理建议。修正环境后点「重新验收 A/B」即可复用已封存代码和原验收定义,不重复生成;上次失败、检查与用量继续保留。锁文件不一致需要修正后开始新的比较,不能靠反复安装或放宽条件通过。
运行记录、重启与恢复 · 支持范围 · 自定义验收
比较结果、你的选择、采用与撤销都会写入这条对话的记忆。之后可以直接问「刚才比较的结果怎么样」,或者在采用的版本上继续改。揭晓后还没采用时可以改选另一版;都不可用时可以「再比较一次」。详见主对话记忆与上下文。
Windows 进程兼容设置提供自动与关闭选项,保留原有宿主约束,并在揭晓后显示实际观察到的钩子。
1.3.0:任何目录都能用 A|B。不是 Git 仓库的目录(包括 DSH 默认工作区)会在空白目录里比较各版的页面、文件或回答,选定后保存到当前目录的新文件夹;也支持子目录项目、非 Vite 的 Node 项目和静态网页。详见目录与项目类型。
适合什么任务
界面和交互类任务:好坏要靠人体验,测试只能判断「有没有做到」。比如搜索和筛选、表单流程、落地页、仪表盘布局、组件重设计。 答案唯一的修 bug 或重构,用单个 Agent 加测试更合适。
两种比较方式,都可以选 2–4 版,盲选或公开对比:
| 方式 | 各版相同的 | 各版不同的 | |---|---|---| | 同一模型 · 不同风格(默认) | 模型、需求、验收 | 风格(默认 2 版为稳妥 + 大胆,3 版加极简,4 版再加活力) | | 不同模型 · 同一风格 | 需求、验收、风格(默认均衡) | 模型(从你在 DSH 里已配置的模型中各选一个,不能重复) |
八种风格分成三组,每一种都必须完成需求里的所有要求:
| 分组 | 风格 | 做网页或改项目时 | 回答问题或写文件时 | |---|---|---|---| | 改动幅度 | 稳妥 | 沿用现有组件和写法,改动最小 | 常规、直接 | | | 大胆 | 重新思考布局与交互 | 换个角度,更有创意 | | 视觉气质 | 极简 | 元素少、留白多,一眼看懂 | 只讲要点 | | | 精致 | 专业质感,层级清楚,状态完整 | 结构化、周全 | | | 活力 | 色彩、动效与个性 | 语气亲切,多用例子 | | 优先目标 | 易用 | 新手友好,可访问,手机优先 | 一步一步讲清楚 | | | 严谨 | 校验、边界情况与测试 | 说明假设,覆盖边界 | | | 轻快 | 代码少、加载快、不加依赖 | 越短越好 |
自定义风格是一句话描述(最多 120 字),会作为风格说明交给各版,不能改变需求或规则。同一种风格可以重复选,相当于同一要求多跑几次。
盲选时,开始时会把所选风格随机分配到 A–D,选完才揭晓;公开对比按设置的顺序对应 A–D,比较时直接显示。
它替你做掉的那部分
自己多开几个会话也能让模型写几版,真正麻烦的是后面这些,AgentCompare 把它们变成一步:
- 每一版都从同一基线出发,包括你还没提交的改动,而你的 index 和文件一点不动;
- 每个候选分别申请以自己副本为根的宿主写入约束,并披露宿主实际提供的约束范围;
- 各版各装一份依赖、各自构建、各占一个端口,同时跑起来;
- 用同一套、事先固定并绑定内容的验收比较,候选改了验收脚本或测试就不算通过;
- 选完以后合回项目时,先确认它和你这期间的修改能一起工作;待写入前发现目标发生变化,就停止采用。
工作流程
- 基线:用私有临时 index 给工作区拍快照(含未提交和未跟踪文件,不含被忽略的文件),不改你的 index 和文件。
- 验收绑定:从基线确定验收命令(
typecheck/lint/test/build脚本 + 页面验收),并记录这些脚本的内容、验收相关文件(tsconfig*、vite/vitest配置、lint 配置、已有测试文件、.agent-compare.json)的内容哈希、锁文件和运行时。仓库根目录的.agent-compare.json可以加上逐步交互验收(见下文)。 - 隔离副本:为每个候选建一个不带分支的
git worktree,放在插件目录(~/.dsh/agent-compare/w/),并在副本的 git 管理目录里写入归属标记。/ - 候选会话:每个候选是一个独立的 DSH 会话,会话目录就是它的副本。开始前以此目录申请
workspace-write约束,审批策略固定为「从不」。具体约束由宿主执行,包含下文列出的平台限制。每个候选有生成时间上限(界面可选 5 / 15 / 30 / 60 / 120 分钟,默认 30)。到时还没说完成,就停止它,照样封存并验收它已写的改动;生成期间卡片上显示它走了几轮、最近在做什么、多久没有新动作。 - 封存:生成结束后会话被关闭,改动被冻结为一个提交和一份完整的二进制补丁(SHA-256),永远排除
node_modules。 - 验证:确认副本内容与封存版本一致 → 按锁文件冻结安装(失败就失败,不会退回非冻结安装)→ 跑验收命令 → 用
vite preview运行构建产物 → 在独立的无头浏览器上下文里跑页面验收(可加载、无控制台错误、逐步交互、桌面和手机截图)→ 再确认验收没有在副本里留下未封存的改动。构建没通过时只提供开发模式预览,并标明「仅供观察」。 - 结论:根据已记录的检查、验收定义和内容一致性决定能否采用。失败、超时、验收文件变更或未封存改动会阻止直接采用;明确的页面行为验收没有运行也会阻止。仅基础页面加载检查未运行时保留警告,不算已经验证;依赖变更和缺少锁文件也会提示。
- 选择:面板里 2–4 个 iframe 展示真实运行的构建产物。盲选时只标 A–D,风格在开始时随机分配,选完立即揭晓风格、实际模型和 token 用量;公开对比一开始就显示。之后都会显示「程序验收倾向」与「你的选择」是否一致。
- 采用(只对通过验收的版本开放):
- 继续:采用成功后会回收副本和预览进程,面板直接给出「继续这份成果」:在刚采用的结果上输入下一项需求,再比较一次。历史记录单独浏览。
隔离与安全:保证什么、不保证什么
封存与验收从原仓库核对副本的 Git 管理目录、双向链接和归属标记,再显式绑定 Git 目录与工作区执行。指针被改写、链接替换、过大或缺失时,拒绝继续封存和重新打开预览;清理会保留归属不明的副本并说明原因。终端遗留的 Git 仓库、index 和配置选择变量不会重定向这些操作,内部显式创建的私有 index 仍可使用。这些检查保护插件的 Git 生命周期操作;项目进程的约束仍由宿主沙箱提供。
| 方面 | 做法 | 边界 |
|---|---|---|
| 候选写文件 | 候选会话的目录就是它的副本,由 DSH 沙箱在执行前限制 | DSH 官方把 Windows 沙箱标为 partial;平台临时目录可能可写 |
| 项目命令 | 安装、检查、初次预览和重新预览都使用宿主的 workspace-write 约束;子进程环境使用宿主的规范清理接口 | 没有约束就停止,不会退回无约束执行。宿主报告部分约束时保留记录并提示;不提供文件读取或网络隔离 |
| 你的项目 | 生成期间检查项目是否和基线不同,并在面板中提示 | 只报告观察到的变化,不推断是谁修改;采用时检查是否重叠 |
| 并发编辑 | 核验工作区与原始文件指纹;先保留原始文件,再以不覆盖现有路径的链接交接。撤销和恢复也保留冲突内容 | 仓库锁不锁定外部编辑器;交接逐文件完成,涉及文件的编辑与目录重排请等操作结束。不是对同权限进程的安全沙箱 |
| 验收 | 绑定脚本内容、配置和测试文件的哈希;验收前后核对副本内容 | 自由文本需求中无法自动验证的部分只能靠你体验,不会被宣称已验证 |
| 依赖 | 有锁文件时总是冻结安装,包缓存各自放在候选副本内 | 没有锁文件的项目只能非冻结安装,会明确提示 |
| 进程 | 预览进程只在命令行能证明是本插件启动的那个时才会被结束;预览写入同样使用宿主约束 | 网络访问和进程可见性不隔离 |
| 浏览器状态 | 每次启动预览分配新的随机 .localhost 域名,进程仍只绑定 127.0.0.1;宿主直接连接回环探测,并要求 HTTP 成功状态 | 嵌入 Cookie 受浏览器策略限制,登录、外部后端和共享数据库暂不支持;外部标签页可能使用不同存储。重开预览会重置页面状态,比较记录和截图仍保留 |
| 嵌入导航 | 预览允许脚本和表单,不允许跳转比较窗口的顶层页面 | 不提供完整的恶意代码沙箱;页面与网络请求仍受浏览器自身策略管理 |
| 清理 | 只删除「已注册为该仓库 worktree + 归属标记匹配」的目录 | 不能证明归属的目录会保留并列出 |
| 原始内容保留 | 项目内自忽略的 .agent-compare-transfer-* 目录保留原始文件和交接日志,结果中可查看位置;预览清理不会删除它 | 直接写回限普通文件、10,000 个路径及合计 128 MiB 的原始与候选内容;不支持硬链接的文件系统、符号链接及特殊文件可另存分支。未完成恢复前请保留目录 |
| 旧版记录 | 0.1 版本留下的记录只读显示 | 不会对其中记录的路径或进程做任何操作 |
DSH 宿主没有提供会话创建接口(ctx.agents.create)时,会退回 0.1 的子 Agent 方式(isolation: shared-root):副本放在仓库内的 .agents/worktrees,越界写入只能事后发现。面板和运行记录都会标明当前用的是哪种。
当前 Windows 宿主限制受限进程内部创建捕获输出的命名管道。npm 安装脚本改用前台输出,不改变项目的脚本许可;esbuild 版本检查及 Vite 的可选 net use 探测通过私有临时文件捕获输出,esbuild 服务使用宿主公开的匿名管道接口,子进程继承同一个受限令牌。其他需要嵌套命名管道的工具仍可能失败,不会降低权限要求重试。此边界不包含文件读取和网络访问隔离。
配置(可选)
在 profile 的 cordis.patch.yml 里追加一条以插件 id 为目标的配置:
- id: agent-compare
name: dsh-agent-compare
config:
generationMinutes: 20
| 键 | 默认值 | 说明 |
|---|---|---|
| generationMinutes | 30 | 每个候选的生成时间预算 |
| maxActiveRuns | 1 | 同时生成的比较轮数 |
| isolation | own-root | shared-root 为实验性的旧方式 |
| home | ~/.dsh/agent-compare | 记录、补丁、截图和副本的位置 |
仓库自定义验收:.agent-compare.json
放在仓库根目录、并提交(验收读取的是基线里的版本,候选改它不算数):
{
"scripts": ["test:e2e"],
"browser": {
"path": "/",
"steps": [
{ "label": "初始 8 个商品", "expectCount": "[data-testid=product-card]", "min": 8, "max": 8 },
{ "fill": "input[type=search]", "text": "lamp" },
{ "expectCount": "[data-testid=product-card]", "min": 1, "max": 1 },
{ "click": "button:has-text(\"清空\")" },
{ "viewport": { "width": 390, "height": 844 } },
{ "expectVisible": "input[type=search]" }
]
}
}
步骤类型:fill、click、press、expectVisible、expectCount、expectText、viewport;选择器是 Playwright 选择器。完整示例见 examples/vite-react-demo/.agent-compare.json。
配置会在生成前严格校验。未知字段、不存在的脚本、非法步骤和跨来源页面路径会直接报错。自动绑定根目录 JS/TS 辅助程序、scripts/、tools/、config/、已知配置和已有测试;新增验证配置及 package scripts(包括生命周期钩子)的变化也会使候选不可直接采用。其它位置的验证数据或辅助文件可在基线配置中通过 "protectedFiles": ["custom/fixture.json"] 指定,必须是已存在的具体仓库相对路径。
绑定范围不会推断任意程序动态读取的全部文件。程序验收说明已配置检查的结果;需求中的其它质量标准仍需实际体验和代码审查。
兼容范围
| 项目 | 状态 | |---|---| | DSH 0.2.1-rc.3 桌面版,Windows 11 | 历史兼容案例:真实模型完成生成、验收、盲选和采用;候选会话申请各自副本的写入边界,shell 命令已运行 | | DSH 0.2.1-rc.5,Windows 11 Web UI | 生产版指令、真实子会话、预览、采用、历史恢复及采用说明进入主对话下一次请求已通过;使用本地脚本化适配器 | | Linux,Ubuntu CI,DSH 0.2.1-rc.5 | 核心回归和真实宿主进程约束、环境清理、冻结安装、构建、预览重开、取消检查已通过;未测外部模型完整交付 | | DSH next 通道 | 独立 Windows/Linux/macOS 原生运行 canary,记录实际版本;状态见 CI,不等同于完整模型交付验收 | | macOS | 当前源码增加原生完整回归、Chromium 界面、真实 DSH 与包管理器检查;Safari 实时比较另见 #115,不能用 Chromium 结果代替 | | 1.2.0 验收基线 | Windows/Linux/macOS 固定 DSH 0.2.1-rc.5 与 0.2.2-rc.1;Playwright 1.65.0、Vite 8.3.6、pnpm 12.18.0,具体通过项与限制见执行矩阵及本次 CI | | Node | 26.13.0 为主开发基线;22/24 维护线的最新补丁版也纳入 CI 兼容检查 | | 项目类型 | 回答、文件与网页;普通文件夹、仓库子目录、Vite、非 Vite Node 项目和静态网页。按内容比较不代表执行了任意语言的测试。包管理器的完整通过项与已知限制见执行矩阵 |
已验证(持续更新,以当前 CI 和所列案例为准)
以下案例保留各自的源码与工具版本。1.2.0 的测试脚本使用上方基线,历史运行数字不作为新版重新测量的结果。
最新结果见 CI。可复现的原生运行检查还在 Windows 上实测了 DSH 0.2.1-rc.5、Node 26.13 和 Vite 8.3.5:相邻文件写入被拒绝、子进程环境被清理、冻结安装、类型检查和构建通过、预览两次启动、取消后停止写入。Windows 如实报告部分约束。
用单独的依赖目录安装官方当前宿主后,可以重复这项检查:
npm install --prefix .runtime-checks/host-sdk --ignore-scripts --no-audit --no-fund @deepseek-ai/dsh@latest
npm run test:runtime
测试宿主依赖目录被忽略,也不会打入插件包。本项使用受控示例,不请求模型。
- 自动化回归(数量和结果以当前 CI 为准),包含真实 git、冻结 npm 安装、构建与预览进程的集成测试(临时路径带空格),以及单元测试和宿主接口契约测试。已建立的回归包括:
node scripts/smoke.mjs:脚本代替模型,用内置案例真实运行 React 19.3.1、Vite 8.3.5 与 Playwright Chromium 156.0.8078.4。完整实现的一版通过 12/12 步验收;漏做「清空」按钮的一版只通过 9/12 步,被判为不可采用。基线建立后再次编辑笔记文件,采用必须先预演组合结果,并保留更新后的笔记。--escape B时,候选写到副本外的文件被检测出来。- DSH 0.2.1-rc.5 隔离环境:生产版指令读取界面选择的五分钟上限,创建两个真实候选会话,运行应用并完成审查及采用。刷新并返回普通对话后,本地脚本化适配器在真实主会话请求中读到了采用说明。新建/已有对话的入口均正常,没有页面异常。本项没有请求外部模型。
- 开发与示例依赖审计均为零已知漏洞。
npm run test:coverage单独报告后端覆盖率;浏览器和原生宿主集成检查属于其他验证层,不计入这个百分比。 - 浏览器断言覆盖输入框设置、设置持久化、多条记录的独立操作、两个可交互预览、空白会话导航与重新打开、代码审查、采用确认、返回输入框的焦点、响应式状态及弹窗键盘操作。历史导航包含 72 条样例的分页、搜索、慢响应、旧服务端提示、错误重试和需处理记录筛选。浅色/深色界面状态通过 WCAG 2 A/AA 和 2.1 AA 自动规则检查。此项使用明确标记的示例记录。
- 真实模型(DSH 0.2.1-rc.3 桌面版,deepseek-flash,内置案例):两个候选会话的头部记录
cwd分别是各自的副本,sandbox/mode为workspace-write、approval/policy为never;候选里的pwsh正常执行(0.1 的SetNamedSecurityInfoW错误不再出现);token 用量来自会话日志。两个候选都在 30 分钟上限内没有说完成——其中一个已写完全部改动,事后对它的副本跑共同验收:冻结安装、类型检查、构建和 12/12 步页面验收全部通过。0.2.0-alpha.2 因此改为到时照样验收已写的改动。
- 真实模型完整一轮(DSH 0.2.1-rc.3 桌面版,deepseek-flash,同一模型两种策略,60 分钟上限):两版各用约 42 分钟生成,token 用量约 264 万和 294 万;两版都通过类型检查、构建和页面验收;选择 B 后采用到工作区,写入
src/App.tsx和src/styles.css,未提交、index 和 HEAD 未改动。 - 对话内运行(DSH 0.2.1-rc.3 运行时,测试 profile):
/ab出现在指令菜单;输入框的 A|B 按钮把草稿变成/ab …,发送后按指令执行;会话日志里记录command/run(ab及参数)和command/done(含运行编号);生成结束时,一条说明结果的消息写入该对话,供模型下一步读取;输入框按钮、指令卡片、工具卡片、标题栏按钮的注册全部被宿主接受。 - 打包安装后的界面检查(DSH 0.2.1-rc.3 Web UI,隔离 profile):原输入框的图形化提交、两份真实 Vite 预览中的搜索与清空、选择、采用审查及工作区写入、结果说明写入持久会话并进入下一步消息队列、刷新后恢复已采用记录,以及退出比较模式后继续普通对话。本项使用固定的脚本化候选,没有请求模型。
尚未验证(不要当成已支持)
- 更新后桌面壳的最终显示效果,以及最新版宿主中由外部模型完成「采用后接着提下一项需求」的完整体验。采用说明进入请求上下文已通过本地脚本化适配器检查。
- 历史 Windows 案例记录到较长工具调用和轮间等待,一轮比较可能超过 30 分钟。各阶段开销尚未定位,不能据此归因为某个插件或服务;最新版仍需要真实外部模型的性能测量。
- 已测 Chromium/Edge 以外的浏览器与隐私模式。当前已验证候选之间的浏览器状态分离;嵌入 Cookie 和外部标签页仍受浏览器自身策略管理,不构成完整浏览器安全边界。
- 两个模型模式下各家 provider 的实际表现。
已知限制
- 回答和文件按内容比较。实时预览和页面验收需要可运行的网页项目;其它语言的测试只在基线的 package 脚本里运行时才会执行。
- 非 Git 目录里,各版从空白目录开始,不会读入已有文件。要修改已有文件,请先在设置条里「在此目录启用 Git」;用户主目录、磁盘根目录、系统目录,以及超过 5,000 个文件或 300 MB 的目录不能启用。
- 每多一版,就多一个模型会话、一次依赖安装和一个预览;4 版的用量约为单版的 4 倍,在依赖较重的项目里也更占磁盘和内存。
- 1.3.0 及更早的版本读到 3–4 版的比较记录时,会把它列为「需处理」,不会据此操作;升级后可正常查看。
- npm 12 的安装脚本策略可能拦截依赖脚本;需要原生安装步骤的项目须先按项目自身策略允许相关脚本。
- 单次比较的结果不代表模型或风格的整体优劣。
开发
使用 Node 26.13.0(.nvmrc)与 npm 12.2.2。编译和测试基线为 TypeScript 7、React 19.3、Vitest 5;分发的客户端复用 DSH 提供的 React 运行时。
npm ci && npm run typecheck && npm test
npx playwright-core install --only-shell chromium
npm run test:ui
npm run test:coverage
npm run smoke
node scripts/preview-ui.mjs
贡献方式见 CONTRIBUTING.md,版本变化见 CHANGELOG.md。
许可证
MIT
项目增长
Star 历史每天自动更新。更新日期采用 UTC,Star 日期沿用 GitHub 聚合口径。 同时展示 npm 每日下载请求量(npm下载统计会滞后于star统计日期两日)。
下载请求包含重复与自动化访问,不等于独立用户或活跃用户。(npm下载统计会滞后于star统计日期两日)
