Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

fix(workflow): a save's response must not overwrite a newer local edit (WorkflowPersistService)

已关闭
#8,536 2 条评论 0 个 reaction 已指派 1 人 在 GitHub 查看

维护者通常 1 天内回复

@yangzhang75 已经在做这个了。

开始于 2026年9月14日。

评估

这个 Issue 还没有评估数据。

描述

What happened?

Every save applies its response as the workflow's metadata: the workspace autosave (workspace.component.ts), the menu's own save (MenuComponent.persistWorkflow: rename, description, revert) and the Canvas -> Form View switch's save. Saves are sent one at a time since #8456, so a response can land after a newer local edit and overwrite it:

  • Rename the workflow while an autosave is in flight: the autosave's response puts the old name back (until the rename's own save answers).
  • Click Form View, then rename while the switch's save is out: the rename's save is queued behind the switch's, the switch navigates when its own save completes, and the full-page load aborts the rename's save (metadata edits do not emit workflowChanged(), so the hand-over does not wait for them).

Deferred from #8456 on review (threads on menu.component.ts:692 and :231): the rule belongs in WorkflowPersistService, the one place every save goes through, not in one caller.

How to reproduce?
  1. Open a workflow on the operator canvas and make a graph edit (an autosave starts).
  2. Before it answers, rename the workflow in the title bar.
  3. The title flips back to the old name when the autosave's response is applied.

Or: click Form View and rename during the hand-over's save; the rename is lost.

Proposed fix

In WorkflowPersistService: do not apply (or hand back for applying) a response a newer local edit has overtaken, for every caller alike -- e.g. a revision per save, or apply from the response only the fields that still match what was sent; and let the Form View hand-over wait for the save queue to drain rather than for its own save only.

Version/Branch

main, after #8456.

Commit Hash

main

Browsers

All

Relevant log output

n/a

主要语言
Scala
星标
322
派生
195
平均合并
2 天 16 小时
30 天内合并 PR
127

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

apache/texera 的其他 Issue

查看 apache/texera 的全部 Issue

相似的 Issue

更多 Scala Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。