Skip to content

[mirror] microsoft/vscode#309321 git: discover worktrees when opening a worktree directory (#264209)#1619

Open
austindyoung wants to merge 7675 commits intomainfrom
driftfence/mirror/pr-309321/latest
Open

[mirror] microsoft/vscode#309321 git: discover worktrees when opening a worktree directory (#264209)#1619
austindyoung wants to merge 7675 commits intomainfrom
driftfence/mirror/pr-309321/latest

Conversation

@austindyoung
Copy link
Copy Markdown
Owner

Automated mirror PR for DriftFence counterfactual telemetry.

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

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

DonJayamanne and others added 30 commits April 8, 2026 20:24
…ata storage and deprecate old forkSession method (microsoft#308652)

feat: implement session forking using Copilot API with metadata storage and deprecate old forkSession method
…ries (microsoft#308649)

* chatSessions: optimize workspace changes handling for shared repositories

* Updates

* updates
* chat confirmation carousel rehaul v2

* address some comments on duplication

* address some more comments
microsoft#308708)

Refactor applyPackageJsonPatch to remove isPreRelease parameter and derive it from VSCODE_QUALITY environment variable; add getDateBasedPatch function for versioning

Co-authored-by: Copilot <copilot@github.com>
…ax check

- Fix heritage clause scope resolution: walk extends expressions before
  pushing the inner class scope so #field references resolve to the
  enclosing class (matching JS lexical scoping)
- Fix name collision: skip generated names that collide with existing
  public member names on the same class
- Add syntax validation for post-processed JS bundles using esbuild
- Add 5 tests covering both bugs and the brand-check variant
…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.
dmitrivMS and others added 30 commits April 10, 2026 21:01
* Move request logging over to dispatch

and reorganize processToolResult

* feedback
…soft#309144)

* show working progress for when confirmation carousel is active

* address some commments
* Copilot - some cleanup in the git service

* Fi test compilation errors
Update distro commit to 21295cb9

Co-authored-by: vs-code-engineering[bot] <122617954+vs-code-engineering[bot]@users.noreply.github.com>
(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
When a worktree directory is opened with `git.detectWorktrees` enabled,
`checkForWorktrees()` previously returned early without discovering the
main repository or sibling worktrees. This left worktree management
commands non-functional because:

- Commands like "Create Worktree" filter for repository/submodule kind
- "Open Worktree" requires gitOpenRepositoryCount > 1
- SCM menu items depend on a repository-kind provider being open

Remove the early return for worktree-kind repositories and instead
always filter out the current repository from the candidate list. This
enables bidirectional worktree discovery (worktree → main repo, and
main repo → worktrees) and also fixes a pre-existing off-by-one in the
limit/warning logic where the main repo counted itself as a candidate.

The existing `isRepositoryOutsideWorkspace()` check already allows this
because it recognizes paths that appear in any open repository's worktree
list, and `getRepositoryExact()` prevents duplicate/recursive opens.

Also fixes a confusing log message that said detection "is not skipped"
when it was in fact skipping.

Fixes microsoft#264209

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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.