Melech Debug Mode 是一个用于在用户现有 Chrome 标签页中对本地 UI 进行端到端调试或验证的技能协议。其核心目标是让调试过程围绕真实的浏览器端到端路径展开,而不是依赖测试框架或直接调用。
用途 该技能用于调试或验证本地 UI 的端到端行为。它要求端到端边界必须是浏览器中的本地 UI。单元测试、集成测试、AI 测试或测试框架运行,即使使用了真实模型、工具、沙箱、文件系统或后端,也不被视为端到端。直接调用、脚本、合成请求或孤立端点同样不算。在首次浏览器尝试之前,不应创建或运行测试框架;测试和直接调用仅作为浏览器复现后的补充诊断手段。如果请求的行为无法通过本地 UI 执行,该技能会说明它不提供对应的端到端路径,而不会将测试框架重新标记为端到端。
主要能力 技能提供了一套完整的调试协议,包括:选择浏览器驱动、定义一次完整尝试、启动收集器、添加探针、证明探针已加载、运行端到端、读取证据、根据证据行动、代码变更后重新运行端到端,以及清理。它支持 autopilot 和手动两种模式。autopilot 默认用于所有本地 UI 工作流,通过 melech-live-browser 技能附加到现有 Chrome 标签页;手动模式作为回退方案,仍使用运行中的本地 UI 和相同的探针。技能还提供了 dm 命令行工具用于管理临时收集器,支持启动、查看状态、读取日志、停止会话和查看所有活动会话的快照。
使用方式 使用前需定位已安装的技能目录,确认 python3 和 portless 存在。如果缺少 Portless,需先运行 npm install -g portless。首次使用设置时运行 portless doctor,然后通过 source <skill-dir>/scripts/dm.sh 和 dm start 启动收集器。dm start 会输出 session_id、session_dir、log_endpoint、health_url、events_file 以及 backend_host/backend_port,需保存这些信息。在编辑应用代码前,通过 curl 确认收集器响应。探针通过向 log_endpoint 发送小型 JSON 对象来添加,采用 fire-and-forget 方式,失败被吞掉,不影响产品行为。每个临时编辑需标记为 DEBUG_MODE:<session-id>:<probe-id>。在端到端运行前,需证明长时间运行或预构建的目标已加载探针。端到端尝试使用 run-1 开始,每次重试、补充诊断和变更后验证递增 run ID。读取日志使用 dm logs <session-dir> --run <run-id>。根据证据行动,证据不完整时修订探针并以新 run ID 重复。代码变更后,保留相关探针并重复相同的端到端工作流。最后清理所有 DEBUG_MODE 探针和调试专用改动,停止浏览器操作而不关闭用户拥有的标签页,运行 dm stop <session-dir> 并确认 removed: true。
适用场景 适用于需要在用户现有 Chrome 标签页中调试或验证本地 UI 端到端行为的场景。特别适合需要观察页面或组件状态、渲染和交互,以及服务器处理程序中的持久化、验证和集成等问题的调试。也适用于需要临时运行时探针来收集证据,同时避免影响产品行为的场景。
限制 端到端边界严格限定为浏览器中的本地 UI,其他形式的测试或调用不被视为端到端。探针不能发送凭据、令牌、Cookie、授权头、个人数据、完整请求体或无关状态。收集器必须保持本地,不得启用 LAN 模式、隧道、Tailscale、Funnel、ngrok 或其他远程暴露。如果运行时陈旧,只有在现有跟踪、持久化输入、审计记录或其他权威边界记录捕获了相同的决定性事实时,才能替代探针。重启目标服务时需谨慎,如果用户拥有该进程或重启可能中断活动工作,需停止并询问。补充诊断只能在首次浏览器端到端尝试之后进行,且不能替代端到端门禁或变更后验证。