fix(webgal): 预览基线有效期绑定编辑指针,修复保存后丢失继承变换字段 - #1037
Merged
MakinoharaShoko merged 2 commits intoSep 23, 2026
Merged
MakinoharaShoko merged 2 commits into
MakinoharaShoko merged 2 commits into
Conversation
效果编辑器会话中的保存场景、自动保存、预览面板刷新都会发一次不带 transformBaselineRevision 的 sync-scene。handleSyncScene 对所有无 token 的 sync 都执行 invalidateCurrentRevision() 并清空 setEffectBaselines,于是同一编辑指针上 的重复 sync 会打掉自己的基线:之后 preview.command.set-effect 的稀疏 payload 只能 用 baseTransform 合并,继承字段被解析成默认值(立绘丢缩放、滤镜)。写回语句不受 影响。 改为按 (sceneName, sentenceId) 判定失效:同指针的重复 sync 不失效 current snapshot;指针变化、runtime reset / reload、run-snippet / run-scene-content 仍然 失效。set-effect 的合并基线不再单独缓存,每次由 baseTransform + ready snapshot 现算,避免缓存与 snapshot 各有一套有效期。 revision-bound sync 的 settle 判定改用 replay 写回的 stoppedAtTarget(同场景且 停止指针不早于解析后的停点):原实现拿 payload 原始指针做严格相等,多行语句的 续行指针与 -next 链越点都会被误判为未停点,把刚在正确采样点发布的 snapshot 撤销。 不新增 wire 字段。
MakinoharaShoko
approved these changes
Sep 23, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
描述
效果编辑器打开期间,保存场景 / 自动保存 / 预览刷新会发一次不带
transformBaselineRevision的sync-scene。运行时对任何无 token 的 sync 都会失效当前基线,于是同一编辑指针上的重复 sync 会打掉自己的基线:之后的set-effect只有稀疏 payload,只能用baseTransform合并,继承字段被解析成默认值(立绘丢缩放、滤镜),画面与表单不一致;写回语句不受影响。改动:
set-effect合并基线)的有效期改为绑定(sceneName, sentenceId):同指针的重复 sync 不失效;指针变化、reset / reload、run-snippet/run-scene-content仍然失效。set-effect的合并基线不再单独缓存,每次由baseTransform+ ready snapshot 现算。stoppedAtTarget(同场景 + 停止指针不早于解析后的停点),修掉多行语句续行指针与-next越点被误判为未停点导致的无谓失效。动机和背景
基线的语义边界本来就是「当前编辑指针」,而不是「最近一次携带 token 的 sync」。同一次编辑会话里的保存 / 自动保存 / 预览刷新都落在同一指针上,重放的是同一段脚本,没有理由失效基线。