1. 07 9月, 2026 14 次提交
    • 陈泽健's avatar
      fix(performance): 全库扫描 order_by 兜底排查——26 处两段式改造防 MySQL 1038 · b21f2fe9
      陈泽健 提交于
      针对含大 JSON/TEXT 列 + 整行 ORDER BY 的列表查询做两段式改造(防 MySQL 1038 Out of sort memory),含非 performance 模块:
      - services 12 文件:case/api_test/execution(2处)/report/scheduler/security/security_report/deploy/device_sim/login_template/api_preset/performance(漏网点2处)
      - routers 5 文件:report_template/reports/scheduled_tasks/security_scheduled_tasks/stats
      - 白名单 13 处归档(聚合查询/无大列表),pytest 423 passed 零回归
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      b21f2fe9
    • 陈泽健's avatar
      docs(handoff): 性能测试记录提交推送闭环(67d87399)+ 剩余待办更新 · bab0b25b
      陈泽健 提交于
      - 文档头部更新:最近提交 67d87399 / 会话窗口 / 状态 → 全部闭环
      - 新增「2026-09-07 续2」:提交推送记录(10 文件 +825/-59,config.py
        hunk 级暂存仅截取 SCREENSHOT_RETENTION_DAYS,排除其他窗口文件)
      - 剩余待办更新:待办1 已闭环,保留 P2 全库 order_by 扫描 / P3 大 JSON 列拆表
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      bab0b25b
    • 陈泽健's avatar
      fix(performance): MySQL 1038 整行排序爆内存修复收官 + 截图清理闭环(7 处两段式 / 真实混合场景 E2E 确认目标机曲线) · 67d87399
      陈泽健 提交于
      待办① 截图清理坏测试修复:
      - config.py 新增 SCREENSHOT_RETENTION_DAYS(默认 3 天)定期清理配置
      - main.py lifespan 启动/停止截图定期清理循环(cleanup_screenshots_loop)
      - cleanup_service.py 新增定期清理循环实现
      - 新增 test_screenshot_cleanup.py(10 个用例),修复原坏测试
      - 5.60 已部署:截图 1.2G → 1.1M(1090 文件 / 1132MB)
      
      待办② 真实混合场景 E2E 确认目标机监控曲线:
      - 混合场景执行 perf_1c72c087(1804 快照,1797 带 targetResource)
      - 报告页目标机资源 CPU/Memory/Load 曲线 + 指标卡渲染正常
      - Java 进程瓶颈定位:ubains-meeting-api(CPU avg 377.4%/max 800%)
        + ubains-meeting-inner-api(424.2%/max 800%)
      
      待办③ 克隆任务清理:无遗留,无操作
      
      MySQL 1038 修复第三轮(报告查看 500,累计 7 处两段式):
      - get_report() 模式2:最新执行记录先取 id 再回查整行
      - get_report() 模式3 / _build_report_from_execution():快照先取 id 按序回查
      - get_task_snapshots():快照分页两段式(保留 offset/limit)
      - run_project_all() / get_project_task_ids():任务 id 两段式
      - 5.60 部署验证:GET /tasks/{id}/report 原 500 → 200
      
      问题处理/计划执行文档 4 篇归档(任务列表 500 + 报告查看 500)
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      67d87399
    • 陈泽健's avatar
    • 陈泽健's avatar
      feat(recorder): 真录制器与定位质量提升 Phase 1-5(引擎/路由/E2E/前端) · b80abae3
      陈泽健 提交于
      - 真录制引擎 recorder_engine.py:会话线程 + CAPTURE_JS 捕获 + expose_binding 上报 + WS 实时推送;
        修复主循环事件饥饿(page.is_closed() 不泵事件队列 → page.evaluate("1") 真实 CDP 往返)
      - recorder.py /save 三重 P0 修复(孤儿 except 语法错误 + 用例创建漏出 else 分支 +
        case_service NameError),重写为 CaseService.create + config 强制 auto_login 注入
      - element_locator /pages 页面注册表查询(直达 URL 下拉数据源)
      - 前端:Recorder.vue 真录制器页面(暂停=丢弃新捕获,保存走本地列表)、
        websocket.ts modulePrefix 支持、stepParser/IntentStepEditor 语义化步骤、elementLocate API
      - 新增 test_recorder_e2e.py 10 测试(本地 mock 页 + 独立 SQLite 全离线隔离);
        后端 408/408 全绿,前端 npm run build 零报错
      - config.py:RECORDER_ENABLED / RECORDER_SESSION_TTL / RECORDER_CANDIDATE_LIMIT
        (同文件截图保留天数配置属其他窗口,本次未含)
      - 文档:真录制器 PRD + 计划执行 + 语义化用例创建指南;HANDOFF_UI自动化 会话 51
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      b80abae3
    • 陈泽健's avatar
    • 陈泽健's avatar
      docs(handoff): 会话50 交接——截图瘦身已部署5.44 + PRD/计划文档归档 · 45a247b8
      陈泽健 提交于
      - HANDOFF_UI自动化.md:新增会话50章节(三态截图模式实现/测试/5.44部署验证记录 + 存量清理与5.202/5.60部署待办 + 登录卡死遗留P0)
      - 归档 定时任务截图瘦身 PRD 需求文档 + 执行计划文档(状态置已完成)
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      45a247b8
    • 陈泽健's avatar
      feat(screenshot): 定时任务截图瘦身(三态模式 + JPEG 压缩 + 过期自动清理) · 228c732a
      陈泽健 提交于
      - 默认 failure_only 模式(仅失败步骤截图,质量 60)
      - _should_capture_step 三态判定 + screenshot=False 总开关优先
      - start() 自动 _cleanup_expired_screenshots(SCREENSHOT_MAX_AGE_DAYS=14)
      - scheduler_service 注入 screenshot_mode=failure_only
      
      测试:pytest tests/test_screenshot_mode.py 15/15 pass + 后端全量 403/403 pass
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      228c732a
    • 陈泽健's avatar
      feat(performance): 混合场景超时误读消除与脱敏前缀保留及业务断言指引 · 9ea984a8
      陈泽健 提交于
      - 请求明细页 (RequestDetailPanel.vue):在 errors_only 采集模式下顶部展示黄色提示条,防止「全是超时」误读
      - 报告页 (ReportPanel.vue):执行汇总补充展示明细采集模式(on/errors_only/off)
      - 后端脱敏 (performance_executor.py):Authorization 头保留前 20 字符 + ***,便于核对 token 已携带,其余敏感字段仍整体脱敏
      - 后端服务 (performance_service.py/schemas):报告摘要序列化输出 request_detail_enabled 字段
      - 需求与问题处理文档:新增排查报告、执行计划、业务断言指引,更新 HANDOFF 交接记录
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      9ea984a8
    • 陈泽健's avatar
    • 陈泽健's avatar
      fix(performance): 混合场景CSV强制校验与登录监控记录+目标机监控开启与监控图表X轴修复 · 0aa655a5
      陈泽健 提交于
      混合场景执行安全:
      - performance_service 新增 _validate_run_preconditions:mix 未启用 CSV / CSV 空 /
        账号数<并发数 → HTTP 400(run_task 与 run_task_async 双入口)
      - performance_executor _run_mix:CSV 校验提升到 per_vu_login 之外(兜底封死直调路径),
        列映射缺 username/password 时 warning,per-VU 缺列拒绝
      - 登录三路计入 MetricsCollector(共享预登录 / per-VU 启动登录 / 随机池重登,
        api_summary 归「登录」),登录 QPS/成功率可见
      - TaskList.vue handleRun mix 无 CSV 前置拦截;schema + types 新增
        csvParameterizationEnabled/csvContent/perVuLogin 字段
      - CSV 模板改为前端 XLSX 动态生成(不再依赖部署静态文件)
      
      目标机监控开启:
      - docker-compose 设置 TARGET_MONITOR_ENABLED=true(根因:5.60 容器默认关闭,
        混合场景全程无目标机资源数据)
      
      监控图表 X 轴修复:
      - MonitorPanel 折叠面板零尺寸画布 init 后 resize 兜底(X 轴被压成窄条根因)
      - 资源/网络/目标机图表增加 dataZoom(inside + slider),保留用户缩放窗口
      - 运行中连续 10s 无目标机数据自动展开空态面板展示原因
      - 窗口 resize 时全部图表自适应
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      0aa655a5
    • 陈泽健's avatar
    • 陈泽健's avatar
      feat(ui-automation): 会议巡检升级为 navigate 直达用例(3/3 通过) · 1924d77f
      陈泽健 提交于
      - 会议巡检 3 条 drawer+click 弱用例升级为 meetingV3 Meetinginspection navigate 直达(登录页重挂载 + 12s 日历渲染稳定)
      - 页面无 .el-table/.el-pagination,断言改用 .el-calendar 日历标题 + 周期/会前巡检按钮(旧弱用例断言对象失效根因)
      - generate_meeting_inspect_cases.py 幂等生成(页面访问/日历数据/日历导航),删旧弱用例 ID e161109d/17aade9c
      - 探测结论固化:monitor/voice/meetingV2 微应用登录态不跨 hash 保留,运维区域/告警列表/转录列表/会议审批保持 drawer+click
      - 探测脚本 5 个沉淀 + HANDOFF 会话50 记录;已同步三台 5.44/5.202→413、5.60→415(无重启)
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      1924d77f
    • 陈泽健's avatar
      docs(ui-automation): 更新 HANDOFF 头部最近提交为 35a58b2e · 8ed78453
      陈泽健 提交于
      同步远程 HEAD(03ee164c,并行会话 performance 提交叠加其后)
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      8ed78453
  2. 02 9月, 2026 3 次提交
  3. 01 9月, 2026 9 次提交
    • 陈泽健's avatar
    • 陈泽健's avatar
      feat(performance): 混合场景 mix 每虚拟用户独立登录(CSV账号各自token + 登录重登替换) · 59948f7c
      陈泽健 提交于
      - 后端 HttpClient 新增 login_with_credentials(username,password) 与 _extract_token 静态方法
        - 复用 captcha uuid + SHA256 加密 + 签名;不写入 _tokens 缓存(token 由 executor 管理)
      - 执行引擎 per-VU 状态:_vu_tokens Dict[int,str] + _vu_tokens_lock + _vu_login_failed
        - _ensure_vu_token 异步幂等(run_in_executor 包裹同步登录),失败记入 _vu_login_failed
        - _resolve_csv_credentials 按 global_thread_idx 分配 CSV 行(idx % len 循环复用)
        - _mix_worker 启动各自登录;登录接口进随机池命中后替换该 VU 自己的 token
        - _send_request 新增 bearer_token 可选参 + 返回 Optional[str](登录 2xx 提取新 token)
        - _build_headers bearer_token 优先于 self._token;登录目标 bearer_token="" 签名且无 Authorization
        - _is_login_target 支持 url_override(识别随机池中的登录接口)
        - _run_mix 校验:CSV 未启用/缺 username/password 列/账号数 < 并发数 → 拒绝执行
        - execute() per_vu_login 时跳过共享预登录
      - Model/Schema 增加 per_vu_login 字段(默认 False)+ _ensure_columns 自动迁移
      - 前端 types perVuLogin + TaskList.vue「每虚拟用户独立登录」开关(仅 mix 显示)
      - 单测 TestPerVuLogin 13 条(各自token/重登替换/失败处理/CSV校验/共享回归)
      - 已部署 5.60(含 performance_tasks.per_vu_login 自动迁移);端到端由用户手动验证
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      59948f7c
    • 陈泽健's avatar
      docs(ui-automation): 精简 HANDOFF 文档至会话48核心内容(755行→66行) · 63ed9c69
      陈泽健 提交于
      - 删除会话47~36历史章节、时间线表格、关键约束/配置/启动运维/文档索引、老待办清单
      - 保留会话48双档(sut-explore缺口补齐 + 定时任务看门狗修复)核心记录
      Co-Authored-By: 's avatarClaude Fable 5 <noreply@anthropic.com>
      63ed9c69
    • 陈泽健's avatar
      feat(performance): 混合场景 mix 权重随机调度 + 执行时长膨胀修复 · 545ee9b4
      陈泽健 提交于
      - 执行引擎新增 _run_mix/_mix_worker:concurrency 个 worker 协程
        每次迭代按权重 random.choices 选接口发请求,前置登录复用 token
      - ScenarioApiConfig 新增 weight 字段(默认 1,weight=0 不参与随机),
        scenario_type 支持 mix;权重归一化边界健壮(sum<=0 回退均匀)
      - 前端 TaskList 新增「混合场景(Mix)」下拉 + 权重编辑列 + 序列化回填;
        ReportPanel mix 蓝色标签 + 接口明细表
      - 修复执行时长膨胀(实测 120s→285.7s 约 2.4×):目标机 SSH 同步采样
        阻塞事件循环,改 loop.run_in_executor 丢线程池;TARGET_MONITOR_ENABLED
        默认改 false。复验 durationActual=123.96s,请求比例≈权重(34/23/43%)零 4xx
      - 新增 mix 单测 11 条(权重归一化/冒烟)
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      545ee9b4
    • 陈泽健's avatar
      docs(performance): 混合场景压测 PRD 与执行计划 + 5.60 部署验收记录 · 35a0c281
      陈泽健 提交于
      新增 _PRD_混合场景压测.md 需求文档与 _PRD_混合场景压测_计划执行.md
      (含 6.1 短时长端到端验证 PASS、6.2 执行时长膨胀根因修复复验、6.3 前端部署验证);
      HANDOFF_性能测试.md 更新至 2026-09-01 会话进度。
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      35a0c281
    • 陈泽健's avatar
      feat(ui-automation): sut-explore 补齐会议运维+待办巡检缺口用例 8/8 通过 · 720bf764
      陈泽健 提交于
      - 盘点确认 7 个缺口功能,生成 8 个可执行 UI 用例写入 SQLite(generate_gap_cases.py 幂等)
      - 会议运维 6 用例 navigate 直达 + Tab 切换断言一次全绿
      - 待办巡检 2 用例:monitor 直达 URL 内层路由竞态定位(整页加载后固定落设备列表页、
        外层 monitor= hash/navPayload 均无法切 Checklist、_ensure_micro_app_loaded 误判就绪)
        → 改走首页「巡检报表」入口点击 [id="data_list.inspect_report"] 绕过,100% 稳定
      - 探测脚本沉淀:probe_gap_modules(_v2~v4)/probe_gap_meeting_tabs/probe_monitor_checklist_rerun
        /probe_sut_home_entries/probe_overview_modules/probe_funcenter
      - HANDOFF_UI自动化.md 记录会话48 全流程
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      720bf764
    • 陈泽健's avatar
    • 陈泽健's avatar
    • 陈泽健's avatar
      fix(定时任务): 看门狗失败执行也生成报告 + 单用例超时兜底 + Chromium 崩溃恢复 · 80bbb6ac
      陈泽健 提交于
      A 修复(看门狗失败执行也生成报告):
      - scheduler_service.py 新增 _has_any_case_results 辅助函数
      - UI/安全两条路径报告条件 run_ok -> run_ok or _has_any_case_results
      - 解决 5.44 每日任务连续 4 次看门狗失败、报告目录无一文件
      
      B 修复(定位并消除卡死点):
      - B1: case_results 写入 start_time(由实际耗时回推),支持定位卡死用例
      - B2: 用例级硬超时兜底(_case_start_mono + case_remaining_seconds,
            步骤/等待/微应用轮询均受用例剩余时间约束,防单用例无限挂起)
      - B3: Chromium 崩溃自动恢复(崩溃标记检测 + 重建页面复用 context
            保留登录态,失败步骤起重试,每用例最多恢复一次)
      
      部署配套:
      - deploy/docker-compose.yml: app 容器日志轮转 50m x 5
      - deploy_fix_560.py: 增加 scheduler_service.py / execution_service.py 上传
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      80bbb6ac
  4. 31 8月, 2026 8 次提交
    • 陈泽健's avatar
      docs(用例管理): 新增语义化自然语言执行现状评估 · 3a088e6a
      陈泽健 提交于
      记录『自然语言指明用例步骤 → 完整顺利执行』目标的现状、根因(执行器能力不对等 / keyword_matcher 不穿透 micro-app)与已尝试的优化(Phase 1-5)
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      3a088e6a
    • 陈泽健's avatar
      docs(ui-automation): 记录会话47 性能测试目标机监控增强与修复到 HANDOFF · 82152f9c
      陈泽健 提交于
      更新 HANDOFF_UI自动化.md 顶部会话 47:记录性能测试模块目标机监控
      增强(Batch A 多 PID 服务级聚合 + MySQL 趋势)与修复(Batch B JSTAT
      瞬时 CPU 采样,实测与 top 300%+ 一致)、5.60 部署、测试与推送状态;
      独立交接详见 HANDOFF_性能测试.md
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      82152f9c
    • 陈泽健's avatar
      docs(perf): 记录 Java 进程瞬时 CPU 监控修复会话进度到 HANDOFF · 4e19844c
      陈泽健 提交于
      更新 HANDOFF_性能测试.md:记录 Batch B(JSTAT 瞬时 CPU 采样修复)背景、
      修复方案、验证结果、5.60 部署与交接待办;更新最近提交/会话窗口/状态头
      (指向 ad4163bb 已推送 origin/platform-auto-test)
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      4e19844c
    • 陈泽健's avatar
      feat(perf): 目标机 Java 进程瞬时 CPU 采集 + 多实例服务级聚合与 MySQL 趋势 · ad4163bb
      陈泽健 提交于
      - target_resource_monitor.py: 新增 /proc/<pid>/stat 两次采样(JSTAT1/JSTAT2,间隔 0.2s)
        以 utime+stime tick 差值计算 top 口径瞬时 CPU%(100% = 单核,可超 100%),
        按目标机核数上限截断,采样缺失时回退 ps %cpu(修复压测中途重启 JVM 被
        ps 生命周期平均严重低估的问题,实测匹配 top 的 300%+ 数值)
      - _JAVA_PROCESS_KEYWORDS 新增 ubains-gateway/auth/modules-system/message-scheduling/mqtt
      - performance_executor.py: 多 PID 服务级聚合(按采样点求和、不补 0)+ pidCount/pids
        非破坏性字段 + mysql.series 趋势序列;schema 透传无需改动
      - 前端: types/performance.ts 类型扩展;ReportPanel.vue 实例 PID 列 + 两张 MySQL 趋势图
      - 测试: test_target_resource_monitor.py(JSTAT 瞬时 CPU 15 例)+ test_target_resource_summary.py(聚合 7 例)全通过
      - 文档: 新增 PRD 需求文档 + 计划执行文档(Java 服务多实例与 MySQL 容器趋势监控)
      
      已验证并部署 5.60:py_compile/pytest/前端真实页面冒烟通过,5.44 实测 8 核 clk=100 解析正确
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      ad4163bb
    • 陈泽健's avatar
      perf(executor): 执行耗时优化 P0/P1/P2(重试收紧+超时收紧+快速失败) · 426c01cd
      陈泽健 提交于
      10 条 UI 用例(含 7 条失败)执行耗时 24.8 分钟,根因 step_retry_count=2 ×
      多策略超时叠加(单条失败用例 ~210s)。三层优化:
      
      - P0: step_retry_count 默认 2→1(execution_service + playwright_executor + recorder)
      - P1: has-text 前置等待 25s→10s、表格行轮询 150s→30s、checkbox 轮询 40s→20s、
            iframe 点击 5s→3s
      - P2: _selector_exists_fast 快速失败探测(主页面/iframe/micro-app ≤500ms),
            _do_click/_do_fill/_do_check 入口元素不在 DOM 即跳过策略链
      
      单测 9 项 + 全量 352 passed 无回归;deploy_timeout_opt.py 部署三台;
      5.44 同一 10 用例定时任务实测 24.8min→10.2min(-59%),通过率 30% 无回归
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      426c01cd
    • 陈泽健's avatar
      docs(performance): 补充 2026-08-31 会话提交记录 · 43c86992
      陈泽健 提交于
      - 记录 HANDOFF 文档提交 df34c1c8
      - 记录 Vue placeholder 转义提交 11e1dd85
      - 更新性能测试模块当前状态与遗留事项
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      43c86992
    • 陈泽健's avatar
    • 陈泽健's avatar
      fix(scheduler): 新增僵尸执行常驻看门狗,杜绝执行线程死亡卡死调度 · 72db5e2e
      陈泽健 提交于
      背景:5.44 出现执行线程死亡但进程存活的「僵尸执行」——DB 记录卡 running
      29 小时,内存锁已释放但 DB 层 running 守卫(scheduler_service.py)永久挡死
      调度,定时任务 6 小时触发全部被跳过。启动期 recover_interrupted_executions
      只兜进程重启,无法兜线程死亡。
      
      实现(execution_service.py + main.py):
      - 新增常驻 watchdog_loop,每 60s 扫描 UI running/pending 执行
      - 双活信号:内存心跳(每用例完成后 touch)+ DB 结果数跨扫描增长
        (非绝对数量,存量结果不算存活)
      - 30 分钟无活信号判僵尸,标记 failed + 释放内存锁(set_running_execution)
      - 安全测试执行不纳入看门狗;5 分钟启动缓冲避免误杀
      
      验证:
      - 新增 tests/test_watchdog_stale_execution.py(9 例,全绿)
      - 5.202/5.60 已部署并清理各自 1 个僵尸执行(330/0 条结果),自动触发新回归
      - 5.44 等待当前 332 用例回归跑完后部署
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      72db5e2e
  5. 29 8月, 2026 4 次提交
    • 陈泽健's avatar
      style(frontend): Vue 模板占位符 JSON 示例引号转义(lint 合规) · 11e1dd85
      陈泽健 提交于
      - DeviceList.vue: 运行时参数 JSON 示例占位符转义
      - ApiCaseList.vue: 请求体 JSON 示例占位符转义
      - ApiPresetDialog.vue: headers/body/bodyTemplate 示例占位符转义
      - TaskList.vue: 请求头/CSV 映射/步骤占位符 JSON 示例统一转义
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      11e1dd85
    • 陈泽健's avatar
      docs(performance): 更新 HANDOFF 至 AI 分析资源四维度增强 + 部署验收 · df34c1c8
      陈泽健 提交于
      - 记录 2026-08-27 AI 分析报告资源使用分析四维度增强(执行机/目标机/Java 进程/MySQL)
      - 记录 2026-08-26 资源分析为空修复 + 执行跳转自动跳转监控页
      - 记录已提交推送(c73ffd58/2a6ecd8a/2093c083)与 5.60 部署真实验收结果
      - 踩坑表补充:资源数据统一走嵌套 stats.avgCpuPercent 结构
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      df34c1c8
    • 陈泽健's avatar
      feat(smart-locate): P1/P2 智能定位统一执行路径 + micro-app 递归穿透与状态确认 · 3a29883b
      陈泽健 提交于
      - playwright_executor 新增 execute_action 统一动作分发层(navigate/click/fill/select/
        hover/wait/scroll/press/check/uncheck/assert/screenshot/api_call),供 SmartLocateService
        复用,保证智能定位路径与正式执行路径行为一致
      - micro-app evaluator 重写:递归穿透嵌套 micro-app 与 shadowRoot,支持 :has-text/
        :visible/:nth-match;新增 check/uncheck 状态确认防假通过;fill 返回值确认
      - smart_locate_service 统一执行路径(execute_action + verify_step),字段透传
      - router /verify-step 真实验证:非法动作 400、业务失败返回 success=False
      - 前端 Cases.vue/elementLocate.ts 步骤转换增加字段透传(verify/expected/semantic)
      - 新增 test_micro_app_adapter / test_verify_step 单元与契约测试
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      3a29883b
    • 陈泽健's avatar
      fix(scheduler): 定时任务僵尸执行启动恢复 + DB 级重叠兜底守卫 · eba91eac
      陈泽健 提交于
      - execution_service 新增 recover_interrupted_executions:启动把超龄 running/pending
        UI 执行标 failed,同步其 pending/running 用例结果
      - scheduler_service run_task_once 新增 DB 级兜底:内存锁为空但 DB 仍有 running/pending
        UI 执行时跳过触发并推进 next_run_at
      - main lifespan 启动调用恢复,打印清理日志
      - 新增 test_scheduler_recovery 5 项测试
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      eba91eac
  6. 27 8月, 2026 2 次提交
    • 陈泽健's avatar
      docs(ui-automation): 记录会话43 R7 执行器修复三台部署 · 7e8d7d20
      陈泽健 提交于
      HANDOFF_UI自动化.md 更新:会话43 薄弱模块 R7 执行器修复(commit a63d090c)
      按安全流程部署 5.44/5.202/5.60,三台容器内 SHA 一致、健康检查通过;
      会话时间线新增 43;待办勾选 R7 三台部署完成并新增 P1/P2 待部署。
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      7e8d7d20
    • 陈泽健's avatar
      feat(perf): AI 分析报告资源使用分析四维度增强(Java 进程 + MySQL) · c73ffd58
      陈泽健 提交于
      - 资源使用分析扩展为四维度:执行机整体 / 目标机整体 / Java 进程 / MySQL
      - 新增 _extract_java_process_stats / _extract_mysql_stats / _fmt_num 辅助方法
      - Chapter 四重写为 4 小节,瓶颈表新增 Java 进程与 MySQL 条目,建议表同步
      - 更新 LLM Prompt 第四章要求四维度分析,资源表头改 [资源,指标,值,状态]
      - 修复 _rule_based_analysis 中 exec_cpu_avg / exec_cpu_max 未定义问题(上一轮遗留)
      - 测试新增 4 个资源维度用例,共 20 passed,全量 295 passed
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      c73ffd58