更新日志¶
本文件记录了项目的所有重要变更。
格式基于 Keep a Changelog, 本项目遵循 语义化版本。
[1.2.0] - 2026-07-09¶
新增¶
Agent 管线新增 agent_execute 和 agent_diagnose 工具¶
- agent_execute — 新增 Agent 工具,允许 AI 在对话中直接执行 Playwright 测试并返回通过/失败统计。支持指定
testDir、grep(用例名过滤)、timeout(超时)、retries(重试次数)。失败时主动建议调用 agent_diagnose 进行分析。 - agent_diagnose — 新增 Agent 工具,允许 AI 在对话中分析测试失败原因。接收
title(测试名称)和error(错误信息),返回根因分析、修复建议、置信度。置信度低于 50% 时提示用户人工复核。 - Agent 管线工具架构重构:从 if-else 链改为
Map<string, AgentToolDef>策略模式,新增工具仅需追加一条set()调用。 - agent_generate 增强:LLM 响应中的代码块自动提取并保存到
tests/目录,自动从test.describe()/test()提取文件名并避免重名冲突。
LLMService 增强¶
- 重试机制:
fetchWithRetry()替代裸fetch()— 对 5xx 服务端错误和网络异常自动重试(最多 5 次),指数退避(1s → 2s → 4s…)。4xx 客户端错误和超时不重试。 truncated标志:chatWithTools()/chatWithToolsStream()/chatWithAgentLoop()/chatWithAgentLoopStream()均新增truncated?: boolean字段,指示 LLM 响应因max_tokens限制被截断。responseFormat支持:chat()/chatWithTools()/chatStream()/chatWithToolsStream()/chatWithAgentLoop()/chatWithAgentLoopStream()均新增可选responseFormat参数,支持{ type: 'json_object' }等格式强制。- 启用
chat_template_kwargs(thinking)时,若同时指定了responseFormat则自动禁用,避免冲突。
DiagnosisService 增强¶
- Agent 循环流式诊断:
diagnoseStream()从chatStream()升级为chatWithAgentLoopStream(),支持工具调用(读源码、查日志等)+ 实时打字机效果。诊断过程中可接收tool_call/tool_result事件。 - 强制 JSON 输出:
diagnose()和diagnoseStream()调用 LLM 时强制responseFormat: { type: 'json_object' },提高 JSON 解析成功率。 - 分析模式追踪:诊断结果新增
analysisMode字段追踪实际使用的分析模式('agent' | 'single' | 'fallback')。 - 移除了
diagnoseStream()中的持久化诊断结果快路径(persisted diagnosis shortcut),确保每次诊断都是实时分析。 - 默认
maxTokens从 2048 提升至 4096。
对话管理增强¶
- Assistant + Tool Call 合并:
convertMessages()将连续的 assistant 消息与 tool_call 消息合并为单条 assistant 消息,避免 LLM 协议报错。 - 每轮思考内容:
sendMessage()在工具调用前存储本轮中间 assistant 消息(含思考过程),使存储结构更完整;清洗<think>标签避免前端双重显示。 - agent_generate 后处理:
sendMessage()在 LLM 回复完成后自动提取代码块并保存文件,通过 SSE event 通知前端已保存的文件路径。
Dashboard 增强¶
- 聚类无结果提示:
FailureAnalysisPanel和ReporterPanel新增clusterAnalysisDone状态。当 AI 聚类分析完成但无结果时,显示友好提示信息("各测试错误关键词无重叠,无法达到聚类阈值"),而不是一直显示"开始聚类分析"的空白提示。 - 测试状态优化:
App.tsx中运行结束时 running 状态的用例恢复为pending而非idle,保留可重试语义;修复 test end 事件重置运行时状态。 - Thinking 内容显示修正:
ChatPanel中流式 done 事件保留流式过程中已正确设置的思考内容,不再用累积的 thinkingContent 覆盖。 - 默认 maxTokens:
AgentConfigDialog从 2048 改为 4096。
MCP 配置变更¶
- 内置 MCP Presets 超时时长统一从 5-10s 提升至 30s,适配大文件/复杂响应场景。
playwright-mcp启动方式从node node_modules/...改为npx @playwright/mcp,简化路径依赖。
变更¶
UnifiedAIService — 合并 ChatService 和 AgentService¶
- UnifiedAIService — 统一门面类,将 ChatService(对话管理 + MCP)和 AgentService(测试规划/生成/修复)合并为单个 UnifiedAIService。
- 单一
updateLLMConfig()替代分别调用ChatService.updateLLMConfig()和AgentService.setLLMConfig() - 单一
setProjectRoot()替代分别调用两个服务 ChatService和AgentService保留为向后兼容的别名- DI 容器:单一注册
UnifiedAIService,旧令牌指向同一实例 - RouterDeps:
agentService+chatService字段 → 单一aiService字段 - 源码:
src/ai/ai-service.ts(693 行,直接持有所有子模块)
移除¶
AgentHistoryManager模块完全移除,相关方法getHealHistory()/listPlans()从AgentService、UnifiedAIService中删除。agents-listCLI 命令 移除(agents list子命令及独立的agents-list命令均不再可用)。agent_get_heal_history/agent_list_plansAgent 工具从工具注册表中移除。- 持久化诊断快路径:
diagnoseStream()中从 runId/testId 加载持久化诊断结果并直接返回的短路逻辑移除。
1.1.1 (2026-05-24)¶
新功能¶
- 新增 Chat API,支持 MCP(模型上下文协议)集成
- 新增测试发现 REST API 端点
- 新增
diagnoseWithHeal()方法,用于自动修复失败测试
Bug 修复¶
- 修复 DashboardServer 构造函数参数处理
- 修复 trace、annotations、tags、artifacts、visual 命令的 CLI 子命令语法
[1.1.0] - 2026-05-20¶
新增¶
Agent 代理系统¶
- AgentService - AI 驱动的测试创建和修复代理系统
planner.ts- 测试规划代理:根据功能描述生成结构化测试计划generator.ts- 测试生成代理:将测试计划转换为 Playwright TypeScript 代码healer.ts- 测试修复代理:分析失败测试并生成修复补丁index.ts- AgentService:统一管理,支持项目上下文加载- CLI 命令 - 新增 Agent CLI 命令
agents init- 初始化代理定义(支持 VSCode/Claude/OpenCode)agents plan- 使用 Planner 代理生成测试计划agents generate- 从测试计划生成 Playwright 测试代码agents heal- 使用 Healer 代理修复失败测试agents list- 列出生成的测试计划- REST API - 新增 Agent API 端点
GET /api/v1/agents/config- 获取代理配置PUT /api/v1/agents/config- 更新代理配置GET /api/v1/agents/project-context- 获取项目上下文信息POST /api/v1/agents/init- 初始化代理定义POST /api/v1/agents/plan- 生成测试计划POST /api/v1/agents/generate- 生成测试代码POST /api/v1/agents/heal- 修复失败测试POST /api/v1/agents/apply-patch- 应用指定补丁GET /api/v1/agents/plans- 列出测试计划GET /api/v1/agents/heal-history- 查看修复历史- 项目上下文 - 自动项目上下文加载
- 解析 playwright.config 获取 baseURL、timeout、testDir、viewport
- 从 package.json 检测技术栈(React、Vue、Angular、Svelte、Next.js 等)
- 自动发现测试 Fixtures
- 修复历史 - 持久化修复历史,自动清理(最多 100 条)
[1.0.12] - 2026-05-18¶
修复¶
- 修复冗余配置异常
[1.0.10] - 2026-05-13¶
修复¶
- 修复 lint 和 test 异常,解决 Web UI 和 CLI 不统一的问题
[1.0.9] - 2026-05-09¶
变更¶
失败分析优化¶
- FailureAnalysis - 优化失败分析与诊断增强
- 改进失败原因分类逻辑
- 增强诊断结果准确性
- 修复 FailureAnalysis 展示问题
不稳定用例分析优化¶
- Flaky 分析 - 优化稳定性用例分析
- 改进不稳定用例检测算法
- 修复 Flaky Test 展示问题
- 增强历史数据追踪
用例隔离增强¶
- 隔离策略 - 增强用例隔离逻辑
- 支持自定义"不稳定用例"已隔离用例出入标准
- 优化隔离判定参数配置
- 改进隔离/释放操作流程
AI 分析优化¶
- AI 诊断 - 优化 AI 诊断结果持久化存储
- 改进诊断结果存储机制
- 增强诊断结果持久化
- 优化 AI 分析结果展示
报告改进¶
- HTML 报告 - 优化报告展示
- 支持执行器中用例排序
- 优化 HTML 报告展示
- 修复报告详情中截图和视频打开错误
移除¶
- 删除无用文件
[1.0.8] - 2026-05-06¶
新增¶
AI 智能诊断¶
- Diagnosis 模块 - 完整的 AI 智能诊断功能模块
cluster.ts- 失败测试聚类分析context-enricher.ts- 测试上下文信息增强knowledge-base.ts- 知识库管理- 智能失败原因分析和修复建议
- 支持多维度失败模式识别
Flaky 测试智能分析¶
- Flaky 分析增强 - Flaky 测试智能分析系统优化
causal-graph.ts- 因果关系图分析predictor.ts- Flaky 测试预测器quarantine-strategy.ts- 隔离策略管理trend.ts- 趋势分析classifier.ts- Flaky 测试分类器correlation.ts- 相关性分析root-cause.ts- 根本原因分析
[1.0.7] - 2026-04-29¶
新增¶
Flaky 测试管理增强¶
- Flaky 模块 - 增强 Flaky 测试管理功能
- 改进不稳定用例检测算法
- 优化隔离策略
- 增强历史数据追踪
[1.0.6] - 2026-04-24¶
新增¶
实时报告¶
- Realtime 模块 - 新增实时报告功能
- 实时测试进度推送
- WebSocket 连接管理
- 事件广播机制
[1.0.0] - 2026-04-11¶
新增¶
核心功能¶
- Orchestrator - 智能测试编排,支持自动测试发现和智能分片
- Executor - 通过 Playwright CLI 的测试执行引擎
- Reporter - 全面的测试报告系统
- FlakyTestManager - 自动检测和隔离不稳定用例
- Web Dashboard - 测试管理的可视化界面
- CLI 工具 - 完整的命令行界面
查看完整更新日志请访问 GitHub Releases。