Skip to content

[mirror] microsoft/vscode#309366 image preview: show size/zoom status bar when preview is visible#1634

Open
austindyoung wants to merge 7689 commits intomainfrom
driftfence/mirror/pr-309366/latest
Open

[mirror] microsoft/vscode#309366 image preview: show size/zoom status bar when preview is visible#1634
austindyoung wants to merge 7689 commits intomainfrom
driftfence/mirror/pr-309366/latest

Conversation

@austindyoung
Copy link
Copy Markdown
Owner

Automated mirror PR for DriftFence counterfactual telemetry.

Source PR: microsoft#309366
Source URL: microsoft#309366
Mirror branch: driftfence/mirror/pr-309366/latest

This PR is maintained by automation for telemetry and review links.

ulugbekna and others added 30 commits April 9, 2026 14:22
…oft#244597)

Check user-configured editor associations as a fallback when the
editor resolver cache is empty, ensuring custom editors are available
on first startup.
Co-authored-by: Andrea Mah <andreamah@microsoft.com>
…erive it from VSCODE_QUALITY environment variable; add getDateBasedPatch function for versioning (microsoft#308737)

lock versions up
…arWorkspaceChanges to handle both session IDs and folder URIs (microsoft#308644)

* refactor: remove getSessionIdForWorkspaceFolder method and update clearWorkspaceChanges to handle both session IDs and folder URIs

* Address comments
…#308749)

* nes: replace implicit _icon state with explicit outcome state machine (microsoft#308719)

Replace the implicit \`_icon\` field with an explicit \`_outcome: LogContextOutcome\`
discriminated union in InlineEditRequestLogContext.

- Define LogContextOutcome type with 8 states: pending, succeeded,
  noSuggestions, cached, cachedFromGhostText, skipped, cancelled, errored
- Derive icon from outcome via switch in _resolveIcon()
- Keep _isCompleted orthogonal (lifecycle flag, not an outcome)
- Add _setOutcome() with debug warning on invalid re-transitions
- Refactor setIsCachedResult to use direct field copy (avoids
  triggering outcome transitions during bulk data inheritance)
- Add double-completion warning in markCompleted()
- No caller changes required — public method signatures unchanged

* nes: unify live and static log entry paths (microsoft#308720, microsoft#308722)

Remove the static \`add()\` path from InlineEditLogger — all log entries
now use the live pattern with callbacks for icon/content resolution.

- Remove InlineEditLogger.add() and _liveRequestIds tracking
- Ghost text provider now uses addLive() + markCompleted() in finally
  block, ensuring lifecycle is always closed
- Remove redundant add() call in NES inlineCompletionProvider (the live
  entry was already registered via addLive())

This eliminates the static snapshot path that was the source of frozen
spinner bugs, and ensures ghost text entries have proper lifecycle
management matching the NES pattern.

* nes: fix stale icon caching in ChatPromptItem tree nodes (microsoft#308721)

Store the main entry reference in ChatPromptItem and always resolve
the icon unconditionally from it, preventing stale icon snapshots.

- Add _mainEntryRef field to ChatPromptItem
- setMainEntry() always sets iconPath (even to undefined when icon
  resolves to undefined), clearing any previous stale value
- withFilteredChildren() re-resolves from the entry ref via
  setMainEntry() instead of copying a potentially stale iconPath

This makes stale icons structurally impossible — the icon is always
derived from the live entry state on each tree refresh.

* nes: map cancelled outcome to skipped icon instead of loading

Cancelled requests should show a terminal icon, not a spinner.
Map 'cancelled' to Icon.skipped alongside 'skipped' to avoid
frozen-spinner appearance in the log tree.
…of XtabProvider (microsoft#308753)

* nes: fix: check chatResponseFailure consistently before yielding edits

* nes: xtab: cleanup: split response format parsing implementation out of XtabProvider
…-property

build: fix private-to-property rewrite bugs, add syntax check
…hat do not have any commits (microsoft#308752)

* Sessions - isolation/branch picker should handle empty repositories that do not have any commits

* Fix the tests
…rosoft#308608)

- Add isClientBYOKEnabled() method to CopilotToken class
- Update isBYOKEnabled to allow users with client_byok=1 token flag
- Add github.copilot.clientByokEnabled context key for VS Code core model picker

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Without this, `this._controller.items.get(uri)` returns undefined... but the metadata is stored on the item so that is needed to resolve.

FYI @mjbvz as an interesting quirk of the API.
* ghost: debt: migrate to CompletionsFetchService and remove dead code

* ghost: propagate copilotAnnotations in convertStreamToApiChoices

The v2 stream processor (convertStreamToApiChoices) was not setting
copilotAnnotations on the returned APIChoice objects, despite tracking
them in the CompletionAccumulator. This caused annotations (e.g., code
citations) to be lost.

Add accumulator.annotations.current to the createAPIChoice helper.

* ghost: fix tests to mock ICompletionsFetchService for v2

After migrating to CompletionsFetchService, LiveOpenAIFetcher no longer
calls ICompletionsFetcherService (via postRequest). Tests that mocked
the old low-level fetcher with StaticFetcher were silently bypassed.

Add StaticCompletionsFetchService adapter that bridges StaticFetcher
responses into ICompletionsFetchService by parsing SSE bodies through
jsonlStreamToCompletions. Wire it up in ghostText.test.ts and
inlineCompletion.test.ts setupCompletion helpers.
…icrosoft#308726)

* inline chat: bypass zone widget in hover mode, use direct sendRequest

* address review: notebook config gate, faked timers in tests
* proper insider build increments

* Update extensions/copilot/.esbuild.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
roblourens and others added 30 commits April 11, 2026 17:25
(Written by Copilot)
…08655)

* Show unsandboxed retry in chat terminal

* Update src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fixing failed tests

* fixing tests

* Remove automatic unsandbox retry note

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…crosoft#309239)

Chat - add null checks for editingSession across await boundaries (microsoft#309129)

awaitStatsForSession reads model.editingSession across multiple await
points. If the model is disposed during one of these awaits, the
editingSession property is nulled and the next access crashes.

Re-check model.editingSession after each await and bail out with
undefined when the session has gone away.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…lock.json (microsoft#309257)

* Update Copilot SDK to version 1.0.24

* Updates

* Fix tets

* Fixes
Tell the heap-snapshot-analysis skill to start fresh and not be
influenced by prior findings in /memories/ or the scratchpad. Previous
investigations can bias analysis toward suspects that are no longer
relevant.

(Written by Copilot)
…session-cwd

Fix agent host session working directories
…sion-types

Co-authored-by: Copilot <copilot@github.com>
…icrosoft#309303)

* fix: restrict onboarding to first-launch users and fix sanity tests

- Add isNew(StorageScope.APPLICATION) guard to only show onboarding for
  genuinely new users, not existing users upgrading
- Move all guard conditions into tryShowOnboarding() for clarity
- Change ONBOARDING_STORAGE_KEY scope from PROFILE to APPLICATION
- Add --skip-welcome to sanity test Electron launch args to prevent
  onboarding overlay from blocking workspace trust dialog

Fixes onboarding showing for existing users and sanity test timeouts
introduced by PR microsoft#307262.

* use getBoolean for ONBOARDING_STORAGE_KEY check
… to avoid a race condition (microsoft#309169)

* Agents - switch back to using repository state in the session tracker to avoid a race condition

* Pull request feedback

* Add initial update of the state when a session is opened
Co-authored-by: Copilot <copilot@github.com>
…session-types

agentHost: Support multi-agent agent host session types, fix model picker
Chat queue/steer: fall back to normal send when no request is active

When the queue or steer action is invoked but no request is in progress,
send the message as a normal chat message instead of silently doing nothing.

Relaxes the precondition and Alt+Enter keybinding so the actions remain
reachable even after the session finishes, while keeping the Enter
keybinding gated behind queuingActionsPresent so it doesn't conflict
with the regular submit action.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
display this model may be experimental or in evaluation
…ith code block (microsoft#309336)

* chat: fix body tag leaking into rendered markdown when content ends with code block

When markdown content ends with a fenced code block, the closing backticks
were immediately followed by </body> on the same line, so CommonMark didn't
recognize the fence as closed. Add \n\n before </body> to ensure proper
parsing. Add regression test.

(Written by Copilot)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* test: delete stale snapshots for regeneration

The extra \n\n before </body> changes rendered HTML output slightly,
so snapshot baselines need to be regenerated by CI.

(Written by Copilot)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* test: regenerate snapshot baselines for body tag fix

Update snapshot files to reflect the extra \n\n before </body> in the
markdown template, which adds trailing whitespace before the closing
wrapper div in rendered HTML output.

(Written by Copilot)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…309308)

* Chat - handle invalid URIs in extractCodeblockUrisFromText

When an LLM explains code that uses vscode_codeblock_uri tags, the literal
tag content may not be a valid URI, causing URI.parse to throw and crash
the chat renderer.

Add try-catch around URI.parse so invalid content gracefully returns
undefined, which callers already handle by falling back to normal code
block rendering.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix test: use content with backticks and colon to trigger URI scheme validation error

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Prefer terminal presentation overrides in chat text

* Hide sandbox wrapper from terminal command metadata
Previously the size and zoom status bar entries were shown only when
the image preview editor was .active (focused). When the preview was
visible in another editor group or in the background it was never
.active, so the status bar stayed empty. Gate on .visible instead so
the entries appear whenever the preview tab is on screen, matching the
mental model users have from text editors.

previewState transitions continue to track .active (Active vs Visible).

Fixes microsoft#271120
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.