57 lines
4.8 KiB
Markdown
57 lines
4.8 KiB
Markdown
# PR 草稿:feat/rpa-core-migration(线4·RPA插件迁入)
|
||
|
||
> 用途:对面仓库开 PR 时直接粘贴。按对面 `.github/PULL_REQUEST_TEMPLATE.md`(699df63d 版)字段填写,同时补齐迁入提交 8085ff47 单行提交说明未承载的细节。
|
||
|
||
## 基本信息
|
||
|
||
- 分支:`feat/rpa-core-migration`(未直接向 main 提交/合并)
|
||
- 基线 SHA:`1a56a084`(origin/main 最新,直系子提交,无分叉)
|
||
- 最终提交 SHA:`4e345304`
|
||
- 关联需求/ADR/待办:线4·RPA融合第一步——迁入 RPA 核心包;设计依据见自仓库 `docs/rpa-core-migration-guide-v2.md`
|
||
- 前置 PR/任务:无(独立迁入)
|
||
- 后置 PR/任务:`rpa-adapter` 适配层(线4,depends-on: 本 PR;待 Q5 配置面/审批上游确认后开工)
|
||
- 共享入口 owner:`code/backend/package.json` workspace 清单(本 PR 未改它,仅 bun.lock 新增依赖锁);catalog 资源目录 `code/backend/resources/` owner=线4
|
||
|
||
## 代码逻辑
|
||
|
||
- 输入如何进入:RunRequest(流程 JSON + 输入参数)→ `createEngine` → `registerAll` 能力注册表 → 引擎逐节点执行。能力覆盖桌面(Windows 原生驱动)/浏览器/Excel/PDF/HTTP/文件/屏幕等,注册表 700+ 条目,零 Electron 依赖。
|
||
- 状态如何变化:NodeState.status 流转(idle/pending/running/succeeded/failed/skipped/waiting_user/unknown);RunEvent 事件流携带 `checkpointId`/`idempotencyKey`(=runId:nodeId)/`resumable`/`executor` 审计字段。
|
||
- 谁最终判权:本包不做权限判定。执行授权由宿主下发(对面 gateway 租约 + 每节点单独授权,粒度拍板已落档);包内仅做 capabilityVersion 三段 semver 校验。
|
||
- 数据如何保存/回读:包内无独立落库;检查点与运行记录由宿主持久化,包只产出事件与状态。
|
||
- 失败/重试/取消/并发/撤权:节点级稳定错误码;幂等键 runId:nodeId 跨重入稳定,支持检查点续跑(resumable 门控:idempotent===false 不作锚点);撤权由宿主停止派发,包内无自主重试循环。
|
||
- 本次明确不包含:rpa-adapter、AI 调度、双端 executor 路由落地、管理端/客户端 UI、Bun 冒烟(决策10:延期到接宿主时)。
|
||
- 触及路径:`code/backend/packages/rpa-core/**`(新增 150 文件:src 128 + test 44 等)、`code/backend/resources/`(catalog.json / catalog-overrides.json / capability-duplicates.json 伴生资源)、`code/backend/bun.lock`、`项目资料/开发方案/当前事实.json`。
|
||
- 明确不触及路径:`code/frontend/**`、Java 服务端、Flyway 迁移、权限目录、OpenAPI/生成器、部署 Compose。
|
||
- 重复实现检索:`git log origin/main -- code/backend/packages`(无既有 RPA 包);`rg -n "rpa-core|createEngine|registerAll" code`(无重复实现)。复用结论:唯一 owner=线4,无同事并行认领。
|
||
|
||
## 契约与影响
|
||
|
||
- SQL/迁移/权限/配置:无 SQL/迁移/权限变化;新增 workspace 包 `@agent-worker/rpa-core` 及 bun.lock 条目。
|
||
- 文档事实:`当前事实.json` 已同提交刷新,`document-facts --check` 通过(代码/事实/文档同提交原则已满足)。
|
||
- 回滚方式:revert 两个提交即可整包移除;无迁移、无生成物、无跨包引用残留。
|
||
- 依赖的迁移/制品/运行版本:**bun 1.4.3**(1.4.4 的 patchedDependencies 打不上 photon-node 补丁,与团队锁定版本一致,不是新要求)。
|
||
|
||
## 验证证据
|
||
|
||
- `bun test`(backend workspace):48/48 全绿(engine + excel + pdf + platform-groups + register-all + compat-audit)。
|
||
- `node code/tooling/document-facts.mjs --check`:通过。
|
||
- `node code/tooling/ci-gate.mjs --mode fast`:通过。
|
||
- `node code/tooling/check-workspace`:产品源码树测试文件违规清零。
|
||
- 真实环境证据:本 PR 为代码迁入,桌面能力(Windows 原生输入/PrintWindow)需真实 Windows 宿主验收,属后置 rpa-adapter 联调范围;CI 覆盖注册表/catalog/引擎层。
|
||
- 冲突解决记录:无冲突(基于 origin/main 最新直系提交)。
|
||
|
||
## 未完成与风险
|
||
|
||
- opencode fork 快照漂移:main 既有问题(ci-gate fast 模式旧账),与本 PR 无关,不阻塞审查。
|
||
- Windows 桌面能力实机验证未做:随 rpa-adapter 联调补齐。
|
||
- 迁入提交 8085ff47 提交说明仅一行(早于 699df63d 模板新规),细节以本 PR 描述为准;第二笔 4e345304 已按新模板填写。
|
||
|
||
## 提交清单确认
|
||
|
||
- [x] 已从最新 origin/main 同步(1a56a084)
|
||
- [x] 未直接向 main 提交或合并
|
||
- [x] 本 PR 只包含一个可审查的纵切目标(RPA 核心包迁入+规范化)
|
||
- [x] 已声明前置/后置任务、共享 owner 和依赖顺序
|
||
- [x] 没有与其他 PR 重复实现;共享入口只有一个 owner
|
||
- [x] 已按第五条线工作流完成自审,等待主控审核和合并
|