Skip to content

Option to put close icons at the start of the tab label on macOS #15103

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jun 19, 2025

Conversation

cdamus
Copy link
Contributor

@cdamus cdamus commented Mar 3, 2025

What it does

Adds a new window.tabCloseIconPlacement preference for whether to present the Close (X) icon in tab titles on the left or the right of the tab.
Defaults to the left on macOS platform in conformity with the OS's native tab controls.
The tab bar rendering is updated to take the preference into account.

The preference is suppressed in the Settings view on non-Mac platforms as being largely irrelevant on those systems.

Fixes eclipse-theia/theia-ide#460

How to test

On a macOS system, build and launch the Theia example app. See that tabs in the main editor area are on the left side where they belong.

Open Settings and change the "Tab close icon placement" preference to "end". See the close icons move back to where they are presented on Linux and Windows platforms. Restore the default setting. See the close icons restored to the left side.

On Linux and Windows systems, verify that the "Tab close icon placement" preference does not appear in the Settings UI and that tab titles look as they ever did.

Follow-ups

None.

Breaking changes

  • This PR introduces breaking changes and requires careful review. If yes, the breaking changes section in the changelog has been updated.

Attribution

None.

Review checklist

Note

My testing is only on macOS platform as that is the platform that my system runs and the feature is meant to be disabled on other platforms. I'm depending on buddy tests from the Theia community to check for regressions on other platforms.

Reminder for reviewers


Update 17 June 2025

Changed the default close icon placement to the end on all platforms, including macOS, to maintain current behaviour.


CleanShot 2025-03-03 at 16 36 06

@github-project-automation github-project-automation bot moved this to Waiting on reviewers in PR Backlog Mar 3, 2025
@cdamus cdamus force-pushed the issues/theia-ide/460 branch from 32cc3de to 69af7eb Compare March 3, 2025 21:43
@cdamus cdamus force-pushed the issues/theia-ide/460 branch from 69af7eb to f61560f Compare March 3, 2025 22:02
@cdamus
Copy link
Contributor Author

cdamus commented Mar 3, 2025

I'm trying to figure out what the test failure is in the @theia/core test run on Linux platform. I don't see anything in the log that clearly looks like a test failure (no red X, only green checks) but I do see the error quoted below. Is that it? How might this be related to the preference changes in this PR? Needless to say, the @theia/core tests pass for me on macOS platform. Any help diagnosing this will be appreciated.

@theia/core: Encountered an error while validating dummy with value { shouldBeValid: false } against schema { type: 'string' } Error: Only a test!
@theia/core:     at validator.validateString (/home/runner/work/theia/theia/packages/core/lib/browser/preferences/preference-validation-service.spec.js:317:19)
@theia/core:     at PreferenceValidationService.validateBySchema (/home/runner/work/theia/theia/packages/core/lib/browser/preferences/preference-validation-service.js:89:33)
@theia/core:     at Context.<anonymous> (/home/runner/work/theia/theia/packages/core/lib/browser/preferences/preference-validation-service.spec.js:320:24)
@theia/core:     at callFn (/home/runner/work/theia/theia/node_modules/mocha/lib/runnable.js:364:21)
@theia/core:     at Runnable.run (/home/runner/work/theia/theia/node_modules/mocha/lib/runnable.js:352:5)
@theia/core:     at Runner.runTest (/home/runner/work/theia/theia/node_modules/mocha/lib/runner.js:677:10)
@theia/core:     at /home/runner/work/theia/theia/node_modules/mocha/lib/runner.js:800:12
@theia/core:     at next (/home/runner/work/theia/theia/node_modules/mocha/lib/runner.js:592:14)
@theia/core:     at /home/runner/work/theia/theia/node_modules/mocha/lib/runner.js:602:7
@theia/core:     at next (/home/runner/work/theia/theia/node_modules/mocha/lib/runner.js:485:14)
@theia/core:     at Immediate._onImmediate (/home/runner/work/theia/theia/node_modules/mocha/lib/runner.js:570:5)
@theia/core:     at process.processImmediate (node:internal/timers:491:21)
@theia/core: Request to validate preference with no type information: dummy
@theia/core: Request to validate preference with no type information: dummy
@theia/core: Request to validate preference with no type information: dummy
@theia/core: Request to validate preference with no type information: dummy

@cdamus cdamus force-pushed the issues/theia-ide/460 branch 2 times, most recently from ecc64bd to 37c7cbb Compare March 27, 2025 11:54
@tsmaeder tsmaeder requested a review from msujew May 26, 2025 14:46
@cdamus cdamus force-pushed the issues/theia-ide/460 branch from 37c7cbb to bcbbb87 Compare June 9, 2025 21:44
@cdamus
Copy link
Contributor Author

cdamus commented Jun 9, 2025

I have rebased this PR onto the latest master branch again to

  • resolve conflicts
  • remove unintended formatting and other changes unrelated to the issue
  • fix up a missed update for the big Lumino refactoring

Copy link
Member

@msujew msujew left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm mostly fine with this change, but cannot test this since I don't have a mac. I just have one question, see below.

@cdamus
Copy link
Contributor Author

cdamus commented Jun 17, 2025

Thanks for the review @msujew . Commit 90d4612 changes the default placement of the close icon to 'end' on all platforms, including macOS. This maintains the current behaviour on that platform.

@cdamus cdamus changed the title Put close icons at the start of the tab label by default on macOS Option to put close icons at the start of the tab label on macOS Jun 17, 2025
@cdamus cdamus requested a review from msujew June 17, 2025 17:57
Copy link
Member

@msujew msujew left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Alright thank you. Looks good to me 👍

Can you squash your commits? I don't want to change your commit description myself :)

@github-project-automation github-project-automation bot moved this from Waiting on reviewers to Needs merge in PR Backlog Jun 19, 2025
Add a new window.tabCloseIconPlacement preference for whether to present
the Close (X) icon in tab titles on the left or the right of the tab
in conformity with the OS's native tab controls.
Render the tab title with the icon on the left or right accordingly.
Show the new preference in the Settings UI on macOS platform only.
Default to the right as on other platforms to maintain current appearance.

Fixes eclipse-theia/theia-ide#460

Signed-off-by: Christian W. Damus <give.a.damus@gmail.com>
@cdamus cdamus force-pushed the issues/theia-ide/460 branch from 90d4612 to 4ddebc3 Compare June 19, 2025 13:04
@cdamus
Copy link
Contributor Author

cdamus commented Jun 19, 2025

Alright thank you. Looks good to me 👍

Can you squash your commits? I don't want to change your commit description myself :)

Thanks, @msujew ! Done with commit 4ddebc3.

@msujew msujew merged commit 80fcc2e into eclipse-theia:master Jun 19, 2025
9 of 11 checks passed
@github-project-automation github-project-automation bot moved this from Needs merge to Done in PR Backlog Jun 19, 2025
@github-actions github-actions bot added this to the 1.63.0 milestone Jun 19, 2025
@cdamus cdamus deleted the issues/theia-ide/460 branch June 19, 2025 18:26
robertjndw added a commit to robertjndw/theia that referenced this pull request Jun 24, 2025
* fix: autocomplete content in chat view (#15240)

Fixes autocomplete content not showing up in inline editors like the
ChatInput.

With the Lumino migration we disabled 'fixedOverflowWidgets' in our
Monaco editors, as Lumino widget styles leverages 'contain',
influencing the position of autocomplete content.

This is now reverted, and instead the 'contain' of Lumino widgets is
forcefully disabled, fixing the autocomplete issue.

fixes #15237

Co-authored-by: Eugen Neufeld <eneufeld@eclipsesource.com>

* Limit the width of tab-bar rows to 100% of parent (#15260)

Fixes #15254

Contributed on behalf of STMicroelectronics

Signed-off-by: Thomas Mäder <t.s.maeder@gmail.com>

* Refine AI setting descriptions (#15250)

* Add shortcut for adding the current file to the AI chat context (#15252)

* fix: Pin node-abi version to 3.x due to Node.js 22+ requirement in 4.x (#15212)

* pins the node-abi version to resolve the compatibility issue where node-abi 4.x requires Node.js version 22 or higher

* remove unused package node-abi @types/node-abi

* update package-lock.json after delete node-abi

* Prevent plugin host localization errors (#15268)

* Allow to add all MCP functions via prompt fragment (#15270)

fixed #14952

* [vscode] Support keepWhitespace in SnippetTextEdit and insertSnippet (#15176)

fixes #15131

Contributed on behalf of STMicroelectronics

Signed-off-by: Remi Schnekenburger <rschnekenburger@eclipsesource.com>

* Workspace Symbols: Pass multiple classnames as array of strings (#15244)

* Dispose of child InstantiationServices in MonacoEditor (#15246)

* Add news section with AI to welcome page (#15269)

* Add news section with AI to welcome page

* chore: make parameters in ToolRequest mandatory (#15288)

Previously, parameters were optional, indicating that a tool request
doesn’t take any. However, most LLMs produce better output when
parameters are explicitly set to empty. This is now the default in
TheiaAI.

* chore: change private members to protected in ChatViewTreeWidget (#15297)

Enhance extensibility for adopters by converting private functions and
injections to protected in the ChatViewTreeWidget.

Signed-off-by: Roman Piper <roman.piper@mvtec.com>

* Add variable completion for {{}} syntax in prompttemplate (#15026)

The prompttemplate editor now supports autocompletion for variables using `{{` and `{{{` .

fixes: #15202

* Add MCP Server config view to AI Configuration (#15280)

Improve MCP services:
- Introduce notification mechanism to listen to MCP server changes.
- Created common interface for MCPFrontendService.
- Rename getStartedServers() to getRunningServers().
- Added status handling to MCPServer (NotRunning, Starting, Running, Errored):
- Add getServerDescription endpoint to retrieve information about the server.
- Add status, error message and tool information to MCPServerDescription.

- Add MCP Config view to AI Configuration:
- This view helps to see the state of MCP servers.
- Displays all the created settings. Obfuscates tokens (very basic support).
- Shows the status of a server (Running, Starting, Errored, Not Running).
- Shows all tools available. Let's the user easily copy the tools for chat and prompttemplate use.
- Offers a button to start/stop the view.

Fix autostart stopping for following servers if one fails:
- Before this the autostart would stop for all following servers if one failed.
- This was due to uncatched errors when trying to resolve the tools.
- To prevent this in the future, improved the handling of the getTools() on client side.
- Also adapted the Start Command to use the new status reporting instead of calling getTools() again.

Signed-off-by: Simon Graband <sgraband@eclipsesource.com>

* Consolidate widget labels (#15304)

fixed #15303

* fix: getFileDiagnostics waits forever (#15305)

* Use fixed version 1.5.5 of perfect-scrollbar (#15279)

Fixes #15277, #15232

Contributed on behalf of STMicroelectronics

Signed-off-by: Thomas Mäder <t.s.maeder@gmail.com>

* feat: thinking support, request settings and communication restructuring (#15092)

Support for Claude's thinking feature has been added by updating the
Anthropic SDK to v0.39.0, implementing ThinkingChatResponseContent,
adding a TextPartRenderer for displaying thinking content, and updating
the language model request handling throughout the code.

Centralizes all LLM communication via the new LanguageModelService.
Leveraging this service, adopters can easily customize LLM request
handling.

Greatly enhances the model request settings, allowing configuration of
default request settings for LLM providers, specific LLM models and
agents. The request settings are merged with the handed over request
settings via the new LanguageModelService.

Additionally, request settings can now be set per session via the Chat
UI, which is useful for quick experimentations, eliminating the need to
manually modify preferences.

Co-authored-by: Philip Langer planger@eclipsesource.com

* feat(chat): add customizable welcome message (#15316)

Extracts the disabled AI message and adds a welcome messages for the chat view. Both messages are provided by a customizable DI binding. The current messages are moved into the `ai-ide` package.

* Improve dirty diff & avoid instantiation service leakage (#15238)

* Ensures that a valid InstantiationService is available for
  hover delegate creation
* Improves dirty diff functionality to work when editor modified

* Hide overflow in view container headers (#15321)

Fixes #15274

Contributed on behalf of STMicroelectronics

Signed-off-by: Thomas Mäder <t.s.maeder@gmail.com>

* fix: do not set anthropic tool choice without tools (#15329)

Makes sure to not hand over the 'tool_choice' parameter to the
anthropic SDK if there are no tools to choose from. The SDK will throw
an error otherwise.

fixes #15327

* fix: communication recording in Orchestrator (#15328)

Restores communication recording in Orchestrator chat agent. Makes sure
an own request id is used for history recording.

* Explicitly set scrolling element to avoid document scroll (#15315)

* Fixes document scroll on node selection in preferences view

* Prevent SiW overflow & scrollbar (#15287)

* feat(chat): introduce LLM-based chat naming and last interaction date (#15116)

Finding chat sessions is currently very difficult as we are recoding the last request as a name. It'd be better to use a language model to generate a name for the chat session and also record the last interaction date, to have proper sorting and a chronological relation to the chat sessions.

Moreover, this PR allows users to manually specify a name for the chat session, which will be used instead of the generated name.

Fixes https://github.com/eclipse-theia/theia/issues/15115

Co-authored-by: Stefan Dirix <sdirix@eclipsesource.com>

* Turn automatic inline code completion off by default (#15333)

fixed #15332

* [vscode] Rename AuthenticationForceNewSessionOptions (#15264)

fixes #15133

Contributed on behalf of STMicroelectronics

Signed-off-by: Remi Schnekenburger <rschnekenburger@eclipsesource.com>

* Allow project specific prompt additions (#15236)

* Allow project specific prompt additions

fixed #15200

* Bump VS Code API version (#15341)

Fixes #15138

Contributed on behalf of STMicroelectronics

Signed-off-by: Remi Schnekenburger <rschnekenburger@eclipsesource.com>

* Set selection upon editor navigation only after editor is fully visible (#15302)

This change required the introduction of "navigation transactions",
where a location is not remembered in the navigation location stack
while another navigation transaction is still active. This prevents
the navigation location service from recording intermediate locations
while navigating to an already open editor. Only the final location in
simultaneous transactions is recorded.

Fixes #15145, #15191

Contributed on behalf of STMicroelectronics

Signed-off-by: Thomas Mäder <t.s.maeder@gmail.com>

* Correctly set dirty state when current save is canceled (#15310)

* Normalize results of Path.join (#15331)

* Ensure all tool providers bound to self (#15330)

* Allows downstream application to override individual tool implementations

* chore: remove outline in the chat session settings editor

* Modify link in AI chat instructions to show AI settings directly (#15326)

* fix: add missing `editor` dependency to `console` (#15354)

Closes eclipse-theia/theia#15353

* Show context menu for editor minimap (#15220)

Fixes #15217 and #13070.

* Relayout dock panel when breadcrumbs become active (#15342)

Fixes #15273

Contributed on behalf of STMicroelectronics

Signed-off-by: Thomas Mäder <t.s.maeder@gmail.com>

* [vsode] Support command workbench.extensions.command.installFromVSIX (#15179)

fixes #15169

Contributed on behalf of STMicroelectronics

Signed-off-by: Remi Schnekenburger <rschnekenburger@eclipsesource.com>

* chore: improve style of code blocks in modern theme

* [vscode] make DiagnosticCollection iterable (#15361)

fixes #15348

Contributed on behalf of STMicroelectronics

Signed-off-by: Remi Schnekenburger <rschnekenburger@eclipsesource.com>

* Do not re-export the configuration folder as env variable (#15376)

Before this the configurationFolder (which includes the user settings for example) was exported as a env variable THEIA_CONFIG_DIR.
This is problematic, as we also allow users to define a configurationFolder via this variable,
and use it whenever provided for a new session.
Therefore, if you debug another application from a Theia tool (e.g. the Theia IDE) you will always get the tools configurationFolder, which is probably not intended.
As this results in settings being changed in the started application to also be applied in the root too (e.g. colorTheme).

Signed-off-by: Simon Graband <sgraband@eclipsesource.com>

* Minor Improvements MCP View (#15364)

* Minor Improvements MCP View
* Add third button for prompt fragment in prompt template
* Remove copy chat specific button for single functions

fixed #15363

* Use camelCase in React SVG (#15367)

* fix: fix response content in language model utility

I ran into cases where the getTextOfResponse() appended `false` to the returned string.

* Refine coder prompt (#15358)

fixed #15357

* Make icons right-aligned. (#15373)

fixes #15296

Contributed on behalf of STMicroelectronics

Signed-off-by: Thomas Mäder <t.s.maeder@gmail.com>

* add native google ai-provider (#15334)


Co-authored-by: Jonas Helming <jhelming@eclipsesource.com>

* Translation update for version 1.60.0 (#15382)

* docs: split changelogs by year

Signed-off-by: Simon Graband <sgraband@eclipsesource.com>

* docs: update changelog for 1.60.0

Signed-off-by: Simon Graband <sgraband@eclipsesource.com>

* core: update re-exports for 1.60.0

Signed-off-by: Simon Graband <sgraband@eclipsesource.com>

* v1.60.0

Signed-off-by: Simon Graband <sgraband@eclipsesource.com>

* Wait for async creation of 15370_wait_for_debug_console_widget (#15388)

Fixes #15370

Contributed on behalf of STMicroelectronics

Signed-off-by: Thomas Mäder <t.s.maeder@gmail.com>

* white label prompt templates (#15322)

* Remove Theia name from prompt template labels

Signed-off-by: Roman Piper <roman.piper@mvtec.com>

* feat(chat): enhance streaming content parsing for incomplete response content matches (#15387)

- Refactored `addStreamResponse` method to maintain a complete text buffer for streamed responses, improving handling of incomplete matches.
- Introduced `ProgressChatResponseContent` interface and its implementation to support progress updates in chat responses via incomplete matches
- Updated `parseContents` function to differentiate between complete and incomplete matches, allowing for better content management during streaming.
- Added unit tests for new functionality in `parse-contents-stream.spec.ts` and updated existing tests to utilize custom matchers for code content parsing.

Fixes https://github.com/eclipse-theia/theia/issues/15386

* Add initial support for tracking token usage

* [vscode] remove proposed API createFileSystemWatcher (#15265)

fixes #15135

Contributed on behalf of STMicroelectronics

Signed-off-by: Remi Schnekenburger <rschnekenburger@eclipsesource.com>

* Provide range to completion item to allow for correct inline display (#15398)

* Support `fix-path` in non-bundled environments (#14819)

* Revert #15331 to fix webviews (#15421)

Fixes #15416

Contributed on behalf of STMicroelectronics

Signed-off-by: Thomas Mäder <t.s.maeder@gmail.com>

* fix cell editor and notebook output selection (#15384)


---------

Signed-off-by: Jonah Iden <jonah.iden@typefox.io>

* Add DOCKER_HOST support to devcontainer (#15350)

---------

Signed-off-by: KnowZero <KnowZero@users.noreply.github.com>

* Add the ability to disable installed plugins (#15205)

Step 1 of #13901

Contributed on behalf of STMicroelectronics

Signed-off-by: Thomas Mäder <t.s.maeder@gmail.com>

* fix: implement the registerDiffInformationCommand to resolve issue #14144 (#15406)

* Clarify replace function description (#15442)

fixed #15441

* Add project info prompt fragment (#15449)

fixed #15448

* docs: Fix broken links in documentation (#15454)

Signed-off-by: Per Tillisch <accounts@perglass.com>

* chore(polyfills) remove es6-promise & setImmediate (#15436)

Signed-off-by: Alexander Taran <a.taran@outlook.com>

* Correctly return tool input when creating the message 

For tool calls which had no arguments, the tool input was returned as empty string which
does not work for some models.

fixes #15455

* NPM upgrade

Removed version fix of `@types/express-serve-static-core` to `5.0.4`.

Signed-off-by: Simon Graband <sgraband@eclipsesource.com>

* Resolve unresolved variables to empty string (#15463)

* Resolve unresolved variables to empty string

- Unresolved prompt fragments
- Empty changesets

fixed #15453

* Fixes switching the localization language back to the default

Fixes https://github.com/eclipse-theia/theia/issues/15444

* AI Chat UI: Minor presentation improvements (#15344)

* Collapse label in order & no explicit nbsp
* Also use the label provider system's details for context items
* Remove linebreaks from start and end of chat messages

* Only call resolve() on tasks that have no execution (#15480)

Fixes #15171

Contributed on behalf of STMicroelectronics

Signed-off-by: Thomas Mäder <t.s.maeder@gmail.com>

* Avoid double registration of sticky scroll toggle (#15366)

Removes registration of editor.action.toggleStickyScroll
command in monaco package in favor of editor package registration

* Clarify error for multiple occurences during replace (#15481)

* Clarify error for multiple occurences during replace

* Fix test

---------

Co-authored-by: Colin Grant <cgrant.ext@eclipsesource.com>

* fix: typo in code completion prompt (#15383)

fixes #15379

* add gpt-4.1 models to the list of default models (#15465)

* add gpt-4.1 models to the list of default models
* add o3 and o4-mini

* Add Gemini Flash 2.5 to default models (#15487)

* Fixes #15475 by properly calling the toOllamaXxx() methods

Signed-off-by: Stefan Winkler <stefan@winklerweb.net>

* Support version for installExtension, support uninstall cmd (#13795, #13796) (#14298)

* fix: use `ElectronConnectionHandler` to connect updater services (#15430)

Signed-off-by: Giacomo Cusinato <giacomo@cusinato.co>

* More legible history entries (#15483)

* fix(chat): ensure we keep space after variables and agent label in place

* Hide overflow on sidebar-toolbar (#15492)

Fixes #15468

Contributed on behalf of STMicroelectronics

Signed-off-by: Thomas Mäder <t.s.maeder@gmail.com>

* Remove @theia/git from release (#15471)

stop publishing deprecated extension

* Make preventTabbingOutsideDialog more easily overridable (#15460)

- Add comment about functionality
- Expose application shell classes for easier reference

Fixes #15417

* Introduce editable chat requests (#15479)

Closes https://github.com/eclipse-theia/theia/issues/15295

* Fix ScanOSS button/icon in chat ui (#15339)

Co-authored-by: Philip Langer <planger@eclipsesource.com>

* Allow workspace specific custom agents (#15457)

fixed #15456

* Add support for search in workspace

fixes #15467

* Add a new tools which allow to list and run tasks

fixes #15503

* Add next template for coder

Co-authored-by: Jonas Helming <jhelming@eclipsesource.com>

* Use SimpleMonacoEditor for most inline cases (#15389)

* Fix breakpoint editor shrinking in size (#15515)

Fixes #15241.

* Pass the original argv to the "second instance" handler (#15124)

Fixes #14747

Contributed on behalf of STMicroelectronics

Signed-off-by: Thomas Mäder <t.s.maeder@gmail.com>

* Update dirty diff when editor becomes visible. (#15505)

Fixes #15426

Contributed on behalf of STMicroelectronics

Signed-off-by: Thomas Mäder <t.s.maeder@gmail.com>

* Add Terminal via "+" in terminal tool bar (#15470)

* Add Terminal via "+" in terminal tool bar

fixed #15282

* Reacto to editor model changing. (#15509)

Fixes, #15498, #15497, #15496

Signed-off-by: Thomas Mäder <t.s.maeder@gmail.com>

* Basic ssh_config support (#15499)

 ---------

Signed-off-by: KnowZero <KnowZero@users.noreply.github.com>
Signed-off-by: Jonah Iden <jonah.iden@typefox.io>
Co-authored-by: Jonah Iden <jonah.iden@typefox.io>

* Use editor widget as key for debug editor models (#15516)

Fixes #15510

Contributed on behalf of STMicroelectronics

Signed-off-by: Thomas Mäder <t.s.maeder@gmail.com>

* Agent prompt suggestions & chat summary (#15427)

* Architect suggestion to summarize and continue with Coder (#15512)

* Update deprecated xterm dependency (#15523)

fixes #13896

Contributed on behalf of STMicroelectronics

Signed-off-by: Remi Schnekenburger <rschnekenburger@eclipsesource.com>

* Translation update for version 1.61.0 (#15530)

Co-authored-by: Simon Graband <sgraband@eclipsesource.com>

* Remove git deprecation from Publishing

Signed-off-by: Simon Graband <sgraband@eclipsesource.com>

* docs: update changelog for 1.61.0

Signed-off-by: Simon Graband <sgraband@eclipsesource.com>

* core: update re-exports for 1.61.0

Signed-off-by: Simon Graband <sgraband@eclipsesource.com>

* v1.61.0

Signed-off-by: Simon Graband <sgraband@eclipsesource.com>

* Use ubuntu 22.04 runner in package native dependencies step

Ubuntu 20.04 runner is deprecated.

Signed-off-by: Simon Graband <sgraband@eclipsesource.com>

* Stub conpty.node import on linux and macos (#15443)

Signed-off-by: Parisa Betel Miri <parisa.betelmiri@microchip.com>

* Add test infor and code guidlines to project-info (#15537)

* Make monaco commands available through command palette for notebook cells (#15538)

Signed-off-by: Jonah Iden <jonah.iden@typefox.io>

* Improve handling of proxy errors and logging (#15478)

* Add initial prompt for coder agent mode (#15569)

* Add initial prompt for coder agent mode

* Add default context resolution for custom agents (#15571)

* Add default context resolution for custom agents

* Refactor menu nodes (#14676)

Fixes #14217

Makes menu nodes active object that can decide on visibility,
enablement, etc. themselves.

Contributed on behalf of STMicroelectronics

Signed-off-by: Thomas Mäder <t.s.maeder@gmail.com>
Co-authored-by: Dennis Huebner <dennis.huebner@gmail.com>

* Improve playwright tests reliability (#15446)

* Improve playwright tests reliability

* Use monaco editor instead of its container internally

* Workaround a bug where a new cell doesn't contain monaco-editor

* Use proper locator for monaco editor. Added editor wrapper page object.

* More reliable execution counter retrieval

* Clean up handling of "toggle maximized". (#15547)

Fixes #15462, #15525

Contributed on behalf of STMicroelectronics

Signed-off-by: Thomas Mäder <t.s.maeder@gmail.com>

* feat: add generic AI communication model (#15409)

Adds a new AI communication model for tracking raw LLM requests and
responses. Tracking is automated via the language-model-service.

This model serves as the foundation for:
- Extracting communication history from Theia AI, allowing LLM testing
  without running the full Theia-based application
- Replaying LLM communication without using an actual LLM, enabling
  deterministic integration tests
- Removing the clunky communication recording service, making the
  ai-history package optional

Resolves #15221

Contributed on behalf of STMicroelectronics

* Subscribe to decoration changes at initialization (#15573)

* When the DebugEditorModel attaches to the editor, it initially does not receive decorations updates. Only when changing the file, decorations are updated.

Fixes #15567

Signed-off-by: Florian Richter <florian.richter@mvtec.com>

* Use shouldAutoSave when closing widget (#15502)

* Respect editor associations when opening diff-editors (#15422)

Fixes #15401.

* [vscode] Support TerminalState shell property (#15514)

[vscode] Support TerminalState shell property

fixes #15433

Contributed on behalf of STMicroelectronics

Signed-off-by: Remi Schnekenburger <rschnekenburger@eclipsesource.com>

* Update tree upon becoming visible (#15595)

Fixes #15592

Contributed on behalf of STMicroelectronics

Signed-off-by: Thomas Mäder <t.s.maeder@gmail.com>

* deps: Bump tar-fs to 3.0.8 (#15562)

tar-fs 3.0.8 fixes CVE-2024-12905
(https://security.snyk.io/vuln/SNYK-JS-TARFS-9535930)

Contributed by STMicroelectronics

Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>

* deps: Bump dompurify to 3.2.4 (#15564)

dompurify 3.2.4 fixes CVE-2025-26791
(https://security.snyk.io/vuln/SNYK-JS-DOMPURIFY-8722251)

Contributed by STMicroelectronics

Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>

* [vscode] Support CommentAuthorInformation in CommentThread canreply (#15598)

fixes #15558

Contributed on behalf of STMicroelectronics

Signed-off-by: Remi Schnekenburger <rschnekenburger@eclipsesource.com>

* Close secondary windows on reload (#15591)

Handle closing secondary windows on reload in the electron changes

Fixed #15533

Contributed on behalf of STMicroelectronics

Signed-off-by: Thomas Mäder <t.s.maeder@gmail.com>

* Implement "code actions on save" (#15555)

Fixes #14955

Contributed on behalf of STMicroelectronics

* feat(hover-service) make hover-service use platform showPopover() (#15452)

Signed-off-by: Alexander Taran <a.taran@outlook.com>

* Clarify resolution of context files for Coder an Architect (#15579)

* Clarify resolution of context files for Coder an Architect

* chore: hide suggestions from chat input for message editing

Fixes https://github.com/eclipse-theia/theia/issues/15616

* feat: introduce experimental generic LLM provider via Vercel AI

Adds OpenAI and Anthropic for testing.
For now everything is in one package, but we should eventually split that
into a generic vercel package and a package for each provider.

Tested tool calling, streaming and structured output.
Did not test custom OpenAI compatible and Azure models.

Co-authored-by: Eugen Neufeld <eneufeld@eclipsesource.com>

* chore: commit lock file changes (#15630)

Closes eclipse-theia/theia#15627

* fix: remove duplicate npm script (#15631)

Closes eclipse-theia/theia#15628

* Allow to see editor hovers while debugging (#15609)

Currently, when debugging, hovers provided by the LSP server are not displayed, because the are disabled at the start of debugging.
This change will disable these hovers only while showing a debug hover.
Thus during debugging, debug hovers have priority over editor hovers.

Fixes #15170

Signed-off-by: Florian Richter <florian.richter@mvtec.com>

* Update OCT integration to v0.3 (#15633)

Co-authored-by: Jonah Iden <jonah.iden@typefox.io>

* Clean up next coder prompt (#15634)

* Clean up next coder prompt

* Remove two more errors

* fix show all opened editors dropdown display by using correct icon class type (#15624)

Fixes #15623

- Fixes rendering issue in "Show all opened editors" quick pick dropdown caused by icon classes being passed as a string instead of a string array.
- Also refactors to reuse the existing constant for the quick input prefix when executing the command.

* fix: correctly handle empty text response (#15638)

The stream chat agent was not correctly checking text content
and thus contents was duplicated.

* Open AI configuration View at bottom (#15637)

* deps: Bump multer to 2.0.0 (#15614)

multer 2.0.0 fixes CVE-2025-47944
(https://nvd.nist.gov/vuln/detail/CVE-2025-47944)

Contributed by STMicroelectronics

Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>

* Improve File Change Set Functions (#15642)

* Add Claude 4 Models (#15640)

* Add Claude 4 Models

* refactor: use communication model in AI history view (#15540)

Refactors the AI history view to use the new AI communication model as
data input. Removes the now obsolete communication recording service.

The history now supports two visual modes: "raw" and "compact" for
easier inspection. Also added an option to toggle newline rendering.

The ai-history package now depends on ai-chat-ui instead of the other
way around. Therefore the AI history is now optional.

Resolves #15539

Contributed on behalf of STMicroelectronics

* Fix a repetition in the coder prompt (#15650)

* fix: chat input field does not show a scroll bar (#15654)

Closes #15580

* Improve Mistral support using openAI provider

* add stream_options/include_usage only for openai models
* add workarounds to correctly handle optional fields for mistral

* fix: check for a valid LanguageModelStreamResponsePart (#15653)

OpenAI returns empty stream parts which create an empty
newContent object and is added as a markdown part in the section not expecting a text part. This breaks all the logic.

A new check is added that checks for known stream parts.
Unknown parts are logged as a warning.

fixes #15646

Co-authored-by: Stefan Dirix <sdirix@eclipsesource.com>

* Add next prompt for architect (#15649)

* Use pointer capture for split handle dragging (#15643)

Fixes #15589

Contributed on behalf of STMicroelectronics

Signed-off-by: Thomas Mäder <t.s.maeder@gmail.com>

* fix: overload ChatToolRequest.handler (#15655)

Under TS `strictFunctionTypes`, `ChatToolRequest[]` was not assignable
to `ToolRequest[]` because its handler signature narrowed the `ctx`
parameter.

Adding a second overload matching the base `ToolRequest` signature
(`handler(arg_string: string, ctx?: unknown)`) restores assignability
in `strict` mode, while still exposing the stricter
`MutableChatRequestModel`-required overload for chat code.

Related to #15648

Also fixes typos in templates, symbols and consts

* WSL remote support (#15543)

---------

Signed-off-by: Jonah Iden <jonah.iden@typefox.io>

* Render groups correctly in "more" tab bar menu (#15647)

Fixes #15636

Contributed on behalf of STMicroelectronics

Signed-off-by: Thomas Mäder <t.s.maeder@gmail.com>

* Introduce debounce for inline AI code completion

Closes #15399

- debounces inline AI code completion requests
- adds new preference `aiFeatures.codeCompletion.debounceDelay` (default 300 ms)
- explicit trigger bypasses the debounce entirely

* Prompt management refactoring and view (#15632)

Unified naming:
- Introduced clear separation between prompt templates (text) and prompt fragments (template + metadata)
- Added support for 0...1 built-in versions per fragment and unlimited custom versions
- Agents are now assigned prompts instead of prompt templates
- Agent prompts are a set of variant (1...n), which are prompt fragments, united under one id.
- Added selected & active variant logic for system prompts

The prompt service is now responsible for handling all requests regarding prompts.
This includes customization's (will be forwarded to the customization service, if one exists).
Also handles the newly introduced agent prompts.

Changed agents prompts declaration:
- Agent now provide the id of the system prompt they are using.
- Additionally they need to define the default variant, but can register many more variants.

Improved logic in prompt-service:
- Added listener when the prompts have changed
- Removed as much assumed information about the customization service as possible (e.g. file name)
- Added PromptVariantSets, selected & active variant maps to keep the state.
- Introduces types for BuiltInPromptFragment & CustomizedPromptFragment.

Introduces a new widget for configuring AI prompt fragments and PromptVariantSets.
Displays all PromptVariantSets, which agent they are used by, their variants and customizations.
Shows the active and selected variants as well as the active customization.
Offers buttons to revert to a certain customization or deleting it.
Allows the user to create a customization of built-in prompt fragents.
Displays the template text for each customization.
Shows prompt fragments that are not associated part of a variant set.

* [vscode] bump vscode API compatibility to 1.99.3 (#15658)

fix #15435

Contributed on behalf of STMicroelectronics

Signed-off-by: Remi Schnekenburger <rschnekenburger@eclipsesource.com>

* Translation update for version 1.62.0 (#15667)

Co-authored-by: jfaltermeier <jfaltermeier@eclipsesource.com>

* chore: clarify API key description for Vercel AI keys (#15665)

Extends the description of the API key preferences of Vercel AI to
clarify that the keys will be used by the Vercel AI SDK.

Co-authored-by: Philip Langer <planger@eclipsesource.com>

* Translation update for version 1.62.0 (#15673)

Co-authored-by: jfaltermeier <jfaltermeier@eclipsesource.com>

* Fix localization of files in `electron-browser` (#15677)

* Translation update for version 1.62.0 (#15678)

Co-authored-by: jfaltermeier <jfaltermeier@eclipsesource.com>

* docs: update changelog for 1.62.0

* core: update re-exports for 1.62.0

* v1.62.0

* fix: support more than 10 tool calls via OpenAI SDK (#15696)

We use the convenience "runTools" API of the OpenAI SDK to handle
requests with tool calls. By default, the SDK stops after 10 chat
completions, whereby each function call is counting as one. Thereby the
SDK just stops generating in use cases with many tool requests (e.g.
Coder with GPT4.1).

We raise the limit to 100 now by default. The option is also made
configurable for adopters.

Also updates to the latest OpenAI SDK major version 5 and adjusts the
code where necessary.

* Add (major) dependency update to Publishing (#15674)

To check with every release if (major) dependencies need to be updated.

Signed-off-by: Simon Graband <sgraband@eclipsesource.com>

* fix: remove tool results from subsequential requests

During multiple tool requests, the anthropic provider was
passing all tool results over and over again. This resulted in
unreasonable high token usage due to repetetition.

* Make sure to add openai stream options only in streaming models (#15706)

* Add support for custom AI variables in code completion prompt (#15681)

Add unit tests and sample for manual testing

Signed-off-by: Vivien Jovet <vivien.jovet@torocloud.com>
Co-authored-by: Philip Langer <planger@eclipsesource.com>

* Add Widgets, Commands and Toolbar to project info. (#15697)

* Add Widgets, Commands and Toolbar to project info.

* Make workspace functions token efficient (#15703)

* Use relative path in search results in workspace function (#15704)

* feat(chat): preserve change sets across chat branch changes

Fixes https://github.com/eclipse-theia/theia/issues/15513

* Start Chat from Editor Context (#15712)

Fixes https://github.com/eclipsesource/theia/issues/195

Co-authored-by: Haydar Metin <hmetin@eclipsesource.com>
Co-authored-by: Philip Langer <planger@eclipsesource.com>
Co-authored-by: Nina Doschek <ndoschek@eclipsesource.com>

* Workspace search function allows specifying file extensions (#15699)

* AppTester Agent via Browser Automation (#15713)

- New AppTester for browser automation support
- Ask the user before starting and installing the Playwright MCP Server

Co-authored-by: Haydar Metin <hmetin@eclipsesource.com>

* fix: temporary scroll lock when user scrolls up in AI Chat (#15683)

- when user tries to scroll up in the Chat View, temporarily enable
scroll lock, even if it is originally disabled
- restore the previous scroll lock state when scrolling back to the
bottom

fixes #15049

Signed-off-by: Camille Letavernier <cletavernier@eclipsesource.com>

* fix: initial configuration of backend loggers (#15705)

Log levels can be set via the CLI. However some loggers are already
constructed before the CLI arguments are parsed. We now make sure that
any CLI configuration also reaches the initial loggers.

fixes #15695

* Add ai tool functions for write through file changes (#15717)

* Rename the existing change set tool functions and classes to align better with that they do
* Add new tool functions to directly write changes to disk
* Adapt Coder prompts to adapt to the renamed tool function classes
* Use write through functions in coder agent mode prompt

Co-authored-by: Thomas Mäder <t.s.maeder@gmail.com>

* Revert "fix: remove tool results from subsequential requests" (#15721)

This reverts commit ee5e882a7069e72e0ac84f3ca58cedd4e11096d3.

The commit is reverted as it breaks LLM behavior in many use cases, for
example when multiple tool results are required to continue.

* Move AI Configuration View to main (#15726)

* fix: filter out error messages from the messages send to the llm

The llm does not care why the previous run was halted.
So remove error messages from the list of messages
send to the llm.

* Show active chat in chat dropdown (if it has a title).

* Update project info with styling information

* feat: implement prompt caching for Anthropic (#15731)

Mark system prompts, tools and messages for caching in the Anthropic
LanguageModel. For typical agent workflows like "@Coder" this reduces
token costs by a large factor and reduces the pressure on the rate
limit.

Currently caching is enabled by default for all Anthropic models.

Also updates token tracking functionality to be aware of token caching
and updates the Anthropic SDK.

fixes #15729

* Fix chat input widget not tracking branches and pending state (#15727)

Update the ChatInput widget to

- track the currently active branch in the session tree
- listen for state changes in the model to show either the cancel
  button when a request is pending or else the send button

Co-authored-by: Christian W. Damus <give.a.damus@gmail.com>

* Tool Call Confirmation UI (#15714)

This PR introduces a flexible and user-configurable tool call confirmation system for agent interactions. Users can now control, on a per-tool basis, whether a tool call should be:

- **Disabled**: The tool cannot be executed.
- **Confirm**: The user is prompted for approval each time the tool is called.
- **YOLO**: The tool is executed immediately without confirmation.

**Features:**

- **Per-Tool Confirmation Settings:**  
  Users can configure the confirmation mode for each tool individually, either via the AI configuration view (dropdown per tool) or directly in `settings.json`.
- **Session and Persistent Preferences:**  
  When prompted, users can approve or deny a tool call once, for the entire chat session, or persist their preference (including disabling or enabling YOLO mode) in their settings.
- **Default Mode:**  
  The default mode is YOLO, but users can set their own global default.
- **Configuration UI:**  
  Added a dedicated view for managing tool confirmation settings, making it easy to adjust preferences per tool.

Signed-off-by: Simon Graband <sgraband@eclipsesource.com>
Co-authored-by: Simon Graband <sgraband@eclipsesource.com>
Co-authored-by: Eugen Neufeld <eneufeld@eclipsesource.com>
Co-authored-by: Nina Doschek <ndoschek@eclipsesource.com>

* Consolidate Coder Prompts (#15733)

* Consolidate Coder Prompts

* Don't steal global focus for widget activation (#15735)

* fix: avoid overflow of tabbar in AI config

Fixes https://github.com/eclipsesource/theia/issues/243

* chore: update the Google AI SDK (#15737)

Updates @google/genai from 0.7.0 to 1.3.0. Instead of 'latest' we now
use a proper version range.

Also updates the Gemini default models to the latest available ones.

* fix: difficult to scroll up when auto scroll is enabled (#15748)

- distinguish between "scroll up" and "scroll down"
- always enable tmp scroll lock when going up, regardless of distance
from bottom
- disable tmp scroll lock when scrolling down, if we reach the bottom
area

* Include the ai-ide stylesheet in the secondary window (#15752)

Fixes eclipsesource/theia/241

Signed-off-by: Christian W. Damus <give.a.damus@gmail.com>
Co-authored-by: Olaf Lessenich <olessenich@eclipsesource.com>

* Fix existence check when contributing monaco menu items (#15746)

Fixes #15691

Contributed on behalf of STMicroelectronics

Signed-off-by: Thomas Mäder <t.s.maeder@gmail.com>

* Improve Ask AI feature (#15725)

* Improve Ask AI feature

Part of https://github.com/eclipsesource/theia/issues/222
Fixes https://github.com/eclipsesource/theia/issues/236

- Ensure that focus option for creating new chat session properly
activates and focuses the AI chat widget
(eclipsesource/theia/issues/236)

-Introduce a mechanism to contribute data to the editor context and add
a default contribution for diagnostic information

- Introduce AI code actions for error markers (Fix with AI, Explain with
AI)

Co-authored-by: Nina Doschek <ndoschek@eclipsesource.com>
Co-authored-by: Tobias Ortmayr <tortmayr@eclipsesource.com>

* Address review feedback

* Add README to ai-editor package

Fixes https://github.com/eclipsesource/theia/issues/255

---------

Co-authored-by: Nina Doschek <ndoschek@eclipsesource.com>

* Add initial support for images in the ai chat (#15410)

Initial implementation of #15407

---------

Co-authored-by: Martin Fleck <mfleck@eclipsesource.com>
Co-authored-by: Philip Langer <planger@eclipsesource.com>

* Fix Toolcall Spinner (#15757)

* Add support for the new vscode.lm.registerMcpServerDefinitionProvider API (#15755)

Co-authored-by: Philip Langer <planger@eclipsesource.com>

* Fix change set deletion (#15759)

* Allow to increase the number of retries before failing (#15730)

- Add a preference setting for setting the max retries
- use the preference in vercel, openai and anthropic

Co-authored-by: Stefan Dirix <sdirix@eclipsesource.com>

* Replace YOLO terminology with "Always Allow"  (#15756)

* Change YOLO terminology to Always Allow
  * In the Tool Confirmation Mode UI and settings schema, change usage of the term YOLO to "Always Allow".
* Remove colouring of tool options
  * The colouring is not necessary and can cause issues for persons with reduced vision.
* Change Approve terminology to Allow in toolcall renderer
  * Make the terminology used by the Tool Call Part Renderer consistent, in the UI and in the code, with the Allow terminology of the Tool Configuration UI.

Signed-off-by: Christian W. Damus <give.a.damus@gmail.com>

* Work on improving code completion (#15715)

* Add next code-completion template
  * does not affect current default template
* Include project info in next prompt
* Add cache for code completions
  * currently only caching proposals for the same file, line, and surrounding context
  * we may improve this by checking if the user typed parts of a previously cached proposal before making a new request, which might require adjusting how we create the cache keys

* Start Chat from Task Context (#15700)

Add a new command to start a chat by selecting an agent and a context

---------

Co-authored-by: Christian W. Damus <give.a.damus@gmail.com>

* Don't focus window for reveal widget call (#15760)

* Make Workspace Search function more efficient / use less tokens (#15743)

* add preference to configure max search results
  * introduce `ai-features.workspaceFunctions.searchMaxResults` preference
  * respect preference in AI workspace search to avoid excessive token usage
  * return error message when result count reaches the configured limit
* restrict workspace search to subdirectories
  * add optional `subDirectoryPath` parameter to search arguments
  * validate and resolve subdirectory path relative to workspace root
  * perform scoped search if subdirectory is provided
* optimize result format for token efficiency
  * trim whitespace and format matches for concise output
  * group matches by relative file path and simplify structure
  * add unit tests to verify formatting logic and token reduction
* use 30 as new default

* Fix paste handling in chat input

* feat: Provide a Task Context Management / Agent (#15732)

* Add task-context agent
Add prompts for creating task context and updating this document
Ensure task contexts are properly saved and updated on content change
Add a way to propose changes as a change set to the summary on update and do not change directly

Signed-off-by: Alexandra Buzila <amuntean@eclipsesource.com>
Signed-off-by: Tobias Ortmayr <tortmayr@eclipsesource.com>
Signed-off-by: Remi Schnekenburger <rschnekenburger@eclipsesource.com>
Co-authored-by: Alexandra Muntean <abuzila@eclipsesource.com>
Co-authored-by: Tobias Ortmayr <tortmayr@eclipsesource.com>
Co-authored-by: Remi Schnekenburger <rschnekenburger@eclipsesource.com>

* fix: remove obsolete menu workaround (#15753)

We previously used a workaround in the browser-menu-plugin to support
initially empty menus, which weren’t compatible with Lumino.

Since the menu refactoring in #14676, this workaround is no longer
needed. In fact, it now causes issues like empty submenus appearing in
context menus. Removing the workaround fixes this regression.

Fixes #15694

Contributed on behalf of STMicroelectronics

* Use Ctrl+Tab for tab navigation on Mac (#15763)

* enable Agent-to-Agent Delegation via Tool Calls (#15736)

* Add chat retry button

Add a retry button visible for cancelled or failed responses.

* Sanitize Task Context Labels (#15762)

* Add async initialization to ChangeSetFileElement (#15761)

* Fix revealTab (#15754)

Use the contentContainer for computations, because this is the DOM
element passed to PerfectScrollbar on creation

* Remove clear change from Coder prompt (#15774)

* Chat Variable for All Open Editors (#15775)

* Set Opus 4 to 32000 max tokens (#15788)

* Improve image support for tool calls (#15765)

- Introduce ToolCallResult type for better of known MCP result types
- Add visual playwright MCP server to AppTester (can use screenshots)
- Improve rendering for tool call results

* deps: Bump tar-fs to 3.0.9 (#15719)

tar-fs 3.0.9 fixes CVE-2025-48387
(https://security.snyk.io/vuln/SNYK-JS-TARFS-10293725

Contributed by STMicroelectronics

Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>

* dep: bump multer version to 2.0.1 (#15806)

Contributed on behalf of STMicroelectronics

* Listen for model will save events directly (#15787)

Instead of registering a save participant.

Fixes #15770

Contributed on behalf of STMicroelectronics

Signed-off-by: Thomas Mäder <t.s.maeder@gmail.com>

* Support instant request for chat initialized with task context and agent (#15778)

When a new chat session is initialized with a pinned agent and a task,
context such as from the Initiate Chat command or agent hand-off, in the
Chat Input View show:

- a placeholder "Perform this task." instead of "Ask a question"
- let the user submit without typing anything, which sends that
  placeholder as the request message

Fixes eclipsesource/theia#233

Signed-off-by: Christian W. Damus <give.a.damus@gmail.com>

* Return undefined instead of throwing when getting non-existent menu (#15792)

Fixes #15664

Contributed on behalf of STMicroelectronics

Signed-off-by: Thomas Mäder <t.s.maeder@gmail.com>

* AI features accessible when AI is not enabled (#15780)

* hide AI-related (context) menu entries and toolbar actions when AI is not active
* ensure conditional rendering of ScanOSS UI based on AI activation
* added ai-editor to electron sample application 
* disable chat input widget and its actions when AI is inactive

* Allow adding variants via files (#15815)

* Allow adding variants via files

fixed #15794

* Avoid playwright tests depending on cwd

* Avoid playwright tests depending on the current working directory
* Instead use paths relative to __dirname for resources
* This fixes being able to run the tests from the VSCode playwright extension from Microsoft.

Signed-off-by: Florian Richter <florian.richter@mvtec.com>

* Update Ollama version and support newest features (#15795)

* Update Ollama version and support newest features

* Update ollama to 0.5.16
* Add support for streaming tool calling
* Add support for real thinking messages
* Add support for images
* Add support for Token Usage Counting

Signed-off-by: Stefan Winkler <stefan@winklerweb.net>

* Use chatInputWidget in AskAI Input and fix keyboard scrolling (#15781)

* fix: agent tree selection highlighting in AI configuration widget

* Fix bug that customizations are treated as variants (#15846)

* Amend enablement/visibility checks for dirty diff widget toolbar actions (#15851)

* Enact code actions when change set file created (#15724)

Signed-off-by: Simon Graband <sgraband@eclipsesource.com>
Co-authored-by: Simon Graband <sgraband@eclipsesource.com>
Co-authored-by: Colin Grant <cgrant.ext@eclipsesource.com>

* Add missing NLS item for format on save (#15813)

* Pin the last mentioned agent (#15777)

Modifies the pinning behavior so that new explicit agent mentions
result in the mentioned agent being pinned, even if another agent
is already pinned.

* Streamline Ask AI commands and fix Send to AI error (#15839)

- Remove `Send to AI Chat` command from the command palette
- Narrow enablement of `Ask AI` commands for editor and terminal
- Ensure the `AiTerminalChatWidget` is only shown for user created terminals

Fixes #15827
Fixes #15849

* Fix getMenuNode() for leaf nodes (#15845)

Fixes #15828

Contributed on behalf of STMicroelectronics

Signed-off-by: Thomas Mäder <t.s.maeder@gmail.com>

* Fix playwright tests on Windows (#15684)

Fixes #15447

### Also

Simplify waitForCellStatus: The previous implementation did not wait at all. Furthermore only waiting for success and error together was used until now.

Signed-off-by: Florian Richter <florian.richter@mvtec.com>

* fix: sync selection if props change (#15784)

Class components do not re-run constructors on prop changes. This
meant that `defaultValue` and `options` were only evaluated once
during the initial mount. As a result, dynamic updates to the
selected channel did not reflect in the SelectComponent UI.

This change extracts the selected index logic into a helper method
and calls it from both the constructor and `componentDidUpdate`
to keep state in sync with prop changes, mimicking behavior of
function components using hooks.

Closes: eclipse-theia/theia#15769

* Remind coder to use file change functions (#15848)

* Cancel hover preview on right/middle mouse click (#15826)

This prevent overlap with e.g. menus.
Cancels the hover preview when a right or middle mouse button is pressed.
Left-clicks are not handled, as the event does not propagate, but this is not critical since left-clicking typically changes the UI and dismisses the hover naturally.

Fixes # 15825

Signed-off-by: Simon Graband <sgraband@eclipsesource.com>

* Fix problems with menu item 15828_menu_visibility (#15856)

- Don't check uniqueness of menu items. Plugins contribute the same
  menu item multiple times with different visibility conditions
- Don't show the 'inline' group in context 15828_menu_visibility

Fixes #15828

Contributed on behalf of STMicroelectronics

Signed-off-by: Thomas Mäder <t.s.maeder@gmail.com>

* Enable multiSelect for the DebugBreakpointsWidget (#15749)

- Enable multiSelect for breakpoints in the DebugBreakpointsWidget
- Add commands to remove/enable/disable the selected breakpoints

Signed-off-by: Stefan Winkler <stefan@winklerweb.net>

* Option to put close icons at the start of the tab label on macOS (#15103)

Add a new window.tabCloseIconPlacement preference for whether to present
the Close (X) icon in tab titles on the left or the right of the tab
in conformity with the OS's native tab controls.
Render the tab title with the icon on the left or right accordingly.
Show the new preference in the Settings UI on macOS platform only.
Default to the right as on other platforms to maintain current appearance.

Fixes eclipse-theia/theia-ide#460

Signed-off-by: Christian W. Damus <give.a.damus@gmail.com>

* Implement missing methods for plugin management in FrontendPluginServer

---------

Signed-off-by: Thomas Mäder <t.s.maeder@gmail.com>
Signed-off-by: Remi Schnekenburger <rschnekenburger@eclipsesource.com>
Signed-off-by: Roman Piper <roman.piper@mvtec.com>
Signed-off-by: Simon Graband <sgraband@eclipsesource.com>
Signed-off-by: Jonah Iden <jonah.iden@typefox.io>
Signed-off-by: KnowZero <KnowZero@users.noreply.github.com>
Signed-off-by: Per Tillisch <accounts@perglass.com>
Signed-off-by: Alexander Taran <a.taran@outlook.com>
Signed-off-by: Stefan Winkler <stefan@winklerweb.net>
Signed-off-by: Giacomo Cusinato <giacomo@cusinato.co>
Signed-off-by: Parisa Betel Miri <parisa.betelmiri@microchip.com>
Signed-off-by: Florian Richter <florian.richter@mvtec.com>
Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
Signed-off-by: Vivien Jovet <vivien.jovet@torocloud.com>
Signed-off-by: Camille Letavernier <cletavernier@eclipsesource.com>
Signed-off-by: Christian W. Damus <give.a.damus@gmail.com>
Signed-off-by: Alexandra Buzila <amuntean@eclipsesource.com>
Signed-off-by: Tobias Ortmayr <tortmayr@eclipsesource.com>
Co-authored-by: Stefan Dirix <sdirix@eclipsesource.com>
Co-authored-by: Eugen Neufeld <eneufeld@eclipsesource.com>
Co-authored-by: Thomas Mäder <tsmaeder@users.noreply.github.com>
Co-authored-by: Jonas Helming <jhelming@eclipsesource.com>
Co-authored-by: fanyipin <570524947@qq.com>
Co-authored-by: Mark Sujew <mark.sujew@typefox.io>
Co-authored-by: Remi Schnekenburger <rschnekenbu@users.noreply.github.com>
Co-authored-by: colin-grant-work <cgrant.ext@eclipsesource.com>
Co-authored-by: RomanPiperMVTec <roman.piper@mvtec.com>
Co-authored-by: Simon Graband <sgraband@eclipsesource.com>
Co-authored-by: Philip Langer <planger@eclipsesource.com>
Co-authored-by: lessmost <i@lessmost.me>
Co-authored-by: Akos Kitta <1405703+kittaakos@users.noreply.github.com>
Co-authored-by: Vladimir Piskarev <pisv@1c.ru>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Jonah Iden <jonah.iden@typefox.io>
Co-authored-by: KnowZero <KnowZero@users.noreply.github.com>
Co-authored-by: Per Tillisch <accounts@perglass.com>
Co-authored-by: Alexander Taran <Alexander-Taran@users.noreply.github.com>
Co-authored-by: Zebsterpasha <77332790+Zebsterpasha@users.noreply.github.com>
Co-authored-by: Stefan Winkler <stefan@winklerweb.net>
Co-authored-by: Dennis Huebner <dennis.huebner@gmail.com>
Co-authored-by: Giacomo Cusinato <7659518+giacomocusinato@users.noreply.github.com>
Co-authored-by: Johannes Faltermeier <jfaltermeier@eclipsesource.com>
Co-authored-by: Martin Fleck <mfleck@eclipsesource.com>
Co-authored-by: Haydar Metin <hmetin@eclipsesource.com>
Co-authored-by: parisa-mchp <127134562+parisa-mchp@users.noreply.github.com>
Co-authored-by: Florian Richter <77792630+mvtec-richter@users.noreply.github.com>
Co-authored-by: Torbjorn-Svensson <torbjorn.svensson@foss.st.com>
Co-authored-by: Nina Doschek <ndoschek@eclipsesource.com>
Co-authored-by: Hanksha <vivien.jovet@gmail.com>
Co-authored-by: Camille Letavernier <cletavernier@eclipsesource.com>
Co-authored-by: Lucas Koehler <lkoehler@eclipsesource.com>
Co-authored-by: Thomas Mäder <t.s.maeder@gmail.com>
Co-authored-by: Christian W. Damus <give.a.damus@gmail.com>
Co-authored-by: Olaf Lessenich <olessenich@eclipsesource.com>
Co-authored-by: Tobias Ortmayr <tortmayr@eclipsesource.com>
Co-authored-by: Alexandra Muntean <abuzila@eclipsesource.com>
Co-authored-by: Remi Schnekenburger <rschnekenburger@eclipsesource.com>
Co-authored-by: Alexandra Muntean <amuntean@eclipsesource.com>
Co-authored-by: Florian Richter <florian.richter@mvtec.com>
Co-authored-by: Christian W. Damus <cdamus.ext@eclipsesource.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

Tabs have close button on the wrong side on macOS
2 participants