Commit Graph
52 Commits
Author SHA1 Message Date
butubb 850d2e2e66 feat: 最大执行步骤可配置——AI 控制台 ⚙ 配置弹窗新增「最大执行步骤」输入(1-200,默认 40),存 app_meta(agent_max_steps),Agent 线程运行时覆盖 agent.s.max_steps;此前仅环境变量 AGENT_MAX_STEPS 可改 2026-09-06 09:26:53 +08:00
butubb edfd529c59 feat: 正式池断联设备自动重连——①扫描线程每轮顺带对断联的网络设备 adb_connect_light(幂等,连上即恢复,无需人工;此前只有启动时预连接一次,断联后不会自己回来);②断联设备不删不进待连接池(pending 语义=未授权新设备),GET discovery 返回 pool_offline(serial/型号/备注);③POST /api/devices/discovery/reconnect 手动立即重连;④发现面板加「设备池断联设备」区块(自动重连中 + 立即重连按钮) 2026-09-05 09:58:42 +08:00
butubb 5681989194 feat: 经验库每日 AI 巡检 + 管理面板——①experience_audit 表:逐条评审(具体可执行/无过时坐标/非对话续语/配方与序列一致 checklist),keep 直接归档、delete 标 pending 待人工,绝不自动删;人工 kept 后不再重复建议;②web_server 注册每日 03:47 巡检 job(Asia/Shanghai);③API:经验列表(含巡检建议)/确认删除/保留/手动触发巡检;④AI 控制台右上角「🧠 经验库」面板:经验卡片 + 建议徽章与理由 + 删除(confirm)/保留按钮 2026-09-04 15:53:08 +08:00
butubb 5145f83f06 feat: AI 控制台增强——①de_read_clipboard 剪贴板回读工具;②任务可中断(stop_event 循环检查点 + API stop + 前端■停止按钮);③智能滚动(回看历史不被打断,贴底才跟随);④右侧实时画面(MJPEG 流自动跟随操作设备,可手动选择) 2026-09-04 13:32:35 +08:00
butubb ce4e5464b9 feat: AI 控制台会话化 + 视觉优化——①多轮对话连续性(后端 history 持久化 12 轮,Agent 注入历史上下文,DeepSeek 式会话:新建会话才清空);②聊天区改浅色(DeepSeek 风格,图片文字清晰);③截图点击放大查看 2026-09-04 13:18:36 +08:00
butubb e24458a085 feat: AI 控制台升级为顶级 Tab——DeepSeek 风格聊天界面(气泡+流式渲染+思考折叠),实时 MCP 步骤卡片(工具/参数/截图缩略),SSE 流式输出(delta/step/done/error 事件),配置模态(模型/Key/设备前端可配);工具页旧子栏移除 2026-09-04 13:09:34 +08:00
butubb fea5a57fc3 feat(M2): Web AI 控制台——工具页新增子分栏:模型/Key/设备前端可配置(app_meta 存储,key 打码回显),指令执行 + 步骤流轮询(含截图缩略)+ 回答展示;Agent 加 on_step 回调、后台线程单实例运行 2026-09-04 12:54:17 +08:00
butubb 441ff7c7da feat: 设备分组移入工具页(原顶级 tab 删除)——工具页新增「设备分组」子分栏,分组管理入口与其他设备工具聚合 2026-09-04 10:15:44 +08:00
butubb 22ba9272bd feat: 全站默认只看在线——监控页/大屏/待连接池同步过滤离线设备(可切换查看全部);18051 main 旧实例已停止(STF 已删,旧代码无保留意义) 2026-09-01 08:58:21 +08:00
butubb ac7997176d feat: 设备池默认只看在线——离线旧条目(IP 已变的幽灵设备)默认隐藏,在线优先排序;「只看在线」开关可切换查看全部(含离线/停用) 2026-09-01 08:54:06 +08:00
butubb 4efe17c1c9 feat: 设备自动发现——定时扫描局域网+Tailscale 网段开放 adb 5555 的设备进入待连接池,用户确认后才加入正式设备池(不自动连接);socket 并发探测+adb 短超时验证(state=device 过滤 unauthorized),配置存 app_meta 可前端调整;配套:adb_connect_light 验证短超时、DISABLE_SCHEDULER 回归开关 2026-08-30 10:57:07 +08:00
butubb 1e39f5490a fix: 大屏触控优化——①点击错位:ctrl-img object-fit:contain 时图片绘制区小于盒子(居中黑边),坐标换算改为按实际绘制区域,黑边点击忽略;②滑动卡顿:tap/swipe/key/text 每次 u2.connect 重建连接(1-3s 握手),加 60s 连接缓存,失败自动清缓存重建(实测点击 2.97s→1.13s) 2026-08-20 13:22:21 +08:00
butubb 2a3c748964 fix: 工具页剪贴板注入无反应——injectClipboard 函数在阶段3清理时被误删,点击按钮 JS 报错;补全函数(校验→ClipInject 通道 API→逐台结果表+toast 汇总),帮助文案同步更新 2026-08-20 10:40:49 +08:00
butubb 265e47a1f4 fix: 测试此步骤弹窗全链路修复——closeTestModal 恢复(阶段3误删导致关不掉)、test-overlay 层级 1200(高于编辑器/元素抓取弹窗)、tasks_api 补 _log(后端500)、GenericStepsWorker 旧签名调用修复(测试执行失败) 2026-08-19 15:00:27 +08:00
butubb ce47a5b83d refactor: web_server 模块化拆分(web/ 蓝图包 auth/monitor/tasks/admin/tools/devices/apks/tailscale + context/common,web_server 1796→193 行仅留装配与启动)+ 大屏优化(网格 5s 轮询、弹窗独占缩略图、流支持 q/fps)+ 三修复(MIUI 屏幕状态检测改 dumpsys power、补 ADB_PATH 导入修复一键亮屏、renderGrid 增量渲染不重载缩略图) 2026-08-19 14:55:29 +08:00
butubb e07b339a51 feat: 大屏增强——一键亮屏按钮、卡片显示设备名+IP+熄屏状态(thumb 响应头 X-Screen-State)、点击卡片进入设备操作弹窗(实时流+触控+按键+文字),工具页远程看屏子分栏移除并入大屏 2026-08-19 14:17:33 +08:00
butubb c78f17d72f feat: 监控大屏(/wall 全屏深色控制室风格:设备卡片网格+缩略图轮询+统计+时钟,缩略图 360px/q55 每 2.5s 一帧 20 台仅 ~0.2 核 CPU)+ /api/screen/thumb 接口 + 导航栏大屏入口 2026-08-19 14:13:15 +08:00
butubb 83ba489f57 feat: 前端整体改版(仪表控制台主题:自托管 Bricolage Grotesque+IBM Plex Mono 字体、暖纸底+墨色+深青主色、卡片/表格/徽章/模态框/Toast 全面细化、Tab 切换动画)+ fix: showTab 硬编码 tab 列表移除维护后索引错位、tools 分支调用已删的 loadStfDevMgmt、导航移除失效维护Tab 2026-08-19 14:03:02 +08:00
butubb 6f6093842c feat: 设备型号采集展示(devices 表 model 列+getprop 采集+管理页型号列/采集按钮+监控页兜底)+ fix: 监控页设备列错位(离线标签残留 td)、appver 端点误删恢复、appver 只查在线设备用轻量连接防挂起 2026-08-19 13:53:27 +08:00
butubb a5ce57b6fd 阶段3: 摘除 STF——删除 stf_client/stf_device_mgmt 与全部引用(STF 容器重启/设备管理/强制释放占用/agent 按钮/占用列),调度与设备管理完全基于本地设备池+adb;错误类迁入 device_worker,create_worker 去 stf 参数 2026-08-18 08:08:32 +08:00
butubb 98244d8161 feat: 设备池管理面板(新增/停用/删除/一键重连,调度数据源规范化入口)+ STF 设备管理增删桥接同步设备池(迁移期) 2026-08-18 08:02:13 +08:00
butubb 645938b305 阶段2: USB 远程 adb server 打通(220 host 网络 5037 全接口监听,无需改 220)+ 自建远程看屏(MJPEG 流 + u2 触控 tap/swipe/key/text,ws-scrcpy 不在 npm 改自建) 2026-08-17 16:50:12 +08:00
butubb c111cb9a5e fix: STF未就绪设备纳入维护终端列表(adb可达但agent启动失败,标记stf_not_ready)+ 卸载/检查agent自动先connect 2026-08-17 11:02:43 +08:00
butubb a51857d143 feat: 步骤新增剪贴板注入(可注入+粘贴,批量发链接场景)+ adb终端快捷命令 tcpip 5555 转网络调试 2026-08-15 15:53:31 +08:00
butubb 17f849f723 feat: STF设备管理彻底删除(脚本+断开+STF API清记录)+ 一键重连(后台跑connect脚本)+ 跳过原因日志区分离线/未就绪 + SSH超时错误分类 2026-08-15 15:22:55 +08:00
butubb e12219c979 feat: 强制安装APK(推送+pm install 绕过厂商弹窗)+ 定位设备(亮屏+大字定位页,结束定位关闭浏览器含后台)+ 一键亮屏/息屏(并发全部设备) 2026-08-15 15:03:01 +08:00
butubb 060157ea1a refactor: 前端JS拆分为8个模块(base/list/monitor/editor/tasks/tools/apps/admin,按依赖顺序加载)+ 删除废弃文件(start_web.bat/main.py/fix_web.bat/cleanup.py,web已全覆盖)+ 文档同步 + 修复/api/summary缺导入 2026-08-11 14:53:04 +08:00
butubb 136613bc12 refactor: 列表统一为 setListPager 搜索+分页+排序(_lpSort 升序/降序/取消,中文数字感知,空值排后);监控设备表并入统一排序;STF设备管理/应用版本管理接入统一列表 2026-08-11 14:12:52 +08:00
butubb 3bd56b4f59 feat: 工具Tab新增应用版本管理(按包名并发查询所有设备安装版本)+ 文档同步更新(README/API/ARCHITECTURE/DEPLOY:工具Tab各工具、条件判断if_el+OCR、STF设备管理、.env密钥配置) 2026-08-11 10:57:14 +08:00
butubb 5dd605e3a0 feat: 工具Tab新增STF设备管理(读写220脚本DEVICES列表+docker adb connect/disconnect,220侧timeout兜底防卡死)+ 修复设备列表:5555重复显示 2026-08-11 10:50:41 +08:00
butubb 8e23541380 refactor: 应用Tab整体并入工具Tab(应用管理/设备已装应用成为工具子分栏),移除独立应用导航 2026-08-11 10:42:32 +08:00
butubb 2f2d8cc184 feat: 条件判断步骤(if_el 双分支:找到/未找到各执行独立步骤,可嵌套循环/条件;OCR识别选择器匹配图片文字,RapidOCR 跨平台实现含命中点击)+ 动作编辑器布局优化(操作库分组/加宽、任务弹窗加宽) 2026-08-11 10:38:47 +08:00
butubb 159649b6a0 refactor: adb远程终端与Tailscale管理从维护页移至工具Tab(维护仅保留STF服务),设备列表共享缓存+复用esc 2026-08-11 10:00:15 +08:00
butubb 2f1003bf1f feat: 新增工具Tab - 剪贴板注入(多选本地adb/STF设备批量注入文字,u2 setClipboard 实现,实测支持中文/引号/换行) 2026-08-11 09:53:32 +08:00
butubb cff0fc6a79 feat: 任务/应用/维护页统一页内子分栏(showSubTab 泛化),维护页首拆子分栏;模板自动重载(TEMPLATES_AUTO_RELOAD) 2026-08-11 09:38:29 +08:00
butubb 6051c5c2fd fix: Tailscale 设备表接入统一分页/搜索逻辑(setListPager),修正 IP 可修改的过时提示文案 2026-08-11 09:19:41 +08:00
butubb de66c6194b feat: 维护页 Tailscale 管理(设备列表/改名/授权/密钥不过期/设置IP/auth key,独立模块 core/tailscale_client.py)+ 密钥迁移 .env(STF_TOKEN/WEB_SECRET_KEY/TAILSCALE_API_KEY 不再入库)+ 修复设备更新端点(/device/{id} 405,改用 /name /authorized /key 专属端点)+ auth key description 仅 ASCII 2026-08-11 09:06:59 +08:00
butubb 06a9df111a feat: 用户权限系统(权限位/管理员全权限/前端隐藏/最后管理员保护) 2026-08-11 08:27:33 +08:00
butubb 794f40a880 feat: 调度简单设置(频率选择器)+ 运行窗口 + 下次运行列 2026-08-11 08:27:33 +08:00
butubb 3320035c9e feat: 维护 Tab(STF 容器一键重启 + adb 远程终端,含设备快捷选择/卸载 agent/重连) 2026-08-11 08:27:33 +08:00
butubb 8a3cd67a97 fix: 设备异常状态清除(清除异常/一键清除,检查与更新原子化防竞态) 2026-08-11 08:22:24 +08:00
butubb 8a675923cd feat: 失败任务汇总 - /api/summary + 监控页异常面板
- 新增 /api/summary:各状态计数 + 异常设备列表(last_error/任务/重试次数/时间)
- 监控页新增"异常汇总"面板:显示失败/异常设备及错误信息,方便长期运行观察健康度
2026-08-08 21:33:35 +08:00
butubb 47262abdcd refactor: 架构优化-前端(JS 拆分外部文件、监控定向更新)
- 前端 JS 从 monitor.html 内联移到 static/admin/monitor.js(HTML/JS 分离,便于维护)
- 监控页 5 秒刷新时设备数据/分页/排序未变则跳过整表重渲染,减少 DOM 抖动
2026-08-08 20:55:53 +08:00
butubb fba8c3abbb fix: 循环块/输入文字模式重开显示不一致 - 渲染时按保存值显示对应字段
_toggleLoopMode/_toggleInputMode 只在 select onchange 时调用,重开编辑不触发,
导致"按时间"被选中但右侧仍显示次数框。改为渲染时直接按保存的 loop_mode/mode
决定显示轮次字段还是时长字段/随机还是指定文字。
2026-08-08 17:01:34 +08:00
butubb 47b3d0bf03 fix: 监控进度显示优化 - 通用任务改为"已执行操作数",操作计数紧凑展示
- 通用步骤任务进度语义:done=累计执行操作次数,不再配固定 total(原来显示 33/2 步骤 无意义)
- 前端操作计数徽章按数量降序、最多显示6个,超出折叠为 +N
- 移除无意义的百分比进度条(无固定总数时不显示)
2026-08-08 16:57:40 +08:00
butubb aeffb1b95b fix: 元素抓取生成精确选择器,无属性元素用锚点祖先限定;抖音点赞找不到按钮不再双击屏幕
- 元素选择器生成:无 resource-id/text 的元素改用最近有唯一属性祖先限定范围,
  并带同 class 兄弟序号消歧(如 //*[@resource-id=".."]/RelativeLayout[3]),
  不再给裸 class(如 //android.widget.ImageView 会误匹配其他元素)
- 仍无法限定的宽泛选择器标记 broad,前端元素列表显示"⚠宽泛"提示
- 抖音 like 动作:by_element 找不到点赞按钮改为跳过,不再双击屏幕中央(避免误触)
2026-08-08 16:49:38 +08:00
butubb 4186eb1266 fix: 步骤参数同步误把子步骤输入写进父步骤,导致动作组概率失效
_syncParams 用 .sc-body [data-key] 读取卡片输入,但嵌套子步骤也有 .sc-body,
是卡片后代,其输入被写进父步骤 params(如 group 的 probability 被子步骤的 100 覆盖)。
改为只读卡片直接子级 :scope > .sc-body,group 概率与子步骤概率各自独立。
2026-08-08 16:34:09 +08:00
butubb 473dc1909d feat: 前端整体增强(应用查看UI/元素选择/步骤编辑器/拖拽/概率/分页/动作管理)
- 应用Tab:设备已装应用区块(应用名+版本+versionCode+路径)、安装弹窗设备显示 IP·型号
- 元素抓取:截图按 bounds 命中测试选最小元素,跳过全屏容器 overlay
- 步骤编辑器:输入实时同步+localStorage草稿自动保存(防丢内容)
- 拖拽修复:画布 drop 只绑定一次+stopPropagation+延迟渲染,可拖入循环块且不重复
- 步骤概率触发字段、循环按轮次/时间切换、监控页预计结束时间
- 全部列表统一搜索+分页(设备/任务/应用/分组/用户/动作)
- 自定义动作管理模块(列表/新建/编辑/删除)、步骤编辑器容器化、嵌套循环移动修复
2026-08-08 16:31:06 +08:00
butubb 468e86f0a9 feat: 新增通用步骤任务+元素抓取,完善全部项目文档
- 新增 generic_steps 通用步骤任务(可视化步骤编辑器编排流程,支持 open_app/click/swipe/input_text/wait/loop/group)

- 新增 core/uiauto_helper.py 封装 uiautodev 元素抓取客户端

- web_server 新增元素抓取/截图/设备列表等 API

- monitor.html 新增步骤编辑器、元素抓取模态框、独立关闭逻辑

- 新增 README.md 项目总览(快速上手/架构/配置/FAQ)

- 新增 doc/ARCHITECTURE.md 架构详解、doc/DEPLOY.md 部署指南、doc/API.md 接口文档

- 修复 doc/TASK_DEV.md:移除已删除的 comment 引用,补充 generic 包,更新注册示例

- .gitignore 忽略 .claude/ 工具产物
2026-08-08 10:40:06 +08:00
butubb b0f808fb8c fix: 修复所有弹窗打开后无法关闭的问题 - 重写closeModal先关闭再清理并try-catch容错 - 首页路由加no-store响应头避免浏览器缓存旧HTML 2026-08-07 15:26:10 +08:00