Improve agent feedback workflows and persistence - #331079
Merged
Benjamin Christopher Simmonds (benibenj) merged 19 commits intoAug 16, 2026
Merged
Improve agent feedback workflows and persistence#331079Benjamin Christopher Simmonds (benibenj) merged 19 commits into
Benjamin Christopher Simmonds (benibenj) merged 19 commits into
Conversation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot started reviewing on behalf of
Benjamin Christopher Simmonds (benibenj)
August 16, 2026 14:06
View session
…edgehog # Conflicts: # src/vs/platform/agentHost/test/node/agentService.test.ts
Contributor
There was a problem hiding this comment.
Pull request overview
Improves agent-feedback persistence, presentation, submission, and agent-host tooling.
Changes:
- Persists and reconnects annotation state.
- Adds resolved-comment reveal, context views, and split feedback actions.
- Adds model-readiness handling, reply tooling, and targeted tests.
Show a summary per file
| File | Description |
|---|---|
src/vs/workbench/test/browser/componentFixtures/fixtureUtils.ts |
Updates feedback service fixture. |
src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatAgentFeedbackReviewConfirmationSubPart.ts |
Repositions comment expansion control. |
src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatAgentFeedbackReviewConfirmation.css |
Styles revised expansion layout. |
src/vs/sessions/SINGLE_PANE_SCENARIOS.md |
Documents overlay behavior. |
src/vs/sessions/LAYOUT.md |
Documents banner readiness behavior. |
src/vs/sessions/contrib/sessionInputBanners/test/browser/sessionInputBannerWidget.test.ts |
Tests readiness and progress state. |
src/vs/sessions/contrib/sessionInputBanners/test/browser/sessionInputBanners.fixture.ts |
Adds loading fixture. |
src/vs/sessions/contrib/sessionInputBanners/browser/sessionInputBannerWidget.ts |
Waits before primary actions. |
src/vs/sessions/contrib/sessionInputBanners/browser/sessionInputBanners.ts |
Connects banners to chat readiness. |
src/vs/sessions/contrib/sessionInputBanners/browser/media/sessionInputBanners.css |
Updates progress-state documentation. |
src/vs/sessions/contrib/chat/browser/sessionsChatAccessibilityHelp.ts |
Documents feedback attachment navigation. |
src/vs/sessions/contrib/changes/browser/checksActions.ts |
Waits for the session widget. |
src/vs/sessions/contrib/agentFeedback/test/browser/sessionEditorComments.test.ts |
Tests explicit resolved visibility. |
src/vs/sessions/contrib/agentFeedback/test/browser/feedbackInputWidget.test.ts |
Tests split feedback actions. |
src/vs/sessions/contrib/agentFeedback/test/browser/agentFeedbackService.test.ts |
Tests visibility, scope, and widget loading. |
src/vs/sessions/contrib/agentFeedback/test/browser/agentFeedbackInputWidget.fixture.ts |
Instantiates the widget through DI. |
src/vs/sessions/contrib/agentFeedback/test/browser/agentFeedbackEditorWidget.test.ts |
Tests resolved-comment hiding. |
src/vs/sessions/contrib/agentFeedback/test/browser/agentFeedbackEditorOverlay.test.ts |
Tests empty-editor overlay suppression. |
src/vs/sessions/contrib/agentFeedback/test/browser/agentFeedbackAttachment.test.ts |
Tests attachment activation and context view. |
src/vs/sessions/contrib/agentFeedback/test/browser/agentEditorCommentsProvider.test.ts |
Tests delayed reveal and resolved hiding. |
src/vs/sessions/contrib/agentFeedback/browser/sessionEditorComments.ts |
Optionally exposes resolved comments. |
src/vs/sessions/contrib/agentFeedback/browser/nullAgentFeedbackService.contribution.ts |
Implements new no-op service APIs. |
src/vs/sessions/contrib/agentFeedback/browser/media/agentFeedbackAttachment.css |
Styles the new context view. |
src/vs/sessions/contrib/agentFeedback/browser/feedbackInputWidget.ts |
Adds dropdown action support. |
src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackService.ts |
Tracks visible resolved feedback. |
src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackOverviewRulerContribution.ts |
Includes explicitly revealed feedback. |
src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackEditorWidgetContribution.ts |
Reacts to visibility changes. |
src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackEditorWidget.ts |
Adds resolved-comment Hide action. |
src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackEditorOverlay.ts |
Hides overlays for empty Files. |
src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackEditorInputContribution.ts |
Adds split Add/Submit actions. |
src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackEditorActions.ts |
Navigates visible resolved comments. |
src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackContextView.ts |
Implements the comments context view. |
src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackAttachmentWidget.ts |
Activates single or grouped comments. |
src/vs/sessions/contrib/agentFeedback/browser/agentEditorCommentsProvider.ts |
Delays reveals until comments exist. |
src/vs/sessions/browser/chatWidgetUtils.ts |
Adds shared widget-loading helper. |
src/vs/platform/agentHost/test/node/serverToolGroups.test.ts |
Tests reply-tool display. |
src/vs/platform/agentHost/test/node/e2e/suites/serverToolsSuite.ts |
Includes reply tool in E2E coverage. |
src/vs/platform/agentHost/test/node/copilotToolDisplay.test.ts |
Tests friendly reply-tool naming. |
src/vs/platform/agentHost/test/node/copilotAgentSession.test.ts |
Updates feedback attachment prompt. |
src/vs/platform/agentHost/test/node/claudeAgent.test.ts |
Updates Claude attachment expectations. |
src/vs/platform/agentHost/test/node/agentService.test.ts |
Tests annotation persistence. |
src/vs/platform/agentHost/test/node/agentHostStateManager.test.ts |
Tests annotation cleanup. |
src/vs/platform/agentHost/test/node/agentFeedbackServerTools.test.ts |
Tests filtering and replies. |
src/vs/platform/agentHost/test/electron-browser/remoteAgentHostProtocolClient.test.ts |
Tests reconnect replay. |
src/vs/platform/agentHost/test/common/agentSubscription.test.ts |
Tests pending annotation preservation. |
src/vs/platform/agentHost/node/shared/agentFeedbackServerTools.ts |
Adds reply and resolved filtering. |
src/vs/platform/agentHost/node/agentService.ts |
Persists and restores annotations. |
src/vs/platform/agentHost/node/agentHostStateManager.ts |
Restores and cleans annotation state. |
src/vs/platform/agentHost/common/state/agentSubscription.ts |
Replays pending annotation actions. |
src/vs/platform/agentHost/common/meta/agentFeedbackAttachments.ts |
Mentions selective replies. |
src/vs/platform/agentHost/browser/remoteAgentHostProtocolClient.ts |
Replays generalized pending actions. |
src/vs/base/browser/ui/dropdown/dropdownActionViewItem.ts |
Supports menu keybinding labels. |
Review details
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
- Files reviewed: 52/52 changed files
- Comments generated: 2
- Review effort level: Balanced
Gate annotations subscribe on the annotations channel rather than session state, so a subscribe racing session restore no longer serves the synthetic empty snapshot. Show feedback row actions for keyboard-focused tree rows. Fix the implicit-any 'ref' compile error and align custom-tool permission 'args' test helpers with the tightened SDK type. Register the workbench services the feedback input widget now needs, and add the feedback events and visible-resolved-ids the comments provider reads to fixture mocks. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Benjamin Christopher Simmonds (benibenj)
enabled auto-merge (squash)
August 16, 2026 15:37
Sandeep Somavarapu (sandy081)
previously approved these changes
Aug 16, 2026
The previous commit changed custom-tool permission 'args' to Record<string, unknown> based on a typecheck run against a stale node_modules; @github/copilot-sdk 1.0.11 expects JsonValue, so restore it. Add the feedback visibility/reveal events and getVisibleResolvedFeedbackIds to the remaining IAgentFeedbackService mocks, so editor contributions that subscribe to them no longer throw in component fixtures. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
Screenshot ChangesBase: Changed (22)Added (2) |
roblourens
previously approved these changes
Aug 16, 2026
The prompts now advertise the new replyToComment tool and the listComments includeResolved input, so refresh the committed baselines to match. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sandeep Somavarapu (sandy081)
previously approved these changes
Aug 16, 2026
Feedback threads mix voices: the user, an agent's code review, and PR reviewers. Comments already carried a kind, but it was never explained to the model and replies carried no author at all, so an agent could not tell its own replyToComment text from an instruction the user typed. Record an author on each annotation entry, carry it through the client model so a client write no longer erases it, and surface it in listComments alongside the comment's own author. Document the vocabulary in the tool description (the only part of the contract the prompt carries) and stop defaulting unknown provenance to the user. The attachment hint now says the user selected these comments rather than wrote them, and agent replies are labelled in the editor widget. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
roblourens
previously approved these changes
Aug 16, 2026
Read the entry _meta leaf into a local before indexing the namespaced slot, matching the sibling annotation reader, so the untyped-meta rule is satisfied. Give the feedback input's Add button its own nls key instead of colliding with the line-number hover's 'Add Feedback'. Move chatWidgetUtils into the chat contrib: it reaches into vs/workbench/contrib, which vs/sessions/~ may not import but vs/sessions/contrib/*/~ may, and all three callers are contribs. Update the Claude and Copilot expectations for the reworded attachment hint. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Ulugbek Abdullaev (ulugbekna)
previously approved these changes
Aug 16, 2026
The shared server-tools suite seeds annotation entries without an author, so the comment falls back to its codeReview origin and the reply to the user. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The prompt snapshot header carries a tool count, which the hand-edited baselines did not update when replyToComment was added; re-derive it from the tool sections each file contains. Guard the banner's primary action after its readiness await: the widget can be disposed while waiting, and running then would submit against state the banner no longer represents. Clear the feedback service's per-session bookkeeping from a single onDidDeleteSession listener. Deleting a session released its annotations channel without clearing the recency, navigation and visible-resolved maps, so they were retained for the lifetime of the window; the backend is left untouched because its store is already gone. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Dmitriy Vasyura (dmitrivMS)
approved these changes
Aug 16, 2026
Benjamin Christopher Simmonds (benibenj)
merged commit Aug 16, 2026
38220ea
into
main
27 checks passed
Benjamin Christopher Simmonds (benibenj)
deleted the
benibenj/particular-hedgehog
branch
August 16, 2026 22:28
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Improves the agent feedback workflow across the Agents Window and agent host.
Summary
Issues
Fixes #328752
Fixes #328385
Fixes #328360
Fixes #328359
Fixes #328222
Fixes #327858
Fixes #326680
Fixes #322694
Testing
Not run at PR creation, per request. The branch includes targeted unit test updates for the changed behavior.