Files
胡飞 ed2f79e852 fix(editor): 关闭内置远程编辑器改为隐藏复用,规避 macOS Touch Bar 崩溃
issue #262:Intel Touch Bar 机型(MacBookPro16,1)上关闭内置文件编辑器弹窗
必现 SIGILL。用户崩溃报告显示致命点在 AppKit:NSWindow 销毁后
-_NSTouchBarFinderObservation invalidate 在 NSDisplayCycleFlush 里注销 KVO
观察时抛出未捕获 NSException,-[NSApplication _crashOnException:] 以 ud2
终止进程。与 Rust panic 无关(release 为 panic=abort),Apple Silicon 无
Touch Bar 故不可复现。

修复:macOS 上关闭不再销毁原生窗口,改为 orderOut: 隐藏 + 复用:
- prepare_window_close 统一收口全部关闭路径(红按钮/⌘W/保存后关闭/
  末标签关闭),隐藏成功即保留 GPUI 窗口与注册表,下次打开复用
- editor_window_visibility::hide_for_reuse 仅 macOS 实现,其余平台/失败
  回退原 remove_window 行为
- client 下沉到每个 tab(修跨会话复用会走错连接的问题);同一窗口按
  (remote_path, Arc::ptr_eq) 匹配标签
- PendingCloseAction::Tab 改用稳定 tab id;prompt 引入代际计数,旧确认
  不得作用于复用后的新会话;隐藏时 next_tab_id 不回退,杜绝旧 I/O 落到
  新标签
- apply_load/save_error 返回是否命中标签,未命中的迟到错误不再弹通知

验证:cargo test -p remote_file_editor 70 passed(新增 5 个状态级复用/
代际/跨连接用例 + 3 个源码契约测试);原生隐藏/复用仍需 Touch Bar 真机
回归(报障人协助)。
2026-09-21 17:10:19 +08:00
..