mirror of
https://github.com/microsoft/vscode.git
synced 2026-07-12 22:08:04 -05:00
* sessions: add browser-style chat tab keybindings (Cmd+T, Cmd+Shift+T, Delete) Add three keybindings to the agents window that mirror browser tab management: - Cmd/Ctrl+T: New Chat — opens a new chat within the active session, scoped to sessions that support multiple chats and are not archived. - Cmd/Ctrl+Shift+T: Reopen Last Closed Chat — reopens the most recently closed chat tab. Tracks close order via a new _closedChatOrder array on VisibleSession (append on close, splice on reopen), exposed as lastClosedChat on IActiveSession, so reopen order is correct regardless of original chat creation order. - Delete / Cmd+Backspace (Mac): Delete Chat — permanently deletes the active non-main chat with confirmation. Guarded by InputFocusedContext.toNegated() so it never fires while the user is typing in the chat composer or any other input field. All three keybindings are scoped to IsSessionsWindowContext and EditorAreaFocusContext.toNegated() so they only activate in the agents window outside the editor area. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * fix: add lastClosedChat to IActiveSession test mocks Three test files construct IActiveSession object literals that now need the lastClosedChat property added after it was introduced to the interface. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * fix: guard lastClosedChat against stale deleted chats; add MRU tests - lastClosedChat now walks _closedChatOrder from newest to oldest and skips entries whose chat has been deleted from the session (no longer in session.chats or _closedChatUris), so Reopen Last Closed Chat never no-ops on a stale reference after deletion. - Adds 4 unit tests to 'VisibleSession - open/close chats' covering: - MRU close-order correctness (close C then B → last closed is B) - lastClosedChat updates after reopening the last-closed chat - returns undefined when nothing is closed - skips deleted chats and falls back to the next valid one Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * fix: add lastClosedChat to remaining IActiveSession test mocks Two more test files (sessionsListModelService.test.ts and sessionNavigation.test.ts) construct IActiveSession object literals that were missing the lastClosedChat property. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>