mirror of
https://github.com/feigeCode/navop.git
synced 2026-09-22 00:01:25 +00:00
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 真机 回归(报障人协助)。