修一个网站Bug,最耗神的往往不是改代码,而是把复现步骤、出错画面、相关源码、拟议改动和“改完确实好了”的证据凑到一处。独立开发者 priy-anshugupta 把这套流程做成了一个本地工具:DawnPatch。
![]()
它的定位是“本地维护者工作台”,把一次修复变成一场可复核的调查。给它一个已授权的本地仓库、一个 issue,以及带断言的浏览器操作步骤,它会在 Chromium 里复现行为、抓取证据,再请本地 Gemma 模型给出一个小范围源码改动,并在另一份源码副本里测试这个候选方案。
维护者最后拿到的是报告、diff,以及同一套检查重放的结果。DawnPatch 的规则很直接:一个拟议修复必须自己挣到“通过”这个结果。
工作台里排着一串调查任务,每个任务都有可见的阶段和活动记录。浏览器复现是真实执行的,会留下截图和可下载的 Playwright 追踪文件;模型分析走一条类型化的 Mastra 工作流;源码改动被限制在有限范围内,要求精确匹配,原样未变的提案会被拒绝。
基线和候选各自拥有独立工作区,分别做构建检查和浏览器重放。证据对比、源码 diff、报告和补丁导出都在同一处完成。模型卡住时,还有一条明确的开发者修正通道。
演示用的是作者自己的 SketchWild 仓库。在一份隔离的测试检出里,他故意把任务时长比较写反:选择“5分钟以内”,本该返回1个任务,结果返回了6个。这是为评估 DawnPatch 而人为制造的受控回归,不是上游新发现的Bug。
DawnPatch 复现了这个失败。但在录制的那次调查中,Gemma 3:4b 没能给出成功的修复,作者于是通过开发者修正表单填入了准确改法。DawnPatch 会明确标注这个改动的来源,单独构建候选,再独立重放浏览器步骤。
重放检查的不只是第一屏:20分钟档必须显示全部6个任务,庭院筛选仍须显示4个。修正后的候选,8个录制步骤全部通过。
作者还测了健康的上游版本。它通过了检查,流程结束时没有产生任何补丁——一个本来就正常的网站,不该收到一份凭空猜测的“修复”。
录制前出过一次有用的失败:模型给出的提案用了相等比较,而不是最大时长比较。它满足了5分钟这一例,却在20分钟检查上翻车。DawnPatch 保留了这个失败结果,没有把它标成已验证。这次翻车也让那条额外断言显得值回票价。
技术栈上,前端是 React、TypeScript 和 Vite;本地 Express API 协调调查流程,SQLite 存运行记录、有序事件、日程和检查点。Ollama 在本地跑开放权重的 Gemma 3:4b,模型输出只被当作提案,仍需验证。Playwright 和 Chromium 提供行为证据,Docker 负责构建并服务隔离的候选版本,原始目标仓库保持不动。
整个流程分六步:准备隔离源码副本;复现失败的行为断言并保存证据;收集相关源码、请求有边界的模型提案;校验精确改动并构建候选;重放同一套浏览器检查;把证据和 diff 交给人工复核。
Temporal 负责持久化工作流后端。作者在调查进行中终止并重启了一个 worker,同一次调查最终完成,已捕获的基线也保留了下来,恢复证据记录了运行和阶段事件。这次测试用的是已知的夹具修复,SketchWild 视频走的则是本地 SQLite 队列。
SerpApi 提供可选的文档发现,搜索结果会被标注为发现片段,录制 SketchWild 调查时该功能处于关闭状态。GitHub Actions 自动跑仓库验证,ElevenLabs 只用于生成演示旁白,不是修复流水线的依赖。Sentry 埋点覆盖调查阶段、模型调用和错误,并对敏感数据做脱敏。
作者没有测出可靠的时间节省比例。他给出的收益是:证据收集可重复,交接更清楚——哪怕模型需要人搭把手。最新本地构建中,11个核心/传输测试和7个浏览器测试通过,另有 TypeScript 检查和生产构建;这些检查覆盖编辑校验、取消、修正来源、重放、连接恢复和桌面复核流程,但并不能证明模型可以自主修好任意Bug。
把 Gemma 跑在本地,意味着推理留在自己机器上。作者可以改上下文预算、检查结构化输出、调整提示词、换一个已安装的模型,而不用围绕某家托管服务商重建浏览器验证流水线。小模型在笔记本上又慢又容易出错,但能查看它的提案,帮他改进了文件名定位、拒绝了无改动编辑,也保住了那条有用的人工修正通道。
DawnPatch 采用 MIT 协议,仓库里包含应用、安装说明、自动化检查、测试证据和演示文档。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.