用途:当用户要求对 Coder 的 PR、分支或 stack 做 dogfood、UAT、手动验证或端到端测试时使用。核心目标是启动可靠的本地 dogfood 实例,并根据 PR 上下文决定验证内容,而不是硬编码固定场景。
主要能力:先识别待测 PR、分支、stack 或 SHA,阅读标题与描述,检查改动文件和相关测试,总结行为变化,再决定通过 UI、API、SQL、日志、浏览器自动化、桌面自动化或 computer use 验证哪些内容。启动使用 ./scripts/develop.sh;多 worktree 隔离运行可用 CODER_DEV_PORT_OFFSET=true ./scripts/develop.sh 或 ./scripts/develop.sh --port-offset,额外服务端参数放在 -- 之后,如 --trace。默认端口:API 3000、Web UI 8080、workspace proxy 3010、metrics 2114,可用 CODER_DEV_PORT、CODER_DEV_WEB_PORT、CODER_DEV_PROXY_PORT、CODER_DEV_PROMETHEUS_PORT、CODER_DEV_PORT_OFFSET、CODER_DEV_ACCESS_URL、CODER_DEV_ADMIN_PASSWORD 覆盖。就绪信号为 GET /healthz 成功或脚本输出 Coder is now running in development mode,后者更适合 UI 验证。
适用场景:验证 PR 改动的 UI 渲染与交互、API 行为、SQL 状态与持久化、服务端日志、浏览器或桌面流程、workspace 或 agent 流程、重启与恢复行为,以及用户要求的迁移验证。若 PR 涉及 Coder agents、AI chat、AI Gateway、AI Bridge、provider 或模型配置、工具调用、MCP、会话持久化或 agent UI,应验证真实用户工作流,优先用 computer use 做 UI 验证并截图。provider 凭据复用环境变量,禁止打印、截图、提交或发布密钥;常规测试优先使用小型、未开启思考的模型。迁移验证需记录迁移前版本、保留状态、切到目标版本后验证。
限制与注意:就绪前不要开始浏览器或桌面验证;失败时先看 develop 输出中 api、site、proxy、ext-provisioner、prometheus 等日志。清理优先 Ctrl+C 优雅停止,端口占用用 lsof -iTCP:<port> -sTCP:LISTEN 定位后仅终止该进程,数据库问题优先用 --db-rollback、--db-continue、--db-reset,仅在确实需要时删除 .coderv2。仅当用户要求或明确允许时才向 GitHub 发评论。最终需报告测试的 PR/分支/SHA、启动方式、URL、provider 与模型、通过和失败场景、未测试内容、证据位置及服务是否已停止。