Defer dynamic-height list updates while the Automations section is hidden and remeasure rows when it becomes visible.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: b4bb084c-7e34-4dcc-99de-0ad3b864fa59
* add vscode-pet
* chat: refine VS Code pet interactions
- Adds product-specific, optimized chat buddies to make the pet lightweight enough to remain visible across chat surfaces.
- Keeps the pet anchored to the composer so confirmations, empty states, and scroll controls remain usable without layout shifts.
- Adds accessible hover and toggle interactions so the feature feels discoverable while respecting reduced motion.
- Executes action-style slash commands immediately during active turns so UI commands do not become queued prompts.
- Excludes GIF binaries from text hygiene checks, matching the existing treatment of other image formats.
(Commit message generated by Copilot)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* cursor tracking + address feedback
* Address chat pet review feedback
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* fix clipping issue
* sync eyes
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Remove customizationDirectory from agent session metadata and related tests
* Refactor ClaudeAgent and ClaudeSessionMetadataStore to remove customizationDirectory handling and simplify session metadata projection
* Experimental: clean up dictation transcript with a language model
Add an opt-in `dictation.experimental.llmCleanup` setting that passes the final
on-device dictation transcript through a small utility language model
(copilot-utility-small, in the spirit of gpt-4o-mini) to restore punctuation,
capitalization, and paragraph breaks that the streaming ASR model omits, and to
drop filler words. Runs once in stopAndTranscribe() after the raw transcript is
produced; falls back to the raw transcript when no model is available (e.g. AI
features disabled) or the request fails. Off by default.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: c599eae0-1e8b-485b-b56c-cf609693fef9
* Enable LLM dictation cleanup by default; address review feedback
- Turn `dictation.experimental.llmCleanup` on by default.
- Own a per-cleanup CancellationTokenSource with a 10s deadline; cancel it from
cancel() and bail out of stopAndTranscribe() if the session was aborted while
cleanup ran, so a stalled/aborted request can't leave dictation stuck in
Transcribing or tear down a newly started session.
- Measure finalizeMs after cleanup so the metric includes model latency.
- Skip cleanup for transcripts over the char cap instead of truncating them,
preserving the raw-transcript fallback guarantee.
- Consume the response stream with strict error propagation and await
response.result, so only a complete response can replace the transcript.
- Clarify the prompt: preserve wording, with an explicit exception for filler
words and false starts.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: c599eae0-1e8b-485b-b56c-cf609693fef9
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: c599eae0-1e8b-485b-b56c-cf609693fef9
The "_resumeSession fallback › falls back to createSession after a Start Over
truncate leaves the session empty" test intermittently exceeds the 2000ms
mocha timeout in CI. Skip it until the flakiness is root-caused and fixed.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: c599eae0-1e8b-485b-b56c-cf609693fef9
Voice: don't auto-send turn by default when hands-free is disabled
When agents.voice.handsFree is disabled, suppress trailing-silence and
stop-phrase turn ending unless the corresponding setting
(agents.voice.turn.silenceMs / agents.voice.turn.stopPhrases) has been
explicitly configured. This keeps manual control over when a turn is sent
for users who opt out of the hands-free loop. Also re-send the turn config
when handsFree changes, and document the behavior in the setting
descriptions.
Fixes#327217
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: c599eae0-1e8b-485b-b56c-cf609693fef9
* Fix automation model targeting for Agent Host
Automations used the logical session type for model selection, which saved extension-backed model identifiers for Agent Host targets. Preserve the concrete model target and canonicalize matching legacy identifiers before sending.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: a96dd883-5a84-41e4-8468-96182f2f09d1
* Preserve legacy automation model on edit
Resolve saved logical-session model identifiers into the selected concrete target during automation dialog restore, including late model and provider registration.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: a96dd883-5a84-41e4-8468-96182f2f09d1
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: a96dd883-5a84-41e4-8468-96182f2f09d1
* Agent Host changes for sbatten/agents/recent-papercuts-issues-review
* Refactor agent plugin service implementation and tests
Improve the agentPluginServiceImpl for better performance and readability.
Update agentPluginFormatDetection tests to cover new functionality.
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Align the remote protocol client dispatch signatures with the chat actions handled by outgoing attachment grants.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Don't flash input needed for auto-approved tools in sessions list
When a session runs with bypass approvals, client-contributed tools (e.g. the browser tools) briefly showed the session as `input needed` in the sessions window before clearing on their own. Auto-approved calls transition through PendingConfirmation and Running while the owning client auto-approves and runs them, and both host-owned status paths surfaced that as InputNeeded.
Skip the session `inputNeeded` queue entries and demote the aggregated chat-summary status for tool calls flagged `autoApproveBySetting`, scoped to the parameter-confirmation gate so a genuine PendingResultConfirmation still surfaces.
Fixes#325631
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Address PR feedback: gate status demotion on present auto-approval
Only demote InputNeeded to InProgress when an auto-approved pending confirmation is actually present and no genuine blocker exists, so a restored summary with no loaded active turn keeps its InputNeeded status. Condense verbose comments per review.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Fix hygiene: replace en-dash with hyphen in comment
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Fix compile: use InputRequest response parts after protocol merge
The merge from main removed ChatState.inputRequests (elicitations now live as InputRequest response parts) and added the AuthRequired tool status. Update chatAwaitsUserInput to mirror the reducer's summaryStatus model: open input-request parts and auth-required tools count as genuine input, while an auto-approved parameter confirmation still does not.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Fix test compile: add required ActiveTurn.startedAt field
The protocol merge made ActiveTurn.startedAt required; add it to the test's chatState helper.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Grant remote Agent Host connections implicit read access to resource attachments before dispatch and reconnect replay.
Fixes#326523
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* sessions: improve blocked sessions overlay actions
Add bulk-ignore and close toolbar actions, and keep acknowledged approvals dismissed across chat model reloads by using stable tool-call identities.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
agentHost: preserve trusted model IDs in telemetry
Report advertised provider model IDs as trusted telemetry values while replacing BYOK and unrecognized selections with generic labels. Add coverage for trusted, BYOK, and unknown model selections.\n\n(Written by Copilot)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>