task_plan.md 5.53 KB

任务计划:流程编辑器重构调研

目标

输出一份完整的需求与迁移设计方案,用于将 vue-flow-editor 重构为基于 Vue 3、Element Plus、LogicFlow 2.0、Vite 的新项目,并采用“测试优先、分阶段迁移”的安全升级策略。

当前阶段

阶段 10

阶段拆分

阶段 1:需求与旧项目调研

  • 理解用户诉求
  • 确认新项目当前起点
  • 审计旧项目架构、行为能力和对外 API
  • 记录迁移约束与测试风险
  • 状态: 已完成

阶段 2:迁移策略与安全方案设计

  • 定义分阶段迁移路径
  • 定义重构前的基线保护策略
  • 定义兼容口径与验收清单
  • 状态: 已完成

阶段 3:文档编写

  • 编写需求与设计文档
  • 编写分阶段迁移方案
  • 编写测试迁移与验证方案
  • 状态: 已完成

阶段 4:复核与收敛

  • 基于旧项目再次核对关键假设
  • 收紧风险、开放问题和优先级
  • 形成可直接开工的初始方案
  • 状态: 已完成

阶段 5:实施计划细化

  • 将迁移方案细化成可执行任务清单
  • 补充双仓目录规划和阶段性产物
  • 输出下一步的明确实施顺序
  • 状态: 已完成

阶段 6:旧项目基线测试落地

  • 固定旧项目基线回归页说明
  • 接入 Playwright 最小测试基础设施
  • 跑通第一条旧项目冒烟测试
  • 状态: 已完成

阶段 7:新项目骨架与测试底座初始化

  • 初始化 Vue 3 + Vite + TypeScript + pnpm workspace 工程
  • 接入 Element Plus 与 LogicFlow 2.x 基础依赖
  • 建立 apps/demopackages/flow-editortests 目录结构
  • 迁入首批基线测试语义(冒烟、工具栏、实例契约)
  • 跑通新项目 buildtest:unittest:e2e
  • 状态: 已完成

阶段 8:新项目数据适配层

  • 梳理旧项目图数据与当前规范数据的差异
  • 实现 g6-to-logicflow 兼容适配层
  • 让 demo 与编辑器内部统一走适配器
  • 补齐单节点、线性流、分支流三类夹具与单元测试
  • 跑通适配层相关验证
  • 状态: 已完成

阶段 9:新项目基础编辑闭环

  • 接通工具栏主要按钮的真实点击行为
  • 支持新增节点、选中节点、删除节点
  • 支持打开预览面板
  • 为基础交互补齐 E2E 回归
  • 状态: 已完成

阶段 10:新项目命令闭环增强

  • 移除遮挡画布的过渡提示层
  • 支持节点名称更新
  • 支持基于当前选中节点创建连线
  • 支持图数据撤销/重做
  • 为命令闭环补齐 E2E 回归
  • 状态: 已完成

关键问题

  1. 旧项目里哪些行为必须被视为严格兼容项,哪些属于可接受的现代化调整?
  2. 如何在迁移编辑器内核之前,先建立可靠的自动化回归护栏?
  3. 应该优先迁移哪些能力,才能保证每一阶段都可验证、可回退?

已做决策

决策 原因
先写文档和迁移设计,再启动代码搭建 新仓库当前为空,且用户明确希望优先保证升级安全性
采用“行为优先”的迁移方式,而不是“依赖升级优先” 旧项目存在混合技术栈,直接升级依赖风险高
将测试视为本次迁移的一等产物 用户无法在重构后进行大量人工点击回归
先把旧项目 doc/index.vue 作为第一份基线回归样板 该页面已覆盖 hooks、事件、插槽和复杂业务接入
在新项目大规模开发前先迁移基线测试 这是保住现有业务行为最稳妥的方式
继续补一份“实施级迁移计划”文档 这样后续可以按任务直接开工,而不是重复讨论阶段划分
旧项目基线测试先采用“Node 16 + 接口拦截”的运行方式 这是当前成本最低、稳定性最高的自动化起步方案
新项目先用“兼容壳层 + 最小 LogicFlow 2.x 实例”承接测试语义 这样可以在不提前实现全部交互的前提下,尽快建立新仓回归护栏
新项目 E2E 改为脚本自管 Vite 生命周期 当前环境中 Playwright webServer 预检查会被本机代理/旧服务误导,脚本启动更稳
新项目内部图数据统一先归一化,再映射到 LogicFlow 2.x 这样后续命令系统、事件兼容层和保存链路都只面对一套稳定结构
先做“可操作的基础编辑闭环”,再补复杂命令和业务面板 这样用户可以尽早看到真实可交互页面,而不是一直停留在只读状态
连线创建和撤销/重做先基于兼容层图数据历史实现 先把用户操作闭环跑通,再逐步下沉到更完整的 LogicFlow 命令栈

遇到的问题

问题 次数 处理方式
rg --files 在新仓库中没有返回文件 1 通过 ls -la 确认新仓库确实为空仓库,因此先从规划与文档开始
corepack pnpm install 出现签名 keyid 校验失败 1 改为使用 npx pnpm@10.9.0 install 绕过本机 corepack 问题
Playwright webServer 会误判本地端口已被占用 1 移除 webServer 配置,改为仓库脚本显式启动 Vite 并回收进程

备注

  • 在做重大决策前,重新回看本计划文件
  • 继续将旧项目调研结论记录到 findings.md
  • 最终设计文档路径为 docs/plans/2026-03-31-flow-editor-rebuild-design.md
  • 实施计划文档路径为 docs/plans/2026-03-31-flow-editor-migration-implementation-plan.md