Skip to content

Show model/agent indicator while response is streaming, not only after completion #284886

@m-tuyishime

Description

@m-tuyishime

Type: Bug

Feature Area: Copilot Chat UI/UX

Description:
Currently, the model indicator (small tag showing "Claude Sonnet 4.5", "GPT-4.1", etc.) only appears at the bottom right of a chat response after it has fully completed. During streaming, there's no visible indicator of which model/agent is responding.

Current Behavior:

  • Model tag appears only after response completion
  • Tag is located at bottom right of the last message

Requested Behavior:
Show the model/agent indicator in a persistent location:

  • Option 1: Always visible in a fixed position (e.g., chat header)
  • Option 2: Show on hover even during streaming

Use Case:
When using the "auto" model, it's helpful to know immediately which model is responding, especially for

Extension version: 0.35.2
VS Code version: Code - Insiders 1.108.0-insider (7f08f95, 2025-12-19T14:09:25.917Z)
OS version: Windows_NT x64 10.0.19045
Modes:
Remote OS version: Linux x64 6.8.0-1030-azure

Logs
Trace: [NES][Triggerer][onDidChangeTextDocument] created
Trace: [NES][Triggerer][onDidChangeTextDocument] Return: ignored document
Trace: [NES][Triggerer][onDidChangeTextEditorSelection] created
Trace: [NES][Triggerer][onDidChangeTextDocument] created
Trace: [NES][Triggerer][onDidChangeTextDocument] Return: ignored document
Trace: [NES][Triggerer][onDidChangeTextEditorSelection] created
Trace: [NES][Triggerer][onDidChangeTextDocument] created
Trace: [NES][Triggerer][onDidChangeTextDocument] Return: ignored document
Trace: [NES][Triggerer][onDidChangeTextEditorSelection] created
Trace: [NES][Triggerer][onDidChangeTextDocument] created
Trace: [NES][Triggerer][onDidChangeTextDocument] Return: ignored document
Trace: [NES][Triggerer][onDidChangeTextEditorSelection] created
Trace: [NES][Triggerer][onDidChangeTextDocument] created
Trace: [NES][Triggerer][onDidChangeTextDocument] Return: ignored document
Trace: [NES][Triggerer][onDidChangeTextEditorSelection] created
Trace: [NES][Triggerer][onDidChangeTextDocument] created
Trace: [NES][Triggerer][onDidChangeTextDocument] Return: ignored document
Trace: [NES][Triggerer][onDidChangeTextEditorSelection] created
Trace: [NES][Triggerer][onDidChangeTextDocument] created
Trace: [NES][Triggerer][onDidChangeTextDocument] Return: ignored document
Trace: [NES][Triggerer][onDidChangeTextEditorSelection] created
Trace: [NES][Triggerer][onDidChangeTextDocument] created
Trace: [NES][Triggerer][onDidChangeTextDocument] Return: ignored document
Trace: [NES][Triggerer][onDidChangeTextEditorSelection] created
Trace: [NES][Triggerer][onDidChangeTextDocument] created
Trace: [NES][Triggerer][onDidChangeTextDocument] Return: ignored document
Trace: [NES][Triggerer][onDidChangeTextEditorSelection] created
Trace: [NES][Triggerer][onDidChangeTextDocument] created
Trace: [NES][Triggerer][onDidChangeTextDocument] Return: ignored document
Trace: [NES][Triggerer][onDidChangeTextEditorSelection] created
Trace: [NES][Triggerer][onDidChangeTextDocument] created
Trace: [NES][Triggerer][onDidChangeTextDocument] Return: ignored document
Trace: [NES][Triggerer][onDidChangeTextEditorSelection] created
Trace: [NES][Triggerer][onDidChangeTextEditorSelection][editorSwitch] document switch disabled
Trace: [NES][Triggerer][onDidChangeTextEditorSelection] Return: document not tracked - does not have recent changes
Trace: [Diagnostics] got diagnostics 
Trace: [GitServiceImpl][doOpenRepository] Active repository: {"_repo":{"rootUri":{"$mid":1,"external":"file:///workspaces/nextjs-boilerplate","path":"/workspaces/nextjs-boilerplate","scheme":"file"},"inputBox":{},"state":{},"ui":{}},"rootUri":{"$mid":1,"external":"file:///workspaces/nextjs-boilerplate","path":"/workspaces/nextjs-boilerplate","scheme":"file"},"headBranchName":"copilot/add-page-transition-loading-state","headCommitHash":"2ca79a4c08b9dd620ed51d66e3dd852e63cb44d0","upstreamBranchName":"copilot/add-page-transition-loading-state","upstreamRemote":"origin","isRebasing":true,"remotes":["origin"],"remoteFetchUrls":["https://github.com/m-tuyishime/nextjs-boilerplate"],"changes":{"mergeChanges":[],"indexChanges":[],"workingTree":[],"untrackedChanges":[]},"_onDidChangeSignal":{"_observers":{},"debugName":"Observable Signal From Event"},"headBranchNameObs":{"_observers":{},"_debugNameData":{},"_state":0,"_updateCount":0,"_dependencies":{},"_dependenciesToBeRemoved":{},"_isUpdating":false,"_isComputing":false,"_didReportChange":false,"_isInBeforeUpdate":false,"_isReaderValid":false,"_removedObserverToCallEndUpdateOn":null},"headCommitHashObs":{"_observers":{},"_debugNameData":{},"_state":0,"_updateCount":0,"_dependencies":{},"_dependenciesToBeRemoved":{},"_isUpdating":false,"_isComputing":false,"_didReportChange":false,"_isInBeforeUpdate":false,"_isReaderValid":false,"_removedObserverToCallEndUpdateOn":null},"upstreamBranchNameObs":{"_observers":{},"_debugNameData":{},"_state":0,"_updateCount":0,"_dependencies":{},"_dependenciesToBeRemoved":{},"_isUpdating":false,"_isComputing":false,"_didReportChange":false,"_isInBeforeUpdate":false,"_isReaderValid":false,"_removedObserverToCallEndUpdateOn":null},"upstreamRemoteObs":{"_observers":{},"_debugNameData":{},"_state":0,"_updateCount":0,"_dependencies":{},"_dependenciesToBeRemoved":{},"_isUpdating":false,"_isComputing":false,"_didReportChange":false,"_isInBeforeUpdate":false,"_isReaderValid":false,"_removedObserverToCallEndUpdateOn":null},"isRebasingObs":{"_observers":{},"_debugNameData":{},"_state":0,"_updateCount":0,"_dependencies":{},"_dependenciesToBeRemoved":{},"_isUpdating":false,"_isComputing":false,"_didReportChange":false,"_isInBeforeUpdate":false,"_isReaderValid":false,"_removedObserverToCallEndUpdateOn":null},"_checkIsIgnored":{"_waitingTimeMs":1000,"_queue":[],"_timeout":null},"_isIgnored":{"_map":{},"_map2":{}}}
Trace: [GitServiceImpl][doOpenRepository] Active repository: {"_repo":{"rootUri":{"$mid":1,"external":"file:///workspaces/nextjs-boilerplate","path":"/workspaces/nextjs-boilerplate","scheme":"file"},"inputBox":{},"state":{},"ui":{}},"rootUri":{"$mid":1,"external":"file:///workspaces/nextjs-boilerplate","path":"/workspaces/nextjs-boilerplate","scheme":"file"},"headBranchName":"copilot/add-page-transition-loading-state","headCommitHash":"2ca79a4c08b9dd620ed51d66e3dd852e63cb44d0","upstreamBranchName":"copilot/add-page-transition-loading-state","upstreamRemote":"origin","isRebasing":true,"remotes":["origin"],"remoteFetchUrls":["https://github.com/m-tuyishime/nextjs-boilerplate"],"changes":{"mergeChanges":[],"indexChanges":[],"workingTree":[],"untrackedChanges":[]},"_onDidChangeSignal":{"_observers":{},"debugName":"Observable Signal From Event"},"headBranchNameObs":{"_observers":{},"_debugNameData":{},"_state":0,"_updateCount":0,"_dependencies":{},"_dependenciesToBeRemoved":{},"_isUpdating":false,"_isComputing":false,"_didReportChange":false,"_isInBeforeUpdate":false,"_isReaderValid":false,"_removedObserverToCallEndUpdateOn":null},"headCommitHashObs":{"_observers":{},"_debugNameData":{},"_state":0,"_updateCount":0,"_dependencies":{},"_dependenciesToBeRemoved":{},"_isUpdating":false,"_isComputing":false,"_didReportChange":false,"_isInBeforeUpdate":false,"_isReaderValid":false,"_removedObserverToCallEndUpdateOn":null},"upstreamBranchNameObs":{"_observers":{},"_debugNameData":{},"_state":0,"_updateCount":0,"_dependencies":{},"_dependenciesToBeRemoved":{},"_isUpdating":false,"_isComputing":false,"_didReportChange":false,"_isInBeforeUpdate":false,"_isReaderValid":false,"_removedObserverToCallEndUpdateOn":null},"upstreamRemoteObs":{"_observers":{},"_debugNameData":{},"_state":0,"_updateCount":0,"_dependencies":{},"_dependenciesToBeRemoved":{},"_isUpdating":false,"_isComputing":false,"_didReportChange":false,"_isInBeforeUpdate":false,"_isReaderValid":false,"_removedObserverToCallEndUpdateOn":null},"isRebasingObs":{"_observers":{},"_debugNameData":{},"_state":0,"_updateCount":0,"_dependencies":{},"_dependenciesToBeRemoved":{},"_isUpdating":false,"_isComputing":false,"_didReportChange":false,"_isInBeforeUpdate":false,"_isReaderValid":false,"_removedObserverToCallEndUpdateOn":null},"_checkIsIgnored":{"_waitingTimeMs":1000,"_queue":[],"_timeout":null},"_isIgnored":{"_map":{},"_map2":{}}}
Trace: [GitServiceImpl][doOpenRepository] Active repository: {"_repo":{"rootUri":{"$mid":1,"external":"file:///workspaces/nextjs-boilerplate","path":"/workspaces/nextjs-boilerplate","scheme":"file"},"inputBox":{},"state":{},"ui":{}},"rootUri":{"$mid":1,"external":"file:///workspaces/nextjs-boilerplate","path":"/workspaces/nextjs-boilerplate","scheme":"file"},"headBranchName":"copilot/add-page-transition-loading-state","headCommitHash":"2ca79a4c08b9dd620ed51d66e3dd852e63cb44d0","upstreamBranchName":"copilot/add-page-transition-loading-state","upstreamRemote":"origin","isRebasing":true,"remotes":["origin"],"remoteFetchUrls":["https://github.com/m-tuyishime/nextjs-boilerplate"],"changes":{"mergeChanges":[],"indexChanges":[],"workingTree":[],"untrackedChanges":[]},"_onDidChangeSignal":{"_observers":{},"debugName":"Observable Signal From Event"},"headBranchNameObs":{"_observers":{},"_debugNameData":{},"_state":0,"_updateCount":0,"_dependencies":{},"_dependenciesToBeRemoved":{},"_isUpdating":false,"_isComputing":false,"_didReportChange":false,"_isInBeforeUpdate":false,"_isReaderValid":false,"_removedObserverToCallEndUpdateOn":null},"headCommitHashObs":{"_observers":{},"_debugNameData":{},"_state":0,"_updateCount":0,"_dependencies":{},"_dependenciesToBeRemoved":{},"_isUpdating":false,"_isComputing":false,"_didReportChange":false,"_isInBeforeUpdate":false,"_isReaderValid":false,"_removedObserverToCallEndUpdateOn":null},"upstreamBranchNameObs":{"_observers":{},"_debugNameData":{},"_state":0,"_updateCount":0,"_dependencies":{},"_dependenciesToBeRemoved":{},"_isUpdating":false,"_isComputing":false,"_didReportChange":false,"_isInBeforeUpdate":false,"_isReaderValid":false,"_removedObserverToCallEndUpdateOn":null},"upstreamRemoteObs":{"_observers":{},"_debugNameData":{},"_state":0,"_updateCount":0,"_dependencies":{},"_dependenciesToBeRemoved":{},"_isUpdating":false,"_isComputing":false,"_didReportChange":false,"_isInBeforeUpdate":false,"_isReaderValid":false,"_removedObserverToCallEndUpdateOn":null},"isRebasingObs":{"_observers":{},"_debugNameData":{},"_state":0,"_updateCount":0,"_dependencies":{},"_dependenciesToBeRemoved":{},"_isUpdating":false,"_isComputing":false,"_didReportChange":false,"_isInBeforeUpdate":false,"_isReaderValid":false,"_removedObserverToCallEndUpdateOn":null},"_checkIsIgnored":{"_waitingTimeMs":1000,"_queue":[],"_timeout":null},"_isIgnored":{"_map":{},"_map2":{}}}
Trace: [NES][Triggerer][onDidChangeTextDocument] created
Trace: [NES][Triggerer][onDidChangeTextDocument] Return: ignored document
Trace: [NES][Triggerer][onDidChangeTextDocument] created
Trace: [NES][Triggerer][onDidChangeTextDocument] Return: ignored document
Trace: [NES][Triggerer][onDidChangeTextDocument] created
Trace: [NES][Triggerer][onDidChangeTextDocument] Return: ignored document
Trace: [NES][Triggerer][onDidChangeTextEditorSelection] created
Trace: [NES][Triggerer][onDidChangeTextDocument] created
Trace: [NES][Triggerer][onDidChangeTextDocument] Return: ignored document
Trace: [NES][Triggerer][onDidChangeTextEditorSelection] created
Trace: [GitServiceImpl][doOpenRepository] Active repository: {"_repo":{"rootUri":{"$mid":1,"external":"file:///workspaces/nextjs-boilerplate","path":"/workspaces/nextjs-boilerplate","scheme":"file"},"inputBox":{},"state":{},"ui":{}},"rootUri":{"$mid":1,"external":"file:///workspaces/nextjs-boilerplate","path":"/workspaces/nextjs-boilerplate","scheme":"file"},"headBranchName":"copilot/add-page-transition-loading-state","headCommitHash":"2ca79a4c08b9dd620ed51d66e3dd852e63cb44d0","upstreamBranchName":"copilot/add-page-transition-loading-state","upstreamRemote":"origin","isRebasing":true,"remotes":["origin"],"remoteFetchUrls":["https://github.com/m-tuyishime/nextjs-boilerplate"],"changes":{"mergeChanges":[],"indexChanges":[],"workingTree":[],"untrackedChanges":[]},"_onDidChangeSignal":{"_observers":{},"debugName":"Observable Signal From Event"},"headBranchNameObs":{"_observers":{},"_debugNameData":{},"_state":0,"_updateCount":0,"_dependencies":{},"_dependenciesToBeRemoved":{},"_isUpdating":false,"_isComputing":false,"_didReportChange":false,"_isInBeforeUpdate":false,"_isReaderValid":false,"_removedObserverToCallEndUpdateOn":null},"headCommitHashObs":{"_observers":{},"_debugNameData":{},"_state":0,"_updateCount":0,"_dependencies":{},"_dependenciesToBeRemoved":{},"_isUpdating":false,"_isComputing":false,"_didReportChange":false,"_isInBeforeUpdate":false,"_isReaderValid":false,"_removedObserverToCallEndUpdateOn":null},"upstreamBranchNameObs":{"_observers":{},"_debugNameData":{},"_state":0,"_updateCount":0,"_dependencies":{},"_dependenciesToBeRemoved":{},"_isUpdating":false,"_isComputing":false,"_didReportChange":false,"_isInBeforeUpdate":false,"_isReaderValid":false,"_removedObserverToCallEndUpdateOn":null},"upstreamRemoteObs":{"_observers":{},"_debugNameData":{},"_state":0,"_updateCount":0,"_dependencies":{},"_dependenciesToBeRemoved":{},"_isUpdating":false,"_isComputing":false,"_didReportChange":false,"_isInBeforeUpdate":false,"_isReaderValid":false,"_removedObserverToCallEndUpdateOn":null},"isRebasingObs":{"_observers":{},"_debugNameData":{},"_state":0,"_updateCount":0,"_dependencies":{},"_dependenciesToBeRemoved":{},"_isUpdating":false,"_isComputing":false,"_didReportChange":false,"_isInBeforeUpdate":false,"_isReaderValid":false,"_removedObserverToCallEndUpdateOn":null},"_checkIsIgnored":{"_waitingTimeMs":1000,"_queue":[],"_timeout":null},"_isIgnored":{"_map":{},"_map2":{}}}
Request IDs
706d9043-b4d6-4441-9f69-db422d8ab960
924f5fcd-c93c-442f-ad2d-0529c18fd298
1ec806b1-5712-4600-9f8b-fc631b9a52a3
ad5adfc4-d4cb-422a-b9ec-8d75dccbb4c0
75c13c84-3d63-417c-bd45-b6f9344c41dd
System Info
Item Value
CPUs AMD Ryzen 7 2700X Eight-Core Processor (16 x 3700)
GPU Status 2d_canvas: enabled
direct_rendering_display_compositor: disabled_off_ok
gpu_compositing: enabled
multiple_raster_threads: enabled_on
opengl: enabled_on
rasterization: enabled
raw_draw: disabled_off_ok
skia_graphite: disabled_off
trees_in_viz: disabled_off
video_decode: enabled
video_encode: enabled
webgl: enabled
webgl2: enabled
webgpu: enabled
webnn: disabled_off
Load (avg) undefined
Memory (System) 63.93GB (37.89GB free)
Process Argv --crash-reporter-id cbf748fd-479f-463e-9833-893080c9e51d
Screen Reader no
VM 0%
Item Value
Remote Codespaces: glorious cod
OS Linux x64 6.8.0-1030-azure
CPUs AMD EPYC 7763 64-Core Processor (2 x 0)
Memory (System) 7.76GB (4.01GB free)
VM 0%
A/B Experiments
vsliv368cf:30146710
pythonvspyt551cf:31249598
nativeloc1:31118317
dwcopilot:31158714
dwoutputs:31242946
copilot_t_ci:31333650
g012b348:31231168
pythonrdcb7:31268811
pythonpcpt1:31399616
6518g693:31302842
63221493:31336333
envsactivate1:31349248
editstats-enabled:31346256
cloudbuttont:31366566
aihoversummaries_t:31413033
todos-1:31405333
3efgi100_wstrepl:31403338
use-responses-api:31390341
6j29d282:31407606
3i15c187:31419923
terminalsuggestenabled:31421703
none:31438490
cp_cls_c_966_ss:31435507
chatvisible:31417128
a9239246:31426643
c0683394:31426860
find_all_ref_in_bg_f:31420846
a2j7h173_hide_a_lot_of_models:31431740
478ah919:31426749
ge8j1254_inline_auto_hint_haiku:31426735
a5gib710:31434435
38bie571_auto:31429954
7ig2g208:31429686
anthropic_thinking_t:31427198
406hc587_ask_agent:31428392
preserve_tokens:31438089
cp_cls_c_1081:31433293
copilot-nes-oct-trt:31432609
ia-no-proxy-models-svc:31436618

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions