Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Release/2026.2.2 - #341

Open
DetachHead wants to merge 1622 commits into
masterfrom
release/2026.2.2
Open

Release/2026.2.2#341
DetachHead wants to merge 1622 commits into
masterfrom
release/2026.2.2

Conversation

@DetachHead

Copy link
Copy Markdown
Owner

No description provided.

SiERic and others added 30 commits August 7, 2026 13:34
…gurables

A safety escape hatch for plugin developers whose Configurables trigger
external actions (e.g. browser OAuth, native file picker) without a
modal dialog. Configurables implementing NoAutomaticReset are skipped
by SettingsEditor.resetUnmodifiedOnWindowFocus() on Settings focus regain.


(cherry picked from commit 79beee8a0e0da064fdf696a1d05850c117f7065a)

IJ-CR-217470

GitOrigin-RevId: 83a745f8f651d4513129e74e71c87a0e66739133
…() in non-modal Settings

isModifiedSafely() was guarding against exceptions thrown by uninitialized configurables,
but the real fix is to not call isModified() at all when createComponent() hasn't been called yet.
Made isModifiedSafely() an instance method and added an editor.getContent(configurable) != null
guard inside it — returns null early if the configurable was never displayed.


(cherry picked from commit ce2ee379a3cef595ee8c77fbbe6d7ae368d9a7de)

IJ-CR-217470

GitOrigin-RevId: dc3f5d0bc06e6416c1c2afa31371ae14ffef5b90
…ettings sub-dialogs

Previously, Settings.Paste was only enabled via a data-context key
(IS_SETTINGS_CONTEXT) that was unreachable from child dialogs, because
DataManager stops traversing at AWT window boundaries. As a result,
pasting in those dialogs logged EditorPaste instead of Settings.Paste.

Replace the data-key approach with an AWT owner-chain check:
isSettingsWindow() walks window.owner until it finds the Settings window
or returns false. SettingsPasteAction now implements ActionPromoter so it
wins the Cmd+V shortcut conflict whenever the focused window is the
Settings dialog or any child dialog owned by it


(cherry picked from commit cbde5fc61fe02a46f42b20187d6ab4b4bf2ea149)

IJ-CR-217470

GitOrigin-RevId: 41db73216127a9d61753320533dc1ad006b4d570
StatisticsFileEventLogger.dispose() submitted logLastEvent() to logExecutor
via flush(), then immediately called Disposer.dispose(writer), closing the
file before the flush task could run. Changed to flush().get(1, SECONDS) so
the last buffered event is guaranteed to be written before the writer closes.

Also log project.max.simultaneous before ide.close in onIdeClose() so that
ide.close flushes project.max.simultaneous out of the merge buffer, adding
a second layer of protection against the event being lost.


(cherry picked from commit 7869cf70615690dfe61a60c0f02d38eddec275a7)

IJ-CR-217470

GitOrigin-RevId: f6b496af60b309733a2b2e4ceb2ff5ba7bb7b254
…appearing when pinned from macOS full-screen

When the Settings window (unpinned/window mode) was in macOS native full-screen
and the user pressed Pin, the new FloatDialog was created while macOS was still
running the Space-exit animation, making it invisible until a Cmd+Tab round-trip.

Fix: switchWindowMode now detects native full-screen via MacFullScreenSupport and
defers doSwitchWindowMode until windowExitedFullScreen fires. MacFullScreenSupport
gains exitFullScreen(window, onExited) that triggers requestToggleFullScreen and
routes the completion callback through the primary FullScreenListener (the only one
that JBR reliably delivers events to)


(cherry picked from commit dbb0b15c6817d66a07560897457038d02378addc)

IJ-CR-217470

GitOrigin-RevId: f5112ce355632d272129f107a68061f08acf6520
…ettings from a detached tab on macOS

The pinned Settings dialog lives on the IDE's Space. When invoked via Cmd+, from a
detached editor tab (its own Space), macOS stayed on the detached tab's Space after
the dialog appeared, requiring Cmd+Tab to find it.

Fix: call getIdeJFrame()?.toFront() before showing the FloatDialog so macOS
navigates to the IDE Space first.


(cherry picked from commit 3348469fafbd7731ce7cf4a98ef6923ce8aca89b)

IJ-CR-217470

GitOrigin-RevId: 62e04a13067ab97a9efc44defbbf4e08a6e03e1a
…og when invoked from a macOS full-screen frame

When Settings were invoked from an IDE frame in macOS native full-screen (main
frame or detached editor tab), they could spawn as a WindowFrame on a separate
Space instead of a FloatDialog on the IDE's Space.

Fix: force float/dialog mode when the invoking frame is in full-screen
(isFloat || isInvokingFrameInFullScreen()), preserving the saved preference for
non-full-screen sessions. MacFullScreenSupport now stores itself as a root-pane
client property so full-screen state can be queried for FrameWrapper-based
windows. The pin button and show() are updated accordingly.


(cherry picked from commit 11a21abd23e64df2fb65e66624d6c482f55b77ea)

IJ-CR-217470

GitOrigin-RevId: b307eef9307fe9d51322443a1a34e4a0318bea74
…port on Linux/Windows

MacFullScreenSupport was instantiated eagerly, triggering Class.forName on all
platforms and crashing on Linux/Windows due to the missing com.apple.eawt classes.
Replaced with a lazy lambda


(cherry picked from commit 23e49d1be1641ae3e8b2a5e0a21aa9226303e327)

IJ-CR-217470

GitOrigin-RevId: a7aae081dbf2224c7494c7f41d89072585a89e06
… settings in Window mode

- Disable macOS native full-screen (green button) on the Settings WindowFrame
  via setWindowCanFullScreen(false) after the window is made visible, preventing
  the window from entering its own Space. See JBR-10155.
- Move the FullScreenUtilities call into MacFullScreenSupport.disableNativeFullScreen
  (a mac-only class) and call it from NonModalWindowWrapper behind a SystemInfoRt.isMac
  guard to avoid class-loading issues on Windows/Linux.
- Bring IDE frame to front when pinning Settings while IDE is in full-screen,
  so macOS navigates to the IDE Space before the dialog appears.
- Extract common window-showing logic into showActiveWindow() used by both
  show() and switchWindowMode().


(cherry picked from commit c2cc5150e1ba3585ed757574d79d63e83401f260)

IJ-CR-217470

GitOrigin-RevId: e414f6323132d0107784cdb0e880db71ed516ee2
Settings links can target configurables that are still hidden in the filtered
settings tree after the search text is cleared. Refilter the tree before
selecting the target configurable so navigation works from searched settings
pages as well as from the regular settings tree.


(cherry picked from commit c9119d5768a6a64df48a610301631753d9d9a009)

IJ-CR-217470

GitOrigin-RevId: d0ce7edfdaa562aaf0e02f191b583d01eafbc2cd
When Search Everywhere opens an option in an already visible non-modal
Settings window, restore the window's preferred focus component after bringing
it to front. This matches the fresh-open behavior and lets settings search
highlighting update and clear consistently.


(cherry picked from commit 78074772bec9d3f188fbd0320ec3523cdaf11257)

IJ-CR-217470

GitOrigin-RevId: 2b2047bb1943d56341b683637252be5646387d6d
Persist NonModalWindowWrapper bounds explicitly instead of relying on
WindowStateService automatic registration. This matches DialogWrapper-style
behavior and keeps Settings reopening at the last user-chosen location,
including on multi-monitor setups.


(cherry picked from commit 15bb1dfafa6c2dfef53264fdfd3602b14f622217)

IJ-CR-217470

GitOrigin-RevId: 7093ef659ac37e89149733e3dd2a25e4ac74dad2
Mirror DialogWrapper bounds fitting in NonModalWindowWrapper so restored
or resized Settings windows stay within the visible screen after scale
changes, including high-DPI Windows configurations.


(cherry picked from commit 97316571ff6ec210d0a05c12abbd39d5d54a49e5)

IJ-CR-217470

GitOrigin-RevId: 63031c7fb58812090f95d0e3c245430aa4f2210a
Deeply nested composite types (unions, unsafe unions, intersections)
whose structural equals/hashCode were recomputed on every call caused a
quadratic/exponential storm in the type-eval HashMap caches: a Find
Usages run on a large project (netflix/dispatch) wedged the FJP workers
in recursive PyUnionType/PyClassTypeImpl equality and starved the EDT of
the write-intent lock, freezing the UI.

Introduce PyCompositeTypeBase as the single home for the three
set-of-members composites. It memoizes hashCode (the member set is
immutable) and adds a hashCode-mismatch fast path to equals, so unequal
composites are rejected without the O(n) member-set walk. PyClassTypeImpl
gets the same fast path, ordered after the cheap myClass/isDefinition
checks so a trivial mismatch never forces the deep type-argument hash.

PyCompositeTypeEqualityPerformanceTest guards this with a shared-subtree
DAG whose root is reachable via 2^depth paths: a deterministic call
counter stays linear with the fix and blows past the bound without it.

(cherry picked from commit 8fdc2ee131c12842750f8242cee6177522cbf5a5)

GitOrigin-RevId: 1c3d041a4922e63592fa15550a0ede9188fa38d5
(cherry picked from commit c6498d0336bd5d8c579ffb79596700439b81e842)


(cherry picked from commit a0735784dfe1f5a350f47c40bdfdbbf2208cede7)

IJ-MR-215743

GitOrigin-RevId: 6174c74a9f7e83edeeefb182bf421f63d2d669c5
closes JetBrains#3561

(cherry picked from commit 78b98ab9db6ec2498da86201341e1f4549e50db0)


(cherry picked from commit 46529c4c7990f9af20c04fcb44ffb50db7100558)

IJ-MR-215743

GitOrigin-RevId: 05be536d1e51e22d25101277f980646586704b76
- Replace generated SVG spinner frames with direct Canvas drawing.
- Keep the existing small and big public APIs while preserving style color
  and frame timing.
- Match the original SVG segment winding and derive geometry from the
  actual canvas size.

closes JetBrains#3563

(cherry picked from commit 1f6abdd5489501af1af6d9c9f193cafee74595d9)


(cherry picked from commit 14fccd5abaef6a606671bf7f6d78c48919e48539)

IJ-MR-215743

GitOrigin-RevId: 4582eaa1dc7005f6e2653bb9c1d685e2acbf0835
closes JetBrains#3562

(cherry picked from commit 867bfc09a26aa1faf8e6582a912558f80acbe628)


(cherry picked from commit 7d4373db035c9b766349ae14ee72a104549c008d)

IJ-MR-215743

GitOrigin-RevId: 637042f03df679ae63f6a6e7b85cccfdc7ca1630
closes JetBrains#3517

(cherry picked from commit 6009feee740379a8ea6ef3be9f651c56057603e5)


(cherry picked from commit 11bd76193419b6e20e1d5284f0eb8a0c5446b69c)

IJ-MR-215743

GitOrigin-RevId: e837c3595efd84d4e51cc72a03942cd169d843b5
Several deprecated Jewel APIs were removed in [JEWEL-1323]. Migrate the
Android Compose consumers to the current API:

* `Typography.<member>()` -> `JewelTheme.typography.<member>`
  (`org.jetbrains.jewel.ui.typography`); the members are now composable
  properties instead of functions.
* Reintroduce a shared `TextStyle.copyWithSize` extension in `adt-ui-compose`
  that preserves the removed helper's line-height behavior (`fontSize * 1.3`,
  the former `Typography.DefaultLineHeightMultiplier`), and use it from both
  `InfoMarkdown` and `ComposeChooseAndroidProjectStep` instead of duplicating
  the calculation.
* `InfoMarkdown` now calls the `Markdown` overload without the ignored
  `onTextClick` parameter and passes `processingDispatcher` (renamed from
  `renderingDispatcher`). Its own `onTextClick` parameter is kept so callers
  are unaffected; it was already a no-op.
* `LocalComponent` moved from `org.jetbrains.jewel.bridge` to
  `org.jetbrains.jewel.foundation`; update the imports in the `avd` module.

No behavior change.

(cherry picked from commit 2dffc1f575d13d1f7c3306247ed536df9ac8fdf1)


(cherry picked from commit 70f32d660b1fb7aa585f97a3eacfe9702743ee1f)

IJ-MR-215743

GitOrigin-RevId: e20eb21b764cd36ddbe2e4b9afeb9a3a5f7648d6
Compose paste action updates could traverse the Compose semantics tree from BGT even though Compose UI tree access is EDT-confined. This made action updates vulnerable to transient semantics tree inconsistencies while Compose was mutating layout state.

Run the paste provider update on EDT and make focused semantics lookup fail closed for the observed transient nullability failure. The lookup still behaves as no focused Compose component being available, avoiding noisy action-update errors.

Add focused coverage for the provider update thread and fail-closed semantics lookup behavior.

closes JetBrains#3570

(cherry picked from commit 27c0d0d293c6564330177a14513119ba8b37ac36)


(cherry picked from commit dbf73d9a52504935b63530ce5ed8450d4833bfb4)

IJ-MR-215743

GitOrigin-RevId: 5be520dc5115066833eaab6196f5bf430ed6081a
closes JetBrains#3568

(cherry picked from commit 49f653fd7b2791fa15fcc494b3cfb0232ecfc038)


(cherry picked from commit 95ccee3cd391b3a35140290f143d99688b0a676f)

IJ-MR-215743

GitOrigin-RevId: 55c895cb23d36e19989f5becf91bf6b739792d35
Add a project-local agent skill documenting Jewel Markdown rendering, so
agents working under platform/jewel/markdown have grounded guidance instead
of guessing at the experimental API.

The skill (.agents/skills/jewel-markdown) covers the two-stage parse/render
pipeline, the decision between styling, custom renderers, and extensions, the
existing GFM extensions, and how to write custom block/inline extensions. It
adds topic references for code highlighting, image loading (including the
sized-image support), embedded HTML conversion, and editor-preview scroll
sync, plus an eval suite. References point at in-repo sources rather than a
duplicated API map, since the sources are authoritative and a static index
would drift.

Also refresh platform/jewel/markdown/README.md to match current reality:
image loading via the Coil 3 extension is supported now, so move it out of
the roadmap list and drop the stale "images are not supported yet" note.

closes JetBrains#3545

(cherry picked from commit b2ed64698f1a67d427f1fb7fa8ac48c1b8780b74)


(cherry picked from commit 2d6bf07ddd75dc0ad957ad8254676217c81e2c33)

IJ-MR-215743

GitOrigin-RevId: 7fe40ceecc4d909369c6b16672c96bba971e45b9
SpeedSearchableLazyColumn could select the second match instead of the
first when the item that was selected before typing got filtered out of
the results. It surfaced as a flaky, CI-only failure in
SpeedSearchAreaFilteringTest.

The scroll effect that decides the selection and the list re-filtering
run on independent reactive graphs with no ordering between them. When
the re-filter cleared the selection before the scroll effect ran, the
"closest visible match to the current selection" step produced nothing
(there was no selection left to anchor to) and control fell through to
the branch meant for off-screen matches, which selects the first match
after the last visible item instead of the first match.

Fall back to the first visible match when there is no selection to
anchor to, so the first result is always selected regardless of which
reaction wins the race. This matches the IntelliJ Platform behavior,
which also resolves to the top row when the previously selected item
leaves the filtered set.

Document the full selection algorithm on the scroll effect: a forward
scan from the top of the viewport that wraps to the top of the list,
mirroring Swing's SpeedSearchBase.findElement rather than
ListWithFilter's always-select-row-0.

Add a regression test that reproduces the losing interleaving
deterministically by clearing the selection before typing, and three
tests pinning the viewport rule with matches inside, only below, and
only above the viewport.

closes JetBrains#3564

(cherry picked from commit 8683754e04bfb94f6eab8394c3fea5d1c53a95d0)


(cherry picked from commit 522e653658ba06e64a432835d51df338f034ec9d)

IJ-MR-215743

GitOrigin-RevId: dfb04284a5537052ba05a6205dd57bb5edb48134
…el POMs

Jewel Standalone consumers hit `NoClassDefFoundError: com/intellij/platform/icons/IconManager`
at IntUiTheme startup because the generated POMs did not declare the Icons API modules
(`com.jetbrains.intellij.platform:icons-api` / `-api-rendering` / `-impl`), forcing consumers
to wire them by hand.

The POM generator's `patchDependencies` had no branch for the `com.jetbrains.intellij.platform`
groupId, so the icons dependencies fell into the implicit `else` and were silently dropped.
Emit them as `compile` dependencies instead: the icons-api types are part of Jewel's public API
(e.g. `Icon(...)` and the `iconKey(...)` DSL in jewel-ui), so `compile` is required for downstream
compilation and also mirrors the Gradle `api(project(":jb-icons-*"))` wiring.

Because `patchDependencies` receives a module's direct dependencies, this naturally scopes the
change to `jewel-ui` (icons-api, icons-api-rendering, icons-impl) and `jewel-int-ui-standalone`
(icons-api, icons-impl); other Jewel modules receive the icons transitively. The icons artifacts
themselves are already published to Maven Central by the earlier JEWEL-1354 work.

Add a regression test in MavenArtifactsBuilderTest that drives the public
`mavenArtifacts.patchDependencies` hook for `intellij.platform.jewel.ui` and asserts the icons
dependencies survive as `compile` with transitives; it fails without the generator fix.


(cherry picked from commit c5b8cdc2a7397a2eb23ad6aef4b1e5daaf3f6527)

IJ-MR-215743

GitOrigin-RevId: 84580c1f2537ab357c5cf7fea5e16bf8d6aaa867
Record the two Jewel Standalone hotfix patch releases on master: add their
`RELEASE NOTES.md` entries and their Metalava API dumps (28 files each, both the
stable and the experimental surface).

Both releases exist to carry the JEWEL-1374 fix that declares the Icons API
modules (icons-api / icons-api-rendering / icons-impl) as dependencies in the
published Jewel Standalone POMs, so consumers no longer hit
NoClassDefFoundError for IconManager at IntUiTheme startup.

The hotfixes changed packaging only, not code: no API was added, removed or
modified relative to 0.39 and 0.38. The 0.39.1 and 0.38.1 dumps are therefore
byte-identical to the 0.39.0 and 0.38.0 ones.

This is release metadata only. `jewel.release.version` deliberately stays at
0.40.0, and neither the generated JewelApiVersion nor the generated IntUi theme
definitions are touched, so the current development version is unaffected.


(cherry picked from commit 8fa9a953c36d649bc26a24ea07916a4048bb7b8e)

IJ-MR-215743

GitOrigin-RevId: b398546e6fc0eb59d982b86cc09e7fe1293a0f1f
Adds portable Jewel typography helpers for default, editor, and console text styles so UI code can use JewelTheme.typography instead of platform-specific bridge or standalone APIs.

Keeps bridge font-size requests aligned with Swing/editor font metrics for sp sizes while preserving proportional em sizing, and updates Jewel metalava API dumps.

closes JetBrains#3567


(cherry picked from commit 3cc71cfcb53376a39dbaf0dcec39f602ec74c28c)

IJ-MR-215743

GitOrigin-RevId: 021c57bfc742f18bba531943e113bde3e1ac3402
(cherry picked from commit d41e77d3ec242375ccba9725c23ba275f56163b8)

IJ-MR-215743

GitOrigin-RevId: d7a2c915903f6d98288f99041cc17df55cdcae40
…rsion

The generated `IntUiLightTheme` and `IntUiDarkTheme` carried the `IJP 263`
header inherited from master, while this branch builds against
`262.SNAPSHOT`. Regenerating them realigns the header with the branch's
`build.txt`.

Only the generator header comment changes; all palette values are
identical, so this has no effect at runtime. The 0.38.1 and 0.39.1 release
preparations made the same realignment on their respective branches.


(cherry picked from commit 8efed54fdcd21134418238b48dc2110774011279)

IJ-MR-215743

GitOrigin-RevId: 681c306cf6afcf0048be030a5788c56961278ae1
… lost

🍒 Cherry-picked from review IJ-CR-217426

Merge-request: IJ-MR-217460
Merged-by: Denis Mashutin <[email protected]>

GitOrigin-RevId: 3fd2594ddbe73b76bf663e2c3aef901dfc36dcbe
alexkats and others added 27 commits August 26, 2026 15:16
(cherry picked from commit cf1f80ac5cea33ed0b30d701af61d484a4b7d7ea)

IJ-MR-220269

GitOrigin-RevId: 58f9acef11a4598b973b4c448a53666eeb3630d4
- Python 3 - `__file__` is always `*.py`
- Python 2 - `__file__` could be `*.pyc`

if the file is `*.pyc` - `... in step_files` will fail, hence why the relevant test `test_only_step_modules_are_reimported` fails on Python 2


(cherry picked from commit 1ab51b37debb41df12b04a10ff0945b996b8c0ec)

IJ-MR-220056

GitOrigin-RevId: 75d535845f2aaef9303388b114d20c8cc2f71a9d
(cherry picked from commit 90aa631b16cc30fafb86a558f6b3c73aa410d4fd)

IJ-MR-220953

GitOrigin-RevId: ca18177a17fcfb6341068539d79a099161da8325
The debugpy launch configuration is assembled outside PythonCommandLineState.startProcess, and it applied the run
configuration's own environment variables after the entries the IDE contributes. A PYTHONPATH typed into Environment
variables therefore replaced the content roots, the source roots and the interpreter's added paths rather than
extending them, and the debuggee failed to import a project module. Run mode and the pydevd backend order the two the
other way round, in PythonCommandLineState.initEnvironment.

Contribute those entries after the configuration's own variables, through PythonEnvUtil.initPythonPath, so the typed
value keeps its precedence and the roots are appended to it. This also preserves a PYTHONPATH coming from an env file,
which the previous helper dropped by seeding its merge from getEnvs() alone, and passes isPassParentEnvs instead of an
unconditional true so the system PYTHONPATH is not folded in when the debuggee does not inherit the parent
environment.

The PythonCommandLineState.buildPythonPath(configuration, passParentEnvs) overload was added for this single caller
and now has none, so it is removed instead of reshaped; the composition lives next to the launcher that needs it.

IJ-MR-220448


Merge-request: IJ-MR-220658
Merged-by: Maxim Popov <[email protected]>

(cherry picked from commit b3c6145c73291ddf81c3c6a4479dee7572b16a45)

IJ-MR-220658

GitOrigin-RevId: a029e9cf611edca8f4d104eaf3f7b0ecdeb4546d
(cherry picked from commit 80c80d51b4f1b8122f4d3087425c2990a9c1ed57)

IJ-CR-220943

GitOrigin-RevId: f215610bbb4700f00eb6430ea1399886b4f5e802
…tes with local source

In split mode updates are coming from CombinedPluginUpdateHandler which already have correct source set.


(cherry picked from commit 1b1f23880e058073ae05468d36c14a52f84c2e1f)

IJ-MR-220930

GitOrigin-RevId: 70c544cee932d2cfee5d7e3107b932d4f7fd40b7
(cherry picked from commit 7c562ac1a113bdc44690488b112c17cbf42b4063)

IJ-CR-220618

GitOrigin-RevId: bd19a2fd5148c95702025c57b5609c64085ae6aa
…nd 11; add matrix project tests

(cherry picked from commit e87ac16cfdd2209fd0398be144e9ae2f702813f2)

IJ-MR-220738

(cherry picked from commit bb01bd937bfd8ff20b02d53d77c46e746b5b3d13)

GitOrigin-RevId: 20f68969418b5330b34fc07ac771ef38a5ffd401
…backend never finishes (SerializationException: subclass 'Repository' not found in polymorphic scope of 'PluginUpdateSourceId')

(cherry picked from commit 5ff09f6bfa8f70144e0517659d7a0eac9d004cba)


(cherry picked from commit c78af0002db9e52a97dc6916c8c105ad925375ad)

IJ-MR-221282

GitOrigin-RevId: dfed50865406460912eaf38872d10dc83951e7b3
…eSourceId

(cherry picked from commit 8312cd37453caba943ad82b0d2331f85da657f10)


(cherry picked from commit 02804e99af3ad1c0f5d3aaf371b389f3f996c2a7)

IJ-MR-221282

GitOrigin-RevId: 82e36cd48a266be362a8dd2f3a312bcc0b3a0424
…s off

PyCharm failed with `NoProjectStateHandler not found, but it must be registered`
when a user opened an .ipynb file from Finder while the IDE was not running.

Two gates disagreed. The provider claimed the file from the registry key
`welcome.screen.open.files`, which defaults to true. The only registered
`NoProjectStateHandler` declines when the advanced setting
`welcome.screen.non.modal.enabled` is off, so the `requireNotNull` threw.
PY-89419 made this reachable, because it writes that setting to false for a
paying user.

The provider now checks the setting too. A paying user gets the default file
opening path instead of the Welcome screen project. The test module needs
`intellij.platform.welcomeScreen` to instantiate the provider.

This fix is for 262 only. IJPL-249071 removed the handler call on master, so
master opens the Welcome screen project for every user and must not get this
gate.


(cherry picked from commit 8b180e632c3832fd7bdf34e26bbfdbc931e5e5ab)

IJ-MR-221009

GitOrigin-RevId: 388058443109958124cd6d61297003c4ec56969a
Do not wrap coroutine cancellation in IOException when EEL-backed filesystem operations are interrupted. Propagate the original cancellation so callers abort consistently with local NIO operations.

(cherry picked from commit 0ac38a910fc751bbaba00d8db228809e8cac03c1)


(cherry picked from commit 2f1977dc867f8b22a23c3af941d0d0e4bf5ae5d8)

IJ-MR-221109

GitOrigin-RevId: f0b5d83b23261d0fe023fc5912e24235f4df553a
…cking out a branch (#317)

Co-authored-by: detachhead <[email protected]>
(cherry picked from commit 73e6f74)
no idea why bazel has randomly decided to start dumping shit into this directory

(cherry picked from commit 1f8708d)
Co-authored-by: detachhead <[email protected]>
(cherry picked from commit 5fe9b15)
Co-authored-by: detachhead <[email protected]>
(cherry picked from commit 0475ae0)
this was leftover from the old way rebased versions worked. now that the build number is preserved from upstream, this check can be added back

This reverts commit 3db6595.

Co-authored-by: detachhead <[email protected]>
(cherry picked from commit 2630967)
* fix "The 'Core' plugin (ID: 'com.intellij') was not found" error when debugging plugins with Rebased

* fix tests

* document how to debug plugins with rebased

---------

Co-authored-by: detachhead <[email protected]>
(cherry picked from commit 4b86f65)
# Conflicts:
#	BUILD.bazel
#	intellij.idea.community.main.tests.iml
#	plugins/kotlin/compiler-reference-index/tests.k2/BUILD.bazel
@DetachHead DetachHead added the release branch this PR is for publishing releases based on an upstream release branch - not to be merged label Sep 4, 2026
DetachHead and others added 2 commits September 4, 2026 20:33
…Tabs" and "Close Other Tabs" actions don't work when the non-closable log tab is present in the editor window (#346)

* fix regression (introduced when merging 2026.2) where the "Close All Tabs" and "Close Other Tabs" actions don't work when the non-closable log tab is present in the editor window

* update `FileEditorManagerTest` tests for the rebased-specific file closing logic

* enable `FileEditorManagerTest` tests in ci

---------

Co-authored-by: detachhead <[email protected]>
(cherry picked from commit 326102e)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release branch this PR is for publishing releases based on an upstream release branch - not to be merged

Projects

None yet

Development

Successfully merging this pull request may close these issues.