跳转至

更新日志

本文件记录了项目的所有重要变更。

格式基于 Keep a Changelog, 本项目遵循 语义化版本

[1.2.0] - 2026-07-09

新增

Agent 管线新增 agent_execute 和 agent_diagnose 工具

  • agent_execute — 新增 Agent 工具,允许 AI 在对话中直接执行 Playwright 测试并返回通过/失败统计。支持指定 testDirgrep(用例名过滤)、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 增强

  • 聚类无结果提示FailureAnalysisPanelReporterPanel 新增 clusterAnalysisDone 状态。当 AI 聚类分析完成但无结果时,显示友好提示信息("各测试错误关键词无重叠,无法达到聚类阈值"),而不是一直显示"开始聚类分析"的空白提示。
  • 测试状态优化App.tsx 中运行结束时 running 状态的用例恢复为 pending 而非 idle,保留可重试语义;修复 test end 事件重置运行时状态。
  • Thinking 内容显示修正ChatPanel 中流式 done 事件保留流式过程中已正确设置的思考内容,不再用累积的 thinkingContent 覆盖。
  • 默认 maxTokensAgentConfigDialog 从 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() 替代分别调用两个服务
  • ChatServiceAgentService 保留为向后兼容的别名
  • DI 容器:单一注册 UnifiedAIService,旧令牌指向同一实例
  • RouterDeps:agentService + chatService 字段 → 单一 aiService 字段
  • 源码src/ai/ai-service.ts(693 行,直接持有所有子模块)

移除

  • AgentHistoryManager 模块完全移除,相关方法 getHealHistory() / listPlans()AgentServiceUnifiedAIService 中删除。
  • agents-list CLI 命令 移除(agents list 子命令及独立的 agents-list 命令均不再可用)。
  • agent_get_heal_history / agent_list_plans Agent 工具从工具注册表中移除。
  • 持久化诊断快路径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