yu
|
79bba4296f
|
chore: 移除未使用的 ui-icon-detect 模型(80MB)
- webpage-element.onnx 为实测首选模型,运行时永远先命中;
ui-icon-detect/model.onnx 仅作为老安装包兜底回退,无实际使用场景
- 删除模型目录(含无引用的 preprocessor_config.json),运行时去掉兜底候选
- 上一个提交给打包加的 ui-icon-detect 拷贝行随之移除
- 注:git 历史中该 blob 仍存在(不做历史改写),仅工作区与新 clone 不再需要下载该模型
|
2026-11-05 17:27:08 +08:00 |
|
yu
|
e25121660d
|
修复点击验证误报与相似元素列表全重复等运行时问题
- 点击可信验证增加两类生效旁证: 页面跳转/新开标签页(淘宝搜索按钮),
点击后元素整体消失(关闭登录弹窗); 此前均被误报为"目标未收到可信点击"
并在节点超时内反复重试, 造成"点击生效却等很久还报错"
- 相似元素列表引用增加 index 序号: 动态id泛化后各卡片选择器相同,
46 条引用全部命中第一张卡导致抓取结果全重复;
修复 NodeList 无 indexOf 的 TypeError 被静默吞掉导致序号从未写入
- 元素定位改为两段式: 先在当前附着页查找, 找不到才跟随前台标签页,
避免多标签环境下被无条件切到 pages[0] 导致找错页面
- 新开标签页优先复用启动残留的 about:blank 空白页, 不再堆积空标签
- AI 能力输入识别增加 hint_word 字段(此前提示词读到的是空)
- try_catch 捕获子步骤失败时记录 warn 日志, 不再静默
- Excel 落盘遇 EBUSY(文件被打开占用)时自动另存为带时间戳的文件
- 新增 similar-list.test.ts 端到端回归(46 卡片动态 id 真实浏览器验证)
- 新增 export-last-run.js: 从运行记录导出比价 Excel
|
2026-11-05 14:57:33 +08:00 |
|
yu
|
36b268f74c
|
运行时元素操作跟随前台标签页\n\n- 点搜索/按钮常开新标签页, 此前运行时元素操作仍附着旧标签页,\n 导致新页上的拾取选择器找不到元素、相似元素列表抓到空\n- evaluate 入口增加前台标签页检查(400ms 节流), 变化时 activateTab 切换附着
|
2026-11-05 13:01:27 +08:00 |
|
yu
|
21a400e172
|
运行前校验识别循环容器注入的迭代变量\n\n- 数组/字典循环运行时注入 item/index/value, 计数循环注入自定义索引变量\n- 校验器原先只认 flow.variables 与节点输出变量, 对循环体内引用误报未定义变量警告
|
2026-11-05 12:47:01 +08:00 |
|
yu
|
4af6bd0693
|
修复模板字面量吃掉正则反斜杠: \\d{6,} 改为 [0-9]{6,}
- 引导脚本为 TS 模板字面量, 编译时 \\d 被当作无效转义吞掉反斜杠,
运行时正则退化为字面量 d{6,} 永不匹配, 动态id泛化从未真正生效
- 此前端到端验证直接注入源码原文绕过了模板编译, 故未暴露
- 改用 [0-9] 从根源规避转义问题; 已用 bundle 提取的真实运行时脚本验证通过
|
2026-11-05 12:24:56 +08:00 |
|
yu
|
3e4ded9f5f
|
动态id泛化阈值放宽为命中1个即泛化, 修复渐进渲染期拾取仍生成唯一id
- 浏览器刚拉起页面渐进渲染时仅 1 张卡, 原 >1 阈值不满足而回退唯一 id
- 动态数字 id 模式下命中 1 个即泛化(与原 id 等价, 零风险), 后续渲染出的同类卡也能命中
|
2026-11-05 11:53:26 +08:00 |
|
yu
|
6a27ede6d9
|
元素拾取强制接管残留拾取器, 修复强杀应用后拾取永远走旧逻辑
- 根因: 应用被强杀时页面上残留 active 拾取器(__rpaPickerActive.active=true 永久为真),
引导脚本防重入守卫直接 return, 之后每次拾取都由旧代码残留监听器响应, 选择器无法更新
- 引导脚本改为强制接管: 发现 active 残留先 cancelHard/cancel 并清状态再启动
- pickElement 注入前同步清理残留拾取器/宿主元素/结果变量
|
2026-11-05 11:41:41 +08:00 |
|
yu
|
cf1e560802
|
元素拾取泛化动态记录id: 长数字结尾唯一id自动转为前缀匹配
- 淘宝等站点卡片根节点 id 为动态记录 id(如 item_id_1087512368188), 原样生成导致选择器只命中一张卡
- stable() 检测 id 以长数字(6位以上)结尾时, 若 [id^=前缀] 命中多个元素则优先采用, 使选择器覆盖所有同类卡片
- 拾取器与元素引用两处 cssPath 同步修改
|
2026-11-05 11:15:36 +08:00 |
|
yu
|
309898045c
|
元素拾取悬停0.3秒自动钻入子元素, 无需先锁定再调层级
- 进入新交互区域先吸附交互元素, 悬停300ms后自动钻入光标最深处
- 钻入后跟随光标在卡片内部移动; PageUp/PageDown 保留为手动上下调层(未锁定时直接锁定)
|
2026-11-05 11:11:03 +08:00 |
|
yu
|
150d7ce9c9
|
元素拾取支持钻入子元素: PageDown 沿锁定元素向下进入卡片内部子节点
- 悬停时记录光标下最深元素, 锁定时把锁定元素到最深元素的子级路径并入调整链
- 场景: 淘宝搜索结果整卡为链接, 标题/价格是链接子元素, 此前只能沿祖先向上调层级选不到
|
2026-11-05 10:57:24 +08:00 |
|
yu
|
91d998b2ea
|
元素拾取跟随前台标签页: 点搜索等开新标签页后附着目标自动切换
- pickElement 轮询前经 /json/list 检查前台标签页, 变化时 activateTab 切换附着并重新注册/注入拾取脚本
- 结束时对所有已附着标签页清理拾取残留, 并移除全部 addScriptToEvaluateOnNewDocument 注入
|
2026-11-05 10:12:59 +08:00 |
|
yu
|
5250bf1e35
|
元素拾取支持页面跳转后继续拾取; 恢复 ws 根依赖声明修复启动崩溃
- pickElement 重构: 拾取脚本经 Page.addScriptToEvaluateOnNewDocument 随新文档自动重注入,
主进程轮询 __rpaPickResult, 用户拾取期间可翻页/搜索/过滑块, 页面跳转不再使拾取失效
- 恢复 package.json ws 根依赖与 electron.vite.config include:[ws]
(合并时被覆盖导致 dev 启动报 bufferutil 解析错误)
|
2026-11-05 10:07:48 +08:00 |
|
yu
|
d638d44c79
|
桌面元素组件目标框占位提示改用 name=/type= 语法, 不再误导为浏览器选择器
|
2026-11-04 17:42:14 +08:00 |
|
yu
|
f95a24458e
|
新增任务分享/导入功能并修复只读文件保存 EPERM
- flows: writeFlowFile 覆盖写加固(清只读属性->删除后 rename->覆盖写),
外部复制导入的只读任务文件此前导致 flows:save EPERM 崩溃
- flows: exportFlowToPath/importFlowFromPath, 分享文件为单个 FlowDefinition
JSON(.rpaflow.json); 导入校验 schemaVersion/nodes/edges, id 冲突时生成
imported_ 前缀新 id 绝不覆盖既有任务
- IPC: flows:export 弹保存对话框 / flows:import 弹多选打开对话框,
失败文件逐个汇报不阻塞其余
- preload: flows.export/flows.import; shared: FlowsImportResult 类型
- TasksPage: 头部「导入任务」按钮 + 每行「分享」按钮; App 接线与 toast
- 测试: 导出/导入往返、id 冲突、非法文件原因、只读覆盖共 4 例(7/7 绿)
|
2026-11-04 17:31:44 +08:00 |
|
yu
|
22a7ee1595
|
修复外部浏览器 CDP 无响应: ws 从主进程 bundle 外部化
根因: ws 被打进主进程 bundle 时, 其可选依赖 bufferutil 的打包解析产物
破坏了客户端发帧的 mask fallback; permessage-deflate 协商开启时错误被
压缩路径静默吞掉 —— 表现为 ws 握手成功但所有 CDP 命令零字节发出、
无响应(输入文本节点 10s 超时), dev 与打包版皆受影响。
- electron.vite.config: externalizeDepsPlugin include ws, 运行时 require
- package.json: ws 提升到根依赖, electron-builder 随包收集
- electron-builder.config: 确认 node_modules/ws 进入 asar
- transport: 显式 perMessageDeflate:false(双保险, 附注释)
- package.mjs: verifyLaunch 剥离 ELECTRON_RUN_AS_NODE/NODE_OPTIONS,
防止外部工具链环境把打包应用带进纯 Node 模式(bad option 退出码 9)
- flows: 演示流程支持 RPA_DEMO_BROWSER 强制指定浏览器(Chrome 缺装回退 Edge)
验证: 全量测试 349 绿 + 浏览器 e2e 绿 + portable/NSIS 双冒烟通过,
安装包/zip/SHA256 已产出。
|
2026-11-04 17:19:32 +08:00 |
|
yu
|
3decced268
|
阶段2-断Electron依赖: human-dialog/window-extended/ai-service经HostBridge迁入包, external+transport迁包(session留宿主), 新增check:deps依赖护栏与包README留守清单
|
2026-11-04 12:57:41 +08:00 |
|
yu
|
caa8e19332
|
阶段1-rpa-core建包: engine+31个纯Node能力迁入packages/rpa-core, 领域类型单一源化, createEngine工厂收拢模块级状态
- engine/(registry/types/runtime/expression)物理迁入包, 解耦shared/types(域类型归包, 宿主type-only re-export)
- 31个纯Node能力+27个测试迁入包; 宿主留守Electron/浏览器/AI依赖能力, index.ts经@rpa/core/capabilities拉起
- 新增createEngine()/defaultEngine: excel缓存/Excel句柄/db连接/FTP客户端/OCR实例/拟真设置挂引擎实例
- remaining-core子流程依赖改为host-bridge注入, 包内不再import宿主flows
- 宿主main/index.ts启动时注入子流程源; electron-vite/vitest/tsconfig配@rpa/core源码别名
- 验证: typecheck绿, 快照909个id diff为零, 332测试过(2个桌面冒烟因会话无交互SetForegroundWindow被拒, 环境阻塞)
|
2026-11-04 12:36:03 +08:00 |
|
yu
|
4139400dbd
|
阶段0-基线与护栏: 修复不可移植/抖动测试全绿(341过), vitest串行执行防桌面竞争, 新增运行时能力注册快照(909个id)
|
2026-11-04 11:53:41 +08:00 |
|
yu
|
f35f0ac979
|
files 能力增强与 vision 校验修复;落盘 rpa-core 抽离改造任务清单与开发规范
|
2026-11-04 10:14:55 +08:00 |
|
yu
|
1ff6f59990
|
非 ASCII 字符走 char code 构造绕开智能引号解析陷阱
|
2026-11-04 09:36:45 +08:00 |
|
yu
|
143fcae34a
|
修复撇号字符数组转义顺序导致字符串未闭合
|
2026-11-04 09:28:46 +08:00 |
|
yu
|
bb03699cce
|
键盘输入转义逻辑移到 JS 侧根治脚本语法错误
|
2026-11-04 09:14:09 +08:00 |
|
yu
|
f390db9c94
|
错误输出通道改造: GBK 回退解码与 RPA_ERROR 标记防截断
|
2026-11-03 17:43:46 +08:00 |
|
yu
|
e1f162aa82
|
错误信息解码与窗口列表提示
|
2026-11-03 17:19:22 +08:00 |
|
yu
|
3a9b4fa3c7
|
窗口激活多招式兜底修复 Studio 前台下切窗失败
|
2026-11-03 17:09:45 +08:00 |
|
yu
|
8d6f0ff755
|
键盘输入支持选择输入目标窗口
|
2026-11-03 16:56:10 +08:00 |
|
yu
|
46348413c1
|
键盘输入组件修复: 接入 words 字段与三种输入方式
|
2026-11-03 16:38:03 +08:00 |
|
yu
|
6b05a65664
|
鼠标组件坐标修正: DIP 转物理像素修复缩放屏偏移
|
2026-11-03 16:28:52 +08:00 |
|
yu
|
158104661c
|
fix: 移动鼠标支持对象坐标x/y(屏幕框选生成格式,此前报坐标无效), 实现三种移动方式(模拟人工缓动抖动/匀速直线/瞬间)与移动速度, 相对激活窗口模式叠加前台窗口偏移, 补DPI感知, 冒烟4项真实落位通过
|
2026-11-03 16:15:03 +08:00 |
|
yu
|
fb71c0551b
|
fix: 网页监听通配过滤去锚定(关键字任意位置命中), 网址下载临时锚点改可见1px触发(隐藏元素被点击解析过滤), 浏览器截图path传目录自动补文件名, 补网页自动化真实Chrome冒烟11项
|
2026-11-03 16:04:33 +08:00 |
|
yu
|
58aae7c92f
|
fix: 大小写转换组件选项值1/2不生效(选转换方式返回原文), CSV读写空路径给结构化报错, 补数据处理与文件族冒烟回归11项
|
2026-11-03 15:51:45 +08:00 |
|
yu
|
cb349ec979
|
test: 网络与消息冒烟回归: HTTP三件套(参数/JSON表单/PUT Cookie落盘/5xx超时报错)+钉钉飞书企微webhook消息体+真实SMTP会话+AI未配置引导报错 10项通过
|
2026-11-03 15:35:32 +08:00 |
|
yu
|
d4de0ec245
|
fix: ConvertBool数字语义对齐(数字1为true), 凭据读写改经ps强制UTF8解码中文并返回整条凭据块, 补应用与系统冒烟回归10项
|
2026-11-03 15:22:59 +08:00 |
|
yu
|
58ea001e7d
|
fix: 相对位置互换未命中时给互不包含综合诊断, 不再误导为尺寸错误
|
2026-11-03 15:07:43 +08:00 |
|
yu
|
f0fca2ebfe
|
test: 相对位置冒烟缺少本机夹具时自动跳过
|
2026-11-03 15:03:06 +08:00 |
|
yu
|
c90584670d
|
test: OCR冒烟缺少本机夹具时自动跳过
|
2026-11-03 15:02:32 +08:00 |
|
yu
|
c973209418
|
fix: 对比图像相对位置字段正名(被搜索图像/查找目标小图)+填反自动互换兜底, 补OCR与相对位置冒烟回归
|
2026-11-03 14:59:33 +08:00 |
|
yu
|
9ec301b081
|
fix: 修复重复能力审计中Base64解码同时保留与隐藏的冲突
|
2026-11-03 14:54:46 +08:00 |
|
yu
|
7a067173a5
|
test: OCR组件冒烟回归(本地离线推理): 通用/键值/金额/验证码/卡证/票据/离线文本定位表格 10项真实识别通过
|
2026-11-03 14:50:25 +08:00 |
|
yu
|
4fc1209c93
|
Merge branch 'main' of http://43.140.215.244:7040/wangyukun/PRA-only-demo
|
2026-11-03 14:41:41 +08:00 |
|
yu
|
5b1b41663f
|
fix: 修复远程catalog变更引入的3个测试失败(数量658→654, canonical链断→V3, 8字段缺type, 3字段widget非法→text, counts.fields 4297→4294, overrides描述与catalog同步)
|
2026-11-03 14:41:08 +08:00 |
|
yu
|
8fdc62d98d
|
feat: 图片Base64编解码组件统一(Encode并入方向切换,Decode隐藏), 验证任务归并: 图像OCR未测任务 41->7 (Base64/CV/OCR票据卡证证照通用离线)
|
2026-11-03 14:28:23 +08:00 |
|
yu
|
8176bf7c75
|
Merge branch 'main' of http://43.140.215.244:7040/wangyukun/PRA-only-demo
|
2026-11-03 14:14:17 +08:00 |
|
yu
|
8dc2b60c6d
|
feat: datePicker加原生日期选择器; openWindowMultipleSelect/openWindowEditor加选窗口按钮; dateRangeFilter加日期范围输入
|
2026-11-03 14:14:01 +08:00 |
|
yu
|
b4bcee8c15
|
refactor: 屏幕截图冗余区域字段收敛(action/position_img 并入截图区域), 仅框选区域模式显示
|
2026-11-03 14:13:07 +08:00 |
|
yu
|
9e9617256d
|
Merge branch 'main' of http://43.140.215.244:7040/wangyukun/PRA-only-demo
|
2026-11-03 14:11:52 +08:00 |
|
yu
|
6bf8e90c63
|
fix: 窗口选择器从循环confirm改为弹出列表modal, 用户可一次看到所有窗口并点击选择
|
2026-11-03 14:11:38 +08:00 |
|
yu
|
41b999115e
|
fix: 屏幕截图保存路径字段正名(目标文件路径->截图保存路径), 备用输出目录/文件名折叠进高级参数, 描述写清保存回退链
|
2026-11-03 14:07:06 +08:00 |
|
yu
|
4a3e6e38c7
|
fix: overlay窗口closable:false导致close()被忽略, 改用destroy()强制销毁
|
2026-11-03 14:05:29 +08:00 |
|
yu
|
b6829cbaab
|
Merge branch 'main' of http://43.140.215.244:7040/wangyukun/PRA-only-demo
|
2026-11-03 14:01:58 +08:00 |
|