inspect 重构后,从一个已预览草图的文件切到没有可预览内容的文件(例如新建空文件)时,视口不再出现 "Select to preview" 提示。
原因(已在 d6971c4/00128d2 之后的工作区实测):切换文件时旧文件的视图仍短暂呈现在视口中,此时 previewState.file 已是新文件、awaitingFile / retaining 都已落地为 false,于是 observeTarget(true) 把 hasPreviewedTarget 置为 true;而 empty = !hasPreviewedTarget && !retaining,提示此后不会再出现。
证据:
- sketch-navigation.test.ts 的 "files have independent sketch views and re-enter immediately after empty previews" 用例在未改动的 main 上同样失败(waitFor #viewport-empty-state 超时)。
- 运行时探针显示切换后 previewed=true、empty=false、sourceContext/renderable 均为 false。
该用例不进入 CI 的 examples 套件,因此之前未被发现。修复方向:只在呈现目标确实属于当前文件时记录 hasPreviewedTarget,或在切换到新文件时忽略旧视图的目标。
inspect 重构后,从一个已预览草图的文件切到没有可预览内容的文件(例如新建空文件)时,视口不再出现 "Select to preview" 提示。
原因(已在 d6971c4/00128d2 之后的工作区实测):切换文件时旧文件的视图仍短暂呈现在视口中,此时 previewState.file 已是新文件、awaitingFile / retaining 都已落地为 false,于是 observeTarget(true) 把 hasPreviewedTarget 置为 true;而 empty = !hasPreviewedTarget && !retaining,提示此后不会再出现。
证据:
该用例不进入 CI 的 examples 套件,因此之前未被发现。修复方向:只在呈现目标确实属于当前文件时记录 hasPreviewedTarget,或在切换到新文件时忽略旧视图的目标。