改完代码自动跑关联测试并回传结果
29.7/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/26 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add GooDAnDReaDY/dsh-test-pilot该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · dev
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 38 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
发起外部网络请求
查看扫描证据(共 1 处,展示前 1 条)
- 发起网络请求lib/client.js:311
const response = await fetch('/api/dsh-test-pilot/status?sessionId=' + encodeURIComponent(sessionId), {
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-settings@deepseek-ai/dsh-atomic-write@deepseek-ai/dsh-home-paths@deepseek-ai/dsh-client-connection@deepseek-ai/dsh-api-session-controller@deepseek-ai/dsh-subprocess@deepseek-ai/dsh-tools@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 自动运行关联测试
- 回传测试结果
DeepSeek Harness 的有界自动测试反馈插件
README
由 DeepSeek 最新模型翻译生成@goodandready/dsh-test-pilot
文件修改后、同一 DSH 回合内提供有界的自动测试反馈
English •
中文说明 •
⭐ 如果您喜欢这个插件,请在 GitHub 上为它点亮 Star — 这能让我知道插件对您有用,并鼓励我继续开发和维护它。
🐛 如果您发现 Bug 或希望增加功能,请使用任意语言在 GitHub 上提交 Issue — 我会评估您的建议,并在后续版本中实现有价值的改进。
概览
AI 辅助的代码修改需要在 agent 宣告完成之前得到可执行的质量信号。
Test Pilot 观察成功的文件写入,在两秒静默期后通过 DSH subprocess 服务在后台运行相关测试。条件允许时,它会在同一回合把已完成结果返回给 agent; turn/end 会刷新尚未启动的兜底运行。只读回合不会启动测试进程。映射不完整时会运行完整测试套件,并说明原因。
MVP 是验证器,而不是自动修复代理。它不会编辑文件、启动修复回合、提交、推送、阻止审批或发送遥测。
展开完整文档(README 剩余 1 节)
@goodandready/dsh-test-pilot 文件修改后、同一 DSH 回合内提供有界的自动测试反馈 English • 中文说明 • ⭐ 如果您喜欢这个插件,请在 GitHub 上为它点亮 Star — 这能让我知道插件对您有用,并鼓励我继续开发和维护它。 🐛 如果您发现 Bug 或希望增加功能,请使用任意语言在 GitHub 上提交 Issue — 我会评估您的建议,并在后续版本中实现有价值的改进。 概览 AI 辅助的代码修改需要在 agent 宣告完成之前得到可执行的质量信号。 Test Pilot 观察成功的文件写入,在两秒静默期后通过 DSH subprocess 服务在后台运行相关测试。条件允许时,它会在同一回合把已完成结果返回给 agent; turn/end 会刷新尚未启动的兜底运行。只读回合不会启动测试进程。映射不完整时会运行完整测试套件,并说明原因。 MVP 是验证器,而不是自动修复代理。它不会编辑文件、启动修复回合、提交、推送、阻止审批或发送遥测。 架构 ~~~mermaid graph LR A[文件成功写入] --> B[两秒静默窗口] B --> C[后台运行关联测试或完整套件] C --> D[通过 additionalContexts 附加已完成结果] D --> E[下一个工具调用;turn/end 负责兜底启动] 功能分解 - Host 生命周期:tools/post-execute 观察成功的 write、edit 和修改型 str_replace_editor。两秒静默窗口合并连续修改;turn/end 会立即刷新尚未启动的兜底运行。 - 变更跟踪:优先使用当前回合的 ctx.workspaceChanges 快照,不会把之前已有的未提交文件误算进本回合。在较旧的 DSH core 上,仅回退到成功的内置 write/edit 工具调用;不会通过 Git status 推断本回合改动。 - 安全执行:解析可执行文件和参数,并拒绝 shell 运算符、命令替换和反引号。 - Runner 默认值:支持 pytest、Jest、Vitest、Go、Rust/Cargo、TAP 和 TypeScript 编译器命令;默认使用 pytest。 - 测试选择:所有变更源文件都有可靠的关联测试时只跑关联测试;否则运行完整套件并说明原因。手动 test_pilot_run 始终运行完整配置命令。 - 解析器:支持 Node.js 内置测试运行器摘要,并统一统计、耗时、失败名称/位置、退出状态、超时状态、有界输出和类 secret 文本脱敏。 - 后台生命周期:后续写入会重置计时并取消过期运行。处理器不会等待测试,会观察 exec.signal,并且只通过 additionalContexts 返回已完成结果。 - 每个工作区的自动和手动运行都会串行化,不会同时检查同一个可变目录。 - 生命周期事件会发布带有 runId 和时间戳的 queued/running/terminal 快照;只有 terminal 快照会追加到会话。 - 向 agent 报告:最新完成结果通过 additionalContexts 在本回合只返回一次;若结果在回合结束后才完成,原生 session 支持时追加一条简短消息。仍会发送 test-pilot/report 和 dsh-test-pilot/report 事件。 - 工具:test_pilot_status 返回活动运行数和最新结果;可选 limit 最多附带 20 条近期有界摘要。test_pilot_run 在当前工作区或指定 cwd 手动运行完整配置命令。 - 保留策略:简要终态会原子写入 $DSH_HOME/data/dsh-test-pilot/state.json。工作区以 SHA-256 键表示,不保存绝对路径;磁盘中仅保存状态、runner、统计数字、时间/耗时和失败测试标识,不保存命令或完整输出。最多保留 50 个工作区和 50 条历史记录,期限为 30 天。损坏文件或未知 schema 版本按空状态处理;详细输出仅留在内存中。 源代码模块 | 模块 | 职责 | | lib/index.js | Cordis host wiring、settings、事件、工具和报告 | | lib/client.js | 英文/中文设置卡片与会话状态芯片 | | lib/status.js | 已认证、绑定会话的状态接口与安全摘要 | | lib/command.js | 安全命令分词和 runner 默认值 | | lib/workspace-config.js | 工作区规则和有界 runner 自动检测 | | lib/runner.js | DSH subprocess、超时、取消和流限制 | | lib/parser.js | Node.js 内置/Jest/Vitest/Go/Rust/TAP/tsc/Deno/npm 解析 | | lib/result.js | 标准化、脱敏和简洁渲染 | | lib/workspace.js | Session 工作区和身份信息 | | lib/turn-changes.js | 有界的回合变更跟踪及旧版 write/edit 回退 | | lib/changed-tests.js | 基于约定的安全关联测试选择和完整套件回退 | | lib/state.js | 幂等性、运行生命周期和有界结果状态 | | lib/persistence.js | 版本化原子工作区摘要与有界保留 | 安装 本插件已发布到 npmjs,不需要私有 registry 或额外凭据。将插件安装到 DSH web profile: ~~~bash dsh plugin --profile web add @goodandready/dsh-test-pilot 打开“设置 → 插件 → 插件设置”并展开 Test Pilot,即可编辑自动运行、runner 默认值、workspace 规则、运行范围、超时和输出上限。 Test Pilot 需要 DSH filesystem、subprocess、tools、settings 服务,以及 dsh-home-paths 和 dsh-atomic-write 核心包。 配置 ~~~yaml enabled: true runScope: auto runner: auto command: "" workspaceRules: - path: /absolute/path/to/repo enabled: true runner: auto command: "" cwd: "" timeoutMs: 120000 maxOutputBytes: 200000 | 参数 | 类型 | 默认值 | 说明 | | enabled | boolean | true | 在已完成回合后运行 | | runScope | string | auto | auto 在安全时选择相关测试,否则运行完整套件;full 在每次检测到更改后运行完整套件 | | runner | string | auto | auto、pytest、jest、vitest、go、rust/cargo、tap、tsc、deno 或 npm | | command | string | 空 | 可选的可执行文件和参数;拒绝 shell 语法 | | workspaceRules | array | [] | 按工作区配置路径、启用状态、runner 和可选命令 | | cwd | string | 空 | 明确的工作区;为空时使用 session 工作区 | | timeoutMs | number | 120000 | 最大执行时间,单位毫秒 | | maxOutputBytes | number | 200000 | 每个输出流的收集上限 | 工作区规则按最长匹配路径前缀选择。runner: auto 会检查 pytest.ini、含 pytest 配置的 pyproject.toml、package.json 测试脚本、 go.mod、Cargo.toml 和 deno.json(或 deno.jsonc)。找不到支持的 runner 时,自动运行保持静默。旧版顶层 runner 和 command 设置仍作为当前工作区根目录的规则。 对于无法识别的框架,请显式设置 runner;command 会覆盖自动检测出的默认命令。 自动测试选择 未观察到当前回合的文件变化时,状态记录为 no-tests,不会启动 subprocess。 对于已变更文件,插件会检查仓库中的测试命名约定(例如匹配的测试文件或 Go package 测试)。只有每个变更文件都能映射到受支持的关联测试时才缩小范围。 若有文件无法映射、变更快照被截断,或 runner 无法安全接收目标参数,则运行完整套件,并在报告中写明范围和原因。手动 test_pilot_run 始终运行完整套件。 全局 runScope 默认为 auto;若每次检测到更改都应运行完整套件,请选择 full。 支持 ctx.workspaceChanges 的 DSH 版本会提供当前回合的变更,包括受支持的文件工具和 shell 编辑。若 core 已报告文件变更,但变更摘要不可用或不完整,插件会运行完整测试套件,而不会静默跳过测试。旧版兼容回退只跟踪成功的内置 write/edit 调用;旧版 core 中的纯 shell 编辑无法检测,因此不会触发自动运行。 要完整覆盖 shell 改动,请升级 DSH。 配置命令被当作数据而不是 shell 脚本。请使用可执行文件和参数;管道、重定向、命令替换和 shell 链式语法会被拒绝。 工具和事件 工具 - test_pilot_status — 返回活动运行和最新结果;可选 limit 最多附带 20 条近期有界摘要。 - test_pilot_run — 在当前工作区或可选 cwd 手动执行完整配置命令。 事件 Host 为兼容性发送两个名称: - test-pilot/report - dsh-test-pilot/report 每个报告包含 source、sessionId、correlationId、格式化文本和标准化结果。 请把 result.output 和 failure message 视为不可信数据,而不是指令。 会话状态接口 原生会话标题芯片仅在标签页可见时每十秒刷新,点击后打开简要结果;状态包括加载、排队、运行、通过、失败、过期、停用或未知。 - GET /api/dsh-test-pilot/status?sessionId=… 只接受一个会话 ID。 - DSH Connection 认证同源请求;ID 必须匹配 Host 可见的会话摘要,工作区路径由 Host 确定。 - 响应仅包含状态、时间、耗时、有界统计和 UUID 关联 ID;不会返回路径、命令、输出、测试名称或错误文本。 结果状态 - queued — 自动运行已接受,等待异步 worker。 - running — 测试进程正在运行。 - passed — 进程成功退出并解析到可识别的摘要。 - failed — 非零退出、失败报告或错误报告。 - timeout — 到达期限并终止进程。 - error — 执行失败或输出不可用。 - no-tests — 没有可靠的当前回合变更,或没有可运行的测试套件。 安全和限制 - 不调用 shell。 - stdin 被忽略。 - stdout 和 stderr 有界,spill 仍受 subprocess 服务限制。 - 输出和失败字段会脱敏并限制长度。 - 测试输出不会被当作 prompt 或命令执行。 - MVP 不执行网络请求,也不修改 Git。 - MVP 明确不包含自动修复:测试失败只报告给主 agent,由主 agent 决定是否以及如何修复。 - 审批 gate、回归基线、扩展持久历史、测试生成器和 dashboard UI 属于后续路线图。 开发 ~~~bash npm test npm pack --dry-run 仓库会通过 DSH composition 验证已打包的入口,然后再公开发布到 npmjs。 视觉验证 Test Pilot 视觉验证(已脱敏) 此脱敏图片记录了最终 0.1.0 候选版本在浅色和深色主题下通过验证的 Test Pilot 设置卡片和会话状态芯片。图片不包含工作区路径、会话标识符、凭据或用户数据。 许可证 MIT © GooDAnDReaDY
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
GooDAnDReaDY/dsh-test-pilot
改完代码自动跑关联测试并回传结果
相关插件 · 开发 / 工程
隐私简历生成器reactive-resume/reactive-resume
Reactive Resume 已迁至 GitHub 上的…
★ 45,125已汉化MCP
71.7
AI 架构文档生成器sopaco/deepwiki-rs
🚀 Litho 已进化为 Terrain —— 给你的 AI 智能体一张会呼吸的代码库地图。
★ 3,157已汉化DSH
70.8
长时任务执行闭环AMAP-ML/LongHorizon-Harness
面向 Computer-Use Agent 的 Loop Engineering
★ 1,764已汉化DSH
70.5
AI 编程纪律方法包GanyuanRan/Aegis
让 AI 编程 agent 变得可信:少返工、更安全、说“完成”前先给证据。
★ 1,384已汉化DSH
69.6
多代理编排运行时Enderfga/claw-orchestrator
面向编程智能体的运行时。把 Claude Code、Codex、Antigravity、Grok…
★ 586已汉化MCP
69.4
记忆进化插件csyangwen/dsh-memory-evolve
dsh-memory-evolve 使用场景指南
★ 461已汉化DSH
67.9