-
Notifications
You must be signed in to change notification settings - Fork 38.3k
Closed
Labels
chatfeature-requestRequest for new features or functionalityRequest for new features or functionalityon-release-notesIssue/pull request mentioned in release notesIssue/pull request mentioned in release noteson-testplan
Milestone
Description
This issue captures some work in the area of managing ChatModels so that we're set for everything we want to do with managing agent sessions. The primary task is
- ChatModel can live independently of a ChatWidget (Moving chat session stops/interrupts agent #246134)
and in order to do it right, here are some other improvements we can do
- Support creating sessions fully in the background without first opening an editor
- This should work but no scenario triggers this right now
- ChatModel should have a clear observable
stateto let consumers watch for it to be waiting on a confirmation, without having to watch thevalueof a particular response. chat: add requestNeedsInput on the chat model #278171- And a timestamp to determine how long the current response has been running chat: add additional timing information on the model #278449
- Try to clean up how the ChatModel/editing session are initialized chat: make creation of the edit session sync #277924 chat: remove
waitForReady#277944- This is too complicated:
vscode/src/vs/workbench/contrib/chat/common/chatModel.ts
Lines 1493 to 1503 in b59493a
startEditingSession(isGlobalEditingSession?: boolean, transferFromSession?: IChatEditingSession): void { const editingSessionPromise = transferFromSession ? this.chatEditingService.transferEditingSession(this, transferFromSession) : isGlobalEditingSession ? this.chatEditingService.startOrContinueGlobalEditingSession(this) : this.chatEditingService.createEditingSession(this); this._editingSession = new ObservablePromise(editingSessionPromise); this._editingSession.promise.then(editingSession => { this._store.isDisposed ? editingSession.dispose() : this._register(editingSession); }); } - It makes chat session init async when it doesn't need to be
- And led to this hack, which is something that makes it hard to work with ChatWidgets:
async waitForReady(): Promise<void> {
- This is too complicated:
- Have really solid interfaces for working with chat sessions and chat widgets
- eg, I should be able to say "open this chat session URI" and it "just works" without having to check whether it's already open
- After a lot of work to fix this, we apparently regressed that the agent sessions view can open multiple copies of the same chat session. Then when you close one, everything breaks.
- This code should get chat sessions in a much simpler way
vscode/src/vs/workbench/contrib/chat/browser/chatSessions/localChatSessionsProvider.ts
Line 25 in bfe4e1a
export class LocalChatSessionsProvider extends Disposable implements IChatSessionItemProvider, IWorkbenchContribution { - Register a custom opener so that
IOpenerService#opencan be used to reveal/open chat sessions easily
- Fully adopt
IChatWidgetService#openSessionin actions that open chats @roblourens Adopt IChatWidgetService.openSession in more places #278973 - Support moving open chats via
IChatWidgetService#openSession@roblourens - Fix bugs around having multiple chats active
- Model Picker not working properly when Chat View is opened in a new window vscode-copilot-release#10080 Bad toolbar context
- Some commands work on the chat view, when you expect them to work on the chat editor. Attaching context might not work when a chat editor is in the background? chat: implement and migrate to IChatWidgetService.reveal/revealWidget #277971
- History can conflict between editors chat: unify history in different editors #278846
- Review usages of IChatWidgetService.lastFocusedWidget #278638
- Edit sessions in background ChatModels @connor4312
- Get rid of keep/undo prompt when switching chat sessions
- Restore edits in the un-accepted state
- Quick chat sessions should not stay alive in background @roblourens
- Decide experience for informing users of the new behavior @roblourens
- Archiving chats in agent sessions #278825 @bpasero
- 💪 GIve users a way to reapply edits when restoring an old chat session
- ✋ ChatModels survive window reload?
- Would need to change the way the agent is invoked from VS Code
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
chatfeature-requestRequest for new features or functionalityRequest for new features or functionalityon-release-notesIssue/pull request mentioned in release notesIssue/pull request mentioned in release noteson-testplan