Commit Graph

328 Commits

Author SHA1 Message Date
yu
81ce4bc9b8 feat(engine): RunEvent 增 executor 驻地字段(ADR-R6 补记:双端透明调度设计——三条纪律+确定性路由表+数据不动原则) 2026-11-06 15:29:34 +08:00
yu
3a0ff42ac6 docs: 晨间助手截图时机搁置(提案3保留备查) 2026-11-06 15:01:21 +08:00
yu
fb6e8ca0bf docs: 后续工作完整清单(W1-W14)+ Q1/Q2/截图时机/rpa.browser 四项设计提案定稿 2026-11-06 14:59:54 +08:00
yu
fec0028bd5 docs: 工作日志补记(远端核查+port 保护) 2026-11-06 13:53:55 +08:00
yu
0f498afff2 fix(catalog): port 默认值 9222 写入 overrides 防重生成回退(远端合并发现的回填陷阱) 2026-11-06 13:53:55 +08:00
yu
e62a408a0d docs: 工作日志补记(SDK 安装与编译验证) 2026-11-06 13:47:40 +08:00
yu
f0defc2199 fix(contrib): 编译验证修正(Point internal / using Diagnostics);补丁包标定 dotnet build 0w0e + 协议冒烟通过 2026-11-06 13:47:27 +08:00
yu
107fbe0cee Merge branch 'main' of http://43.140.215.244:7040/wangyukun/PRA-only-demo 2026-11-06 13:45:00 +08:00
yu
07a76b42b7 docs: 工作日志补记(对面门禁核查+C# actuate 原型) 2026-11-06 13:39:24 +08:00
yu
65343da311 feat(contrib): C# actuate 原型补丁包(协议扩展+NativeInput 五招兜底移植+ActuateService+移植对照表+合入指引);V2 R3 行标定原型产出 2026-11-06 13:39:08 +08:00
yu
33b85c081e Merge remote main; re-apply remote port default 9222 to regenerated catalog 2026-11-06 13:38:49 +08:00
yu
407aa385d2 docs: V2 补记对面事实一致性门禁合规要求(补丁须同提交更新事实文件+文档区块) 2026-11-06 13:32:34 +08:00
yu
a01667bdb3 feat(engine): NodeState 补 waiting_user/unknown 两态+StepStatus 映射表;node.finished 增检查点负载(A++ 字段定稿);补 sm-crypto 类型声明 2026-11-06 13:19:29 +08:00
yu
1b952e3bbd Merge remote main; re-apply remote port default 9222 to regenerated catalog 2026-11-06 13:10:10 +08:00
yu
4615fcab10 docs: 账面盘点——包依赖3项核实销账,剩余 NodeState 两态+A++ 字段设计 2026-11-06 13:08:58 +08:00
yu
93915dfe8a catalog: 远程连接默认端口 61619 改为 9222 2026-11-06 13:06:54 +08:00
yu
2bcda3a558 fix(catalog): build-catalog 白名单归一化 platformTag,清洗上游 3 条数字脏值(重派生 win32) 2026-11-06 13:06:54 +08:00
yu
4b5c73b752 feat(word): Word_Save/Word_SaveAs 真实现(COM 落盘),替换路径回显占位 2026-11-06 11:52:56 +08:00
yu
b18d5b1f0b docs: bun 1.4.4 本机冒烟通过(engine 37/37, exceljs/pdf 无差异),R6 部分缓解 2026-11-06 11:40:36 +08:00
yu
d99be8f4ab docs: ADR-R2 补记 A++ 检查点协议(两侧改动清单+落地节奏);标定阶段1已完成项 2026-11-06 11:36:10 +08:00
yu
1f804971f4 feat(engine): 补交 engine.execute 实现(A1 漏加文件) 2026-11-06 11:09:46 +08:00
yu
7fa1c4038c docs: 补记工作日志(迁移阶段1四项) 2026-11-06 11:09:14 +08:00
yu
9bb5a44b95 chore: rpa-cli 显式注册+engine.execute;V2 现状表同步阶段1修复状态 2026-11-06 11:09:12 +08:00
yu
5e8fc9686f fix(catalog): 修复重生成遗留的三类数据回归(迁移阶段1-T4)
- 昨日重生成用的对面旧版源数据缺 select 选项:从重生成前快照收割 782 个
  select/radio 字段的 options 进 overrides(含默认值落在选项内的校验)
- 移除实现不读的假字段:Excel_Cs_InsertColumnV3/InsertRowV3 的 direction
- 默认值修复:Time 系列 offset_unit_num 改数字 0(实现按 num 读取)、
  Mail_DoGetMailMessage_v2:attachment 恢复旧选项、Window_SizeWindow_v1:window_size
  恢复 text widget、Mobile_TouchSlideV1 无实现清空默认值
- app-system-tests 期望更新:12 号锁屏流程因假必填清理不再阻塞(有意变更)
- catalog-properties 13 项 + app-system 全过
2026-11-06 10:53:56 +08:00
yu
1a20dd72d1 feat: 视觉能力去 Electron 化,经 HostBridge.screen 注入(迁移阶段1-A9)
- HostBridge 新增可选 screen 服务(listDisplays/primaryDisplay/dipToScreenPoint/
  displayMatching/captureDisplay),vision 3 处、cv-vision 2 处动态 import(electron)
  全部改为 requireScreenService();未注入时抛稳定的 host_unavailable
- demo 宿主 src/main/index.ts 用 desktopCapturer/screen 实现 screen 服务
- check-deps.mjs 升级:新增动态 import()/require() 扫描(旧正则实测 0 命中的盲区),
  合成用例验证命中,升级后真实源码 0 违规
- 包依赖闭包:补声明 @cantoo/pdf-lib、@napi-rs/canvas、pdfjs-dist
- cv-vision 测试从 vi.mock(electron) 改为宿主桥注入,11/11 通过
2026-11-06 10:53:42 +08:00
yu
1da00827ac feat(engine): createEngine 注入参数 + 消除模块级 driver 捕获(迁移阶段1-A1)
- createEngine(options) 支持 driver 注入,新增 engine.setDriver;
  缺省保持按平台自动选择的行为
- desktop/common-final/system-extended/window-extended 四文件模块加载时
  捕获 defaultEngine.driver 改为惰性 getDriver():非 win32 import 不再抛错
  (此前 darwin 上 import 即炸),调用时才触发 platform_unsupported
- engine-driver.test 补注入/隔离/后置替换 4 例
2026-11-06 10:20:29 +08:00
yu
9b76dc6987 feat(engine): 取消贯通/超时真中止/重试门控/图校验(迁移阶段1-A3)
- 节点尝试级 AbortController:run 取消与节点超时汇聚到同一信号,
  handler 收到的 ctx.signal 即尝试信号,其内部 sleep/HTTP/子进程可被真正中止
- 超时中止底层后 handler 先抛 cancelled 的竞态归一为 timeout
- executeNode 取消映射 NodeState=cancelled:不适用 skipOnError、不进异常分支
- 重试门控:CapabilityMeta.idempotent===false 时无视 retryCount(防重复副作用)
- 新增 validateFlowGraph:重复ID/悬空边/自环/顶层环/孤儿节点/不可达节点,
  阻断性错误在 runFlow 内统一收口为 validation_error
- 新增 11 项测试;既有 error-route/integration 回归通过
2026-11-06 10:13:38 +08:00
yu
d972a18bda docs: V2 拍板 ADR-R2(方案A+两补丁),6 项 ADR 全部闭环 2026-11-06 10:01:51 +08:00
yu
b14ad0b89b docs: V2 拍板 R1/R4/R5,R2 留评审并备好 A/B 对比与待答问题清单 2026-11-06 09:52:11 +08:00
yu
b4aaba4dbe docs: V2 拍板 ADR-R3(C#桌面执行路线)与ADR-R6(按能力域拆分部署) 2026-11-06 09:43:46 +08:00
yu
93b79366f7 docs: 补记工作日志(迁入指南 V2 修订) 2026-11-06 09:09:47 +08:00
yu
7f5ef2f5df docs: 收录 RPA 项目技术审查与集成实施总方案(V2 修订的上游输入) 2026-11-06 09:09:46 +08:00
yu
a8f75c6a55 docs: 迁入指南 V2(基于双侧真实源码核查)与差异清单
- V2 核心:对面底座巨变(7 契约包 5 个已实现、windows-runner C# observe-only、
  browser-plugin 已接 Playwright),迁入本质从'填契约'变'接底座+让路'
- RPA 侧 24 项事实清单(已修/未修分明):createEngine 仍无注入参数、Registry 全局、
  超时不中止底层、5 处动态 electron import、依赖缺 3 项等 P0 未解
- 逐接入点七要素详单 A1-A10、模块对应关系表、0-6 阶段实施计划、10 项风险、10 条总验收
- 新增 6 项 ADR 待确认(桌面安全模型冲突、部署拓扑为 V1 未识别的新阻塞项)
- 差异清单含审查报告 12 条修正记录(以真实源码为准)
2026-11-06 09:09:26 +08:00
yu
0fcb1ecc0e test: 真桌面冒烟测试补 win32 平台守卫 + 平台判断收拢
迁移前置项(指南五件小事 #3/#4/#5):
- 键盘/鼠标/应用系统冒烟/回归/手工加密 5 个测试文件补 skipIf(非 win32),
  Mac/Linux CI 可跑纯逻辑部分
- 新增 driver/platform.ts 平台判断唯一入口(dev-conventions 规则 4 例外白名单),
  utility-extended 两处 process.platform 散写改引 isWindows
- 能力分组核查:COM 类能力(excelCom/word/wordExtended)在 DOMAINS 已是独立分组,可整组过滤
2026-11-05 18:03:06 +08:00
yu
51a6178bfc feat: 驱动按 process.platform 自动选择,非 win32 抛 platform_unsupported
迁移前置项(指南五件小事 #2):
- RpaEngine.driver 改惰性 getter:win32 惰性创建 WindowsDriver,其他平台访问时
  抛 RuntimeError(platform_unsupported),import 不再隐式绑定 Windows
- 错误码 platform_unsupported 登记 RUNTIME_ERROR_CODES
- engine-driver.test.ts 覆盖两条路径
2026-11-05 17:56:34 +08:00
yu
8414c4f355 feat: 平台标记单一源 PLATFORM_GROUPS + catalog 重生成 platformTag 生效
迁移前置项(指南五件小事 #1 + 第 0 步作业 #2):
- register-all.ts 新增 PLATFORM_GROUPS 单一权威表(33 域全标 win32,darwin/linux 仅类型占位)
- registerAll 逐域加载时把平台默认值落进 meta.platforms(能力显式声明优先);
  新增 buildDomainPlatformMap 供构建脚本与运行时共用同一张表
- build-catalog.mjs 删除 WIN32_GROUPS 硬编码,platformTag 从包内分组表派生(改 tsx 运行)
- 守卫测试 platform-groups.test.ts:域无缺行 / 不偷填非 win32 数据 / meta 派生一致
- catalog.json 重生成:687 个组件获得 platformTag=win32(此前从未生效)
- 源数据恢复:对面重构删了 shizai-catalog-data.js,从其历史 commit 7bc627c8 恢复到
  temp/catalog-source/(不入库)并作为回退路径
- catalog-overrides 增强 addFields 支持;把此前直接改 catalog.json 的 96 处假必填修正、
  label 修正、Screenlock 字段清理、12 个实现读取但源数据缺失的字段全部沉淀进 overrides,
  重生成后参数审计 A/B 类保持 0/0
2026-11-05 17:53:07 +08:00
yu
a7709aefbb docs: 补记工作日志(仓库完整性核查) 2026-11-05 17:31:27 +08:00
yu
dbe98947bc test: captcha 端到端测试图入库,脱离外部路径依赖
- 5 张 PIL 生成的验证码图(共 30KB)入 __fixtures__/captcha
- 测试路径从 D:/office-test2 硬编码改为 import.meta.dirname 仓库内解析
- fresh clone 后 npm test 即可跑全部 12 项(OCR 模型来自 npm 依赖)
2026-11-05 17:31:15 +08:00
yu
609c46e06f docs: 补记工作日志(模型移除与追踪审查) 2026-11-05 17:27:25 +08:00
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
5a3d4cbdbd fix: 打包补拷 ui-icon-detect 模型
extraResources 此前只拷 ui-element-detect,打包后的应用缺少图标检测模型,
运行时兜底查找 resourcesPath/models/ui-icon-detect/model.onnx 会落空;
补一行与代码查找路径对齐。
2026-11-05 17:25:54 +08:00
yu
8fb3721b0f docs: 补记工作日志(项目清理) 2026-11-05 17:12:23 +08:00
yu
ec25db2207 chore: 清理历史规划文档与一次性调试脚本
- 删除 docs/ 8 份重构阶段规划文档(01~06 编号系列 + OCR 检测报告),git 历史可查
- 删除 scripts/ 4 个无引用调试脚本:spawn-test / cdp-probe / desktop-e2e / export-last-run
- README 同步:移除悬空链接,文档索引改为三份活跃文档
- 本地清理 temp/(415MB 模型选型实验产物,未入库)与根目录旧测试日志
- release/dist 打包产物按用户要求保留
2026-11-05 17:10:07 +08:00
yu
487b46420b docs: 补记工作日志(验证码专项与假必填参数清零) 2026-11-05 17:02:19 +08:00
yu
230e3c79ec docs: 平台标记单一源规则与迁移指南通俗版;补交 Word 报告流程生成脚本
- dev-conventions:平台标记收敛为注册分组表单一源,能力文件不得散写 process.platform
- rpa-core-migration-guide:重写为通俗版(现状/搬迁步骤/三端计划)
- gen-word-flow.py:Word 报告加工流程生成脚本(此前漏交)
2026-11-05 17:02:10 +08:00
yu
de6165e76e catalog: 96 个假必填参数改为选填并新增参数审计脚本
- 全量对比 catalog 字段与实现实际读取(audit-catalog-params.py),A 类假必填 74→0(96 个字段/72 组件)
- 最大族:web×31、designated_obj×23、accuracy2×3、emails×3 等
- Screenlock/ScreenUnlock 清掉无意义必填并补 label
- 隐藏参数(实现读取但目录未定义)审计为 0
2026-11-05 17:01:59 +08:00
yu
5ef797dcc0 feat: 添加算术验证码与字符验证码处理能力
新增算术验证码解析、字符清洗能力及测试文件,注册OCR_CalculationCode和OCR_CommonEnglishNumbersCode两个新能力,补充验证码处理逻辑
2026-11-05 16:48:20 +08:00
yu
902ee0cec4 File_File_Move 目标为已存在目录时自动移入该目录
此前 pathDest 被固定当作完整目标文件路径, 目标填分类目录时
rename(文件->目录)失败, fallback cp 报 ENOTDIR(cannot overwrite
directory with non-directory), 文件整理类流程无法用目录作目标。

现在目标存在且为目录时自动拼接源文件名(移入语义), 目标不存在
仍按完整文件路径处理。

附: 晨间助手全家桶测试流程生成脚本(30节点, 文件整理+记事本
键鼠+Excel加工+OCR/AI)
2026-11-05 16:05:07 +08:00
yu
b59d906161 Merge branch 'main' of http://43.140.215.244:7040/wangyukun/PRA-only-demo 2026-11-05 14:59:32 +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