Skip to content

Alignment with 1.128.1 version of VS Code - #757

Draft
RomanNikitenko wants to merge 6116 commits into
che-incubator:mainfrom
RomanNikitenko:alignment-with-upstream-1-128
Draft

Alignment with 1.128.1 version of VS Code#757
RomanNikitenko wants to merge 6116 commits into
che-incubator:mainfrom
RomanNikitenko:alignment-with-upstream-1-128

Conversation

@RomanNikitenko

@RomanNikitenko RomanNikitenko commented Jul 15, 2026

Copy link
Copy Markdown
Collaborator

What does this PR do?

What issues does this PR fix?

https://redhat.atlassian.net/browse/CRW-11625

Devspaces-auto-validation tests:

How to test this PR?

Test starting a workspace and basic functionality for the following images

Image Status Link
udi
quay.io/devfile/universal-developer-image:ubi8-latest click here
quay.io/devfile/universal-developer-image:ubi9-latest click here
quay.io/devfile/universal-developer-image:ubi10-latest click here
ubi-8
registry.access.redhat.com/ubi8-minimal:latest click here
registry.access.redhat.com/ubi8-minimal:8.10 click here
registry.access.redhat.com/ubi8-minimal:8.9 click here
ubi-9
registry.access.redhat.com/ubi9-minimal:latest click here
registry.access.redhat.com/ubi9-minimal:9.7 click here
registry.access.redhat.com/ubi9-minimal:9.6 click here
ubi-10
registry.access.redhat.com/ubi10-minimal:latest click here
registry.access.redhat.com/ubi10-minimal:10.1 click here
registry.access.redhat.com/ubi10-minimal:10.0 click here

Does this PR contain changes that override default upstream Code-OSS behavior?

  • the PR contains changes in the code folder (you can skip it if your changes are placed in a che extension )
  • the corresponding items were added to the CHANGELOG.md file
  • rules for automatic git rebase were added to the .rebase folder

jruales and others added 30 commits July 2, 2026 03:06
Remove the experimental chat.cacheBreakHint.enabled setting and its gate so
the model/options picker cache-break hint shows by default (still respecting
dismissal and cache-warm state).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Agents - more tweaks to the loading indicator
…(#323773)

* support session reference attachment

* Bound session reference transcript attachments

* Address session reference review feedback

* reanming

* Try with preview, targetted event jsonl + session uri

* Scope Agent Host session references to Copilot CLI trajectories

* revert unneeded changes

* rename

* update wording efurther

* less cli specific

* give await back
…et edges (#323984)

* Add Tools tree keyboard navigation, fix focus outline cut-off at widget edges

* PR feedback
* Add copilot stage

* add counter
…ions (#323981)

* Support uninstalling extensions from Tools section of Chat Customizations

* PR feedback
…#324016)

Update border-radius for editor and sidebar styles to enhance UI consistency

Co-authored-by: mrleemurray <mrleemurray@users.noreply.github.com>
…hat capabilities (#324021)

sessions: hide subagent chats by default, persist closed chats, and add chat capabilities

Improves chat management in the Agents window session view:

- Subagent (tool-origin) worker chats are hidden from the chat tab strip by
  default and surface as a tab only when explicitly opened (e.g. from the
  Subagents dropdown); closing one hides it again without adding it to the
  reopenable closed set. Reverts on reload.
- Closing a chat is remembered across reload/restart (closed-chat set is
  persisted per session and restored on startup); subagents are excluded from
  the persisted set.
- Adds "Close All Chats" command (Ctrl/Cmd+K W, mirroring "Close All Editors in
  Group"), gated on SessionHasMultipleOpenChats so it targets the focused
  session and does not collide with "Close All Sessions" (Ctrl/Cmd+K Ctrl/Cmd+W).
- Introduces per-chat IChatCapabilities (canRename/canDelete) with a central
  getChatCapabilities resolver that folds in the main-chat invariant (never
  deletable). Subagent chats report neither rename nor delete; the tab context
  menu, delete keybinding, and context keys now go through capabilities instead
  of ad-hoc origin/main-chat checks.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Non-active agent-host session PR icons don't refresh until the session is activated. The per-session poller in GitHubPullRequestPollingContribution keeps a shared PR model warm only once its identity resolves, but the previous trace collapsed all four bail-out stages into one generic message and gave no visibility into how many sessions were actually tracked.

Disambiguate the identity derivation into a discriminated PullRequestIdentityState (ok / archived / no-workspace / no-git-repository / no-pull-request) and log the precise stage where a session's PR model is not kept warm, plus the total tracked poller count on each sessions change. Behavior is unchanged; only the 'ok' state starts polling as before.

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

Give the Pinned section a leading pin icon (mirroring the Chats section's
chat icon) and make both section headers share the standard section-header
font/styling. Also keep the Pinned section always visible with a
"No pinned sessions" placeholder when empty, matching the Chats section.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
When multiple editors are closed at once (Close All Editors, Close Others, etc.), Reopen Closed Editor now reopens them all as a batch instead of one at a time.

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

* Reinstate colors of symbol codicons when used in custom tree views

* Attestation commit

* Attestation commit

* Attestation commit

* Attestation commit

---------

Co-authored-by: Alex Ross <38270282+alexr00@users.noreply.github.com>
* sessions: tweak session files widget in changes view

- Use default ResourceLabels (no supportIcons) so file icons render
- Drop the resource path from the file description
- Only open a diff for modified files when the original has content
- Show A/M/D change decoration badges like the changes view
- Remove strikethrough for deleted files
- Add an Open File action to the row toolbar matching the changes view

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

* sessions: remove file count from session files header

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Render the comment codicon as the chat-thinking-icon for comment tools (addComment, listComments, etc.) instead of the generic tool icon, and drop the now-redundant inline comment icon from the addComment invocation message. Also bump the addComment preview length from 20 to 40 characters.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* AgentHost - chat working directory fix

* AgentHost - fix the root cause: default chat should not seed a workingDirectory

Per the protocol, a chat's `workingDirectory` is an OVERRIDE — when absent the
chat inherits the session's working directory. `createDefaultChatSummary` was
seeding the session default onto every chat as a fake override, which then went
stale when the session's working directory was resolved later (e.g. a worktree
resolved at materialization), and the per-chat projection surfaced the
pre-materialization directory over the resolved session default.

Stop seeding `workingDirectory` in `createDefaultChatSummary` so inheriting
chats keep it undefined and the projection's fallback always uses the current
session working directory. This removes the need for the default-chat
working-directory sync and covers all inheriting chats (not just the default).

Adds a regression test.

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

---------

Co-authored-by: Sandeep Somavarapu <sasomava@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ions and improve command handling (#323931)

* Enhance CopilotSlashCommandCompletionProvider with session customizations and improve command handling

* Refactor CopilotSlashCommandCompletionProvider to remove unnecessary session check in _getKnownSkills and ensure sessionInfo is always accessed safely

* Update commandListCalls in CopilotAgentSession tests to include skills
The Session Files list in the Changes view did not render per-file-type icons because its list was placed outside the file-icon themeable scope. Add a file-icon themeable scope to the SessionFilesWidget root node and align its resource label rendering with ChangesTreeRenderer (strikethrough for deleted files). Also document the show-file-icons requirement in best-practices.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The Pinned and Chats sections in the Agents window sessions sidebar
previously defaulted to expanded. Default their collapse state to
collapsed on first open (when no saved state exists) while continuing to
persist and honor the user's later expand/collapse choice.

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

* sessions: improve subagent 'Open Subagent' pill in Agents window

Reworks the subagent pill shown in the inline subagent block so it reads as a
single, identifiable chip in the Agents window:

- Move the pill to the start of the subagent header row so it keeps a fixed
  position instead of shifting as the streaming title grows.
- Show the subagent chat's own title as the pill label (resolved reactively via
  findSubagentChat) and hide the now-duplicate inline header title.
- Prefix the pill with the subagent's agent name (e.g. 'General-purpose',
  'Task'), forwarded on the toolbar context, falling back to 'Subagent'.
- Show a progress spinner in place of the leading conversation icon while the
  subagent is still running, driven purely by CSS off the existing
  chat-thinking-active state.
- Render the pill as a standalone chip (OpenSubagentChatActionViewItem now
  extends BaseActionViewItem) styled like the chat file/diff pill, instead of
  the filled secondary-button meta pill whose inline-style foreground CSS
  cannot override.

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

* sessions: address review feedback on subagent pill

- Shorten the over-long inline comment and the OpenSubagentChatActionViewItem
  JSDoc per coding guidelines.
- Set role=button on the chip's action-item element and keep aria-disabled in
  sync with action.enabled so screen readers treat it as an actionable control.

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Skills in user dir do not show up in the chat input

* Potential fix for pull request finding

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

* Potential fix for pull request finding

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

* fix tests

* fix cleanHomeFolder

* update

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* Chat customizations contains content of deleted files

* update

* update
Signed-off-by: Roman Nikitenko <rnikiten@redhat.com>
Assisted-by: Cursor AI
@github-actions

Copy link
Copy Markdown
Contributor

RomanNikitenko and others added 11 commits July 23, 2026 22:31
Remove Skia Graphite disable workaround that was cherry-picked from
upstream main but never included in any release branch.

Signed-off-by: Roman Nikitenko <rnikiten@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Add Che extensions to the compilations list in gulpfile.extensions.ts.
Includes elif entry in rebase.sh for conflict resolution.

Signed-off-by: Roman Nikitenko <rnikiten@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Comment out extensionsGallery check (we use openvsx) and skip
copyright check for Che server files.

Signed-off-by: Roman Nikitenko <rnikiten@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Convert async getL10nJson call to sync try/catch for s390x platform
compatibility (ref: che-incubator/che-code@a119952).

Signed-off-by: Roman Nikitenko <rnikiten@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Add Che extension directories to the npm install list.

Signed-off-by: Roman Nikitenko <rnikiten@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Use full git+https:// URL for @emmetio/css-parser dependency
for Cachito build system compatibility (ref: che-incubator#222).

Signed-off-by: Roman Nikitenko <rnikiten@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Remove (instance as any) workaround that was added to bypass mangler
compilation errors (e2aa458). No longer needed since we build
without mangling.

Signed-off-by: Roman Nikitenko <rnikiten@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Set terminal renderer default to 'canvas' instead of 'auto' to fix
invisible characters issue in web environment (ref: 9033463).

Signed-off-by: Roman Nikitenko <rnikiten@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Use window.location.pathname for remote resources path instead of
dynamic _remoteResourcesPath getter (ref: d04ac87).

Signed-off-by: Roman Nikitenko <rnikiten@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Disable telemetry by default: TelemetryConfiguration.OFF and
enableTelemetry=false (ref: 31e901d, fixes eclipse-che/che#21122).

Signed-off-by: Roman Nikitenko <rnikiten@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Files silently auto-resolved incorrectly during subtree merge:
- chatParticipants.ts: retained removed rateLimitWarning block
- extHostSCM.ts: kept MutableDisposable instead of DisposableStore
- chatModel.ts: missing GC cleanup code block

Signed-off-by: Roman Nikitenko <rnikiten@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@github-actions

Copy link
Copy Markdown
Contributor

Add targeted logging to trace intermittent workspace loading issues
where remote extensions (including che-extensions) fail to appear.

Logs cover: remote extension scanning, extension resolution,
extension host manager start, and early activation race conditions.

All messages prefixed with [che] for easy filtering.

Co-authored-by: Cursor <cursoragent@cursor.com>
@github-actions

Copy link
Copy Markdown
Contributor

Add logging to the EagerAutoStart code path that was missing:
- createExtensionHost factory: whether Remote host is created or null
- Remote getInitData(): when/if registry snapshot resolves, extension count
- _startExtensionHostsIfNecessary: which hosts are created vs skipped
- _startOnDemandExtensionHosts: which hosts exist and their startup types
- Fix che-extension filter prefix (eclipse-che. not che-incubator.)

Co-authored-by: Cursor <cursoragent@cursor.com>
@github-actions

Copy link
Copy Markdown
Contributor

Trace the full Remote EH lifecycle after getInitData():
- RemoteExtensionHost handshake: Ready/Initialized/timeout
- ExtensionHostManager: start() resolve/reject, proxy status
- _activateDeferredRemoteEvents: ready() wait and event replay
- onDidInstallExtensions: delta extensions during init

Co-authored-by: Cursor <cursoragent@cursor.com>
@github-actions

Copy link
Copy Markdown
Contributor

RomanNikitenko and others added 6 commits July 28, 2026 23:59
Signed-off-by: Roman Nikitenko <rnikiten@redhat.com>
Upstream VS Code 1.126 changed the default of
security.workspace.trust.startupPrompt from 'once' to 'never',
causing Che workspaces to start in Restricted Mode without a prompt.
This prevents extensions from activating properly.

Che workspaces run in a controlled Kubernetes environment where
workspace trust is unnecessary. Adding --disable-workspace-trust
to the server launch params ensures workspaces are always trusted.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@RomanNikitenko

RomanNikitenko commented Jul 29, 2026

Copy link
Copy Markdown
Collaborator Author

Result of devspaces-auto-validation tests:

======================
Summary:
  Total tests: 342 
  Successful: 320
  Failed: 22
  Elapsed time: 6h 42m 17s
======================

Failed tests:
  - Devfile 'https://registry.devfile.io/devfiles/go' using image 'registry.access.redhat.com/ubi8-micro:latest'
  - Devfile 'https://registry.devfile.io/devfiles/go' using image 'registry.access.redhat.com/ubi8/pause:latest'
  - Devfile 'https://registry.devfile.io/devfiles/go' using image 'registry.access.redhat.com/ubi9-micro:9.6'
  - Devfile 'https://registry.devfile.io/devfiles/go' using image 'registry.access.redhat.com/ubi9/ubi-stig:9.6'
  - Devfile 'https://registry.devfile.io/devfiles/go' using image 'registry.access.redhat.com/ubi9-micro:9.7'
  - Devfile 'https://registry.devfile.io/devfiles/go' using image 'registry.access.redhat.com/ubi9/ubi-stig:9.7'
  - Devfile 'https://registry.devfile.io/devfiles/go' using image 'registry.access.redhat.com/ubi10/ubi-micro:10.0'
  - Devfile 'https://registry.devfile.io/devfiles/go' using image 'registry.access.redhat.com/ubi10/ubi-micro:10.1'
  - Devfile 'https://registry.devfile.io/devfiles/nodejs' using image 'registry.access.redhat.com/ubi8-minimal:8.10'
  - Devfile 'https://registry.devfile.io/devfiles/nodejs' using image 'registry.access.redhat.com/ubi8-minimal:latest'
  - Devfile 'https://registry.devfile.io/devfiles/nodejs' using image 'registry.access.redhat.com/ubi8-micro:latest'
  - Devfile 'https://registry.devfile.io/devfiles/nodejs' using image 'registry.access.redhat.com/ubi8/pause:latest'
  - Devfile 'https://registry.devfile.io/devfiles/nodejs' using image 'registry.access.redhat.com/ubi9-micro:9.6'
  - Devfile 'https://registry.devfile.io/devfiles/nodejs' using image 'registry.access.redhat.com/ubi9/ubi-stig:9.6'
  - Devfile 'https://registry.devfile.io/devfiles/nodejs' using image 'registry.access.redhat.com/ubi9-micro:9.7'
  - Devfile 'https://registry.devfile.io/devfiles/nodejs' using image 'registry.access.redhat.com/ubi9/ubi-stig:9.7'
  - Devfile 'https://registry.devfile.io/devfiles/nodejs' using image 'registry.access.redhat.com/ubi10/ubi-micro:10.0'
  - Devfile 'https://registry.devfile.io/devfiles/nodejs' using image 'registry.access.redhat.com/ubi10/ubi-micro:10.1'
  - Devfile 'https://registry.devfile.io/devfiles/nodejs' using image 'registry.access.redhat.com/ubi10/nodejs-22:10.1'
  - Devfile 'https://registry.devfile.io/devfiles/nodejs' using image 'registry.access.redhat.com/ubi10/php-83:10.1'
  - Devfile 'https://registry.devfile.io/devfiles/nodejs' using image 'registry.access.redhat.com/ubi10/nginx-126:10.1'
  - Devfile 'https://registry.devfile.io/devfiles/nodejs' using image 'registry.access.redhat.com/ubi10/podman:10.1'

After restarting failed tests:

======================
Summary:
  Total tests: 21 
  Successful: 4
  Failed: 17
  Elapsed time: 31m 33s
======================

Failed tests:
  - Devfile 'https://registry.devfile.io/devfiles/go' using image 'registry.access.redhat.com/ubi8-micro:latest'
  - Devfile 'https://registry.devfile.io/devfiles/go' using image 'registry.access.redhat.com/ubi8/pause:latest'
  - Devfile 'https://registry.devfile.io/devfiles/go' using image 'egistry.access.redhat.com/ubi9-micro:9.6'
  - Devfile 'https://registry.devfile.io/devfiles/go' using image 'registry.access.redhat.com/ubi9/ubi-stig:9.6'
  - Devfile 'https://registry.devfile.io/devfiles/go' using image 'registry.access.redhat.com/ubi9-micro:9.7'
  - Devfile 'https://registry.devfile.io/devfiles/go' using image 'registry.access.redhat.com/ubi9/ubi-stig:9.7'
  - Devfile 'https://registry.devfile.io/devfiles/go' using image 'registry.access.redhat.com/ubi10/ubi-micro:10.0'
  - Devfile 'https://registry.devfile.io/devfiles/go' using image 'registry.access.redhat.com/ubi10/ubi-micro:10.1'
  - Devfile 'https://registry.devfile.io/devfiles/go' using image 'registry.access.redhat.com/ubi8-micro:latest'
  - Devfile 'https://registry.devfile.io/devfiles/go' using image 'registry.access.redhat.com/ubi8/pause:latest'
  - Devfile 'https://registry.devfile.io/devfiles/go' using image 'registry.access.redhat.com/ubi9-micro:9.6'
  - Devfile 'https://registry.devfile.io/devfiles/go' using image 'registry.access.redhat.com/ubi9/ubi-stig:9.6'
  - Devfile 'https://registry.devfile.io/devfiles/go' using image 'registry.access.redhat.com/ubi9-micro:9.7'
  - Devfile 'https://registry.devfile.io/devfiles/go' using image 'registry.access.redhat.com/ubi9/ubi-stig:9.7'
  - Devfile 'https://registry.devfile.io/devfiles/go' using image 'registry.access.redhat.com/ubi10/ubi-micro:10.0'
  - Devfile 'https://registry.devfile.io/devfiles/go' using image 'registry.access.redhat.com/ubi10/ubi-micro:10.1'
  - Devfile 'https://registry.devfile.io/devfiles/go' using image 'registry.access.redhat.com/ubi10/php-83:10.1'

@github-actions

Copy link
Copy Markdown
Contributor

Add logging to trace why completeWorkspaceBarrier may not open for
multi-folder workspaces over vscodeRemote:// scheme. Logs cover:
- onDidUpdateConfiguration event firing
- onWorkspaceConfigurationChanged promise resolution/rejection
- workspace.initialized vs workspaceConfiguration.initialized sync
- updateWorkspaceConfiguration completion status

Co-authored-by: Cursor <cursoragent@cursor.com>
@github-actions

Copy link
Copy Markdown
Contributor

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.