Commit Graph

340 Commits

Author SHA1 Message Date
yu
5f5e8bcb0e fix(browser): 审查整改批次2镜像——浏览器生命周期四缺陷(对面 55bc8f1b 同源)
目标:对齐对面 feat 分支 RPA-REV-2 的浏览器侧整改,保持双仓同源
代码逻辑:①killStaleBrowserProcesses 失败记 warning 不再静默;PowerShell -like 元字符转义防扩大匹配;②默认 userDataDir 加随机后缀防并发互踩;③launch 失败路径(/json/list、transport.connect)回收自拉子进程;④ExternalTransport.connect 失败/超时关闭底层 WS 并清理 timer
验证:对面 rpa-core tsc 归零 + engine 32/32;本仓库同代码
风险与回滚:低——失败路径增强,revert 即回
2026-11-09 09:55:59 +08:00
yu
594377ab79 docs: 账本划账——W4 迁包已完成(对面 8085ff47/4e345304,feat 分支 5 笔待审) 2026-11-06 17:49:10 +08:00
yu
41975baf5a docs: 工作清单划账——W2 actuate 合入(对面 b646d4d9)与 W3 双缺陷修复(08e798c/440f7f4f)完成 2026-11-06 17:47:04 +08:00
yu
08e798c087 fix(browser): W3 迁前必修两缺陷——transport 单命令超时 + 定位器统一
目标:ADR-R4 前置修复——①CDP 对端不回包时 send 在有限时间内失败;②同名定位参数在全部网页能力下行为一致
代码逻辑:①ExternalTransport.send 增单命令超时(默认 30s,connect 可传),超时以稳定码 timeout 拒绝并清理 pending(不再依赖引擎级超时兜底+泄漏表项);RuntimeError 原样透传不经 mapCdpError 改写;②selectorOf 三份重复定义(browser/browser-extended/browser-dom)收敛为 src/main/browser/selector.ts 单一事实源,键集合取并集(补 uiWindowSelector);browser-common 的 element_position 位置感知定位语义不同,有意保留
验证:宿主 browser+extended 测试 49/49 全绿;rpa-core 引擎域 32/32 全绿;typecheck 归零
风险与回滚:低——超时默认值对既有快流程无感知;定位器统一仅补齐兜底键,行为为超集
2026-11-06 17:46:06 +08:00
yu
43ae705629 feat(engine): node.finished 全事件补 attempt 审计字段(无人值守审批对账:对面 actionId=runId:stepId:attempt)
目标:审计侧可对账'第几次尝试成功/失败',为无人值守高危动作的审批绑定提供键
代码逻辑:六处 node.finished 发射点统一带 state.attempt(初值1,重试循环内递增);可选字段向后兼容,无事件对象精确断言受影响
验证:引擎域 24/24 全绿 + 新增契约测试(重试3次终态 attempt=3、跳过=1、全事件 ≥1);typecheck 归零
风险与回滚:低——纯新增可选字段,revert 即回
2026-11-06 17:21:45 +08:00
yu
10d125ce9d docs: Q4 源码核查落档(审批上游=workflow-engine 已实现)+ 审批对象三层设计(白名单/流程上架/单次高危动作,弹窗=consent 不走审批单) 2026-11-06 16:44:52 +08:00
yu
b4c89fd7d3 docs: PR 审核单草稿(feat/rpa-core-migration),补齐迁入提交单行说明未承载的细节(对面 699df63d 新模板) 2026-11-06 16:34:11 +08:00
yu
751dc04713 fix(rpa-core): compat-audit 报告写系统临时目录,不再污染仓库根(补齐 4f1fbc0 漏提交的修复)
任务 ID:RPA-MIG-0(自仓库收尾)
目标:测试运行不得在仓库根产生 .compat-report.txt,保证工作树干净
代码逻辑:报告路径改为 path.join(os.tmpdir(), ".compat-report.txt"),与对面 feat/rpa-core-migration 已迁入版本一致
验证:对面 48/48 全绿用同一份修复代码;本仓库测试布局与对面一致
风险与回滚:低——仅测试报告输出路径,回滚即恢复原路径
2026-11-06 16:29:08 +08:00
yu
7a553fb270 docs: 工作日志补记(线4迁包完成+对面治理新规) 2026-11-06 16:22:31 +08:00
yu
4f1fbc07dc refactor(rpa-core): 测试文件迁至 test/ 目录(对面 workspace 规范:产品源码树禁含测试);修 platform-groups 测试预载顺序耦合 2026-11-06 16:14:23 +08:00
yu
62652b4fca docs: V2 补记——租约粒度拍板(每节点单独授权+逐节点审批)、版本管理设计(V1)、Q4审批上游/Q5配置面待确认 2026-11-06 15:45:35 +08:00
yu
a766902a18 docs: 工作日志补记(双端透明调度拍板) 2026-11-06 15:29:49 +08:00
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