Files
vscode/src
Sandeep Somavarapu e7bf9e83c8 sessions: add browser-style chat tab keybindings (Cmd+T, Cmd+Shift+T, Delete) (#323794)
* 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>
2026-06-30 23:31:43 +00:00
..