fix(web): 从构建器中保存工作流会销毁作者的评论和 YAML 锚定
□ 问题
将已有的工作流程装入构建器,并将其保存在作者的文件上,并用从已解析的“WorkflowDefintition”中重建的文档来覆盖作者的文件。 定义所不携带的一切被销毁:注释,YAML锚地和别名,块平板,和行格式. 重写文件也是一行一行一行-"archon-review.yaml"在一行回回为4243个字符.
PUT/api/workflows/:名称以Bun.YAML.stringify(定义)'为序列(packages/ server/src/routes/api.ts:4440'),并将结果写入现有的文件路径(`packages/ server/src/routes/api.ts:4462')。 两个建筑师都通过它保存:控制台建筑师( " 包装/网络/src/实验/控制台/建筑师/BuilderConnect.tsx:251 " )和遗留的建筑师( " 包装/网络/src/组件/工作流程/工作流程/工作流程Builder.tsx:301 " )。
为什么
YAML 主锚是工作流程作者唯一用于宣布一个输出-格式'计划并跨节点重新使用该计划的机制。 我们自己的交付包取决于这一点:.archon/workflows/sdlc/delivers/archon-delivers.yaml:75'定义了绿色'门,并在第293行、第368行和第482行中将其更名,而ci state'在第436行为408号别名。 建设者将每个别名无声地扩展成一个独立的拷贝,重新将锚所存在的漂移完全用于防止——作者没有得到任何迹象.
评论是被捆绑的包子如何解释它们的门和它们不明显的接线. 保存会剥去他们所有。 单行流程文档也使得文件在diff中无法被读取并敌视合并.
为什么现在:控制台是默认的UI,而"/builder/:name"是一条活路("packages/web/src/eximents/console/ConsoleApp.tsx:78"). 我们亦公开告诉用户, 锚是共享节点计划的支持方式,
□ 希望的结果
从两个构建器中保存一个已有的工作流程, 保存构建器未更改的文件部分 。 评论和主播在禁用保存后幸存下来,所保存的文件保持了块式并可以读取.
□ 验收
- [ ]在建构器中打开
.archon/workflows/sdlc/delivers/archon-delivers.yaml',但无需编辑,该文件上的git diff'是空的。 - [ 在此保存文件之后,文件仍有一个"QQGreen gate"定义和三个"QQGreen gate"别名,而不是四个独立的副本.
- 保存之前的注释在保存之后。
- [ 保存的文件为块样式——没有单行流程文档.
- [ 在一个节点上更改一个字段只更改文件的这个区域 。
- [ ]一个没有评论的工作流程,没有主播仍然像今天那样保存.
□ 证据
- 复制
- 运行服务器并打开 " 建设者/archon-交付者 " 项目,其工作流程包括Sdlc包。
- 保存而不做任何编辑。
- `git diff.archon/workflows/sdlc/delivers/archon-delivers.yaml'。
直接用保存路径的序列器(bun 1.4.2)测量:
$ bun -e ' const
. . . . . . .内容来源: coleam00/Archon