Skip to content

Merge upstream (263 base) - #379

Open
DetachHead wants to merge 4793 commits into
masterfrom
merge-263
Open

DetachHead wants to merge 4793 commits into
masterfrom
merge-263

Conversation

@DetachHead

@DetachHead DetachHead commented Oct 21, 2026 •

Copy link
Copy Markdown
Owner

to check:

  • duplicates ModuleSet
  • support.screen.readers.tab={0} and {1} will navigate UI controls in dialogs and will not be available for switching editor tabs or other Rebased actions. Tooltips on mouse hover will be disabled.
  • gittoolbox

gregsh and others added 30 commits October 5, 2026 12:15
…in three phases

1. Phases run in order and each drains before next: open and previous-search files, searchers (collected files first, streamed files live), scope walk; authority asked once before walk.
2. FindWorkQueue runs each phase on its own channel; first end state (done, retry, canceled, failed, stopped) wins and stops search; internal failures keep their original type.
3. CandidateFilter admits every candidate: each source offers file once, one claim per scanned file or directory; claims persist on work items, so restarted read action keeps admission decision.
4. FileScanner, SearcherSet, ScopeWalker split out of task, in Kotlin.
5. Searcher results checked for exclusion, not only mask.
6. FindModelExtension files pass mask and are scanned once.
7. Class file and its source scanned once.
8. Progress fraction covers whole search and ends at 1.
9. No scope check for searcher and extension files.

GitOrigin-RevId: 9e3356e3916574ba0b85f6e5fdd5212ecce517b4
…ndexed.

GitOrigin-RevId: ac0b5a80da1135ba7558530296b3b6bdb5ccafb9
Only show Project, terminal, Notifications and Agentic views

GitOrigin-RevId: 9d4c842c317b4e65aaf9bb487ddd475041e71a14
We could provide virtual files on the frontend,
but let's not do that until absolutely necessary.
Instead, fix the group to be backend-only.
All its actions are either backend or shared at the moment.
It's unlikely we'll ever need a frontend action
in this group. Unless it's Light maybe,
which we can handle later if the need be.

GitOrigin-RevId: 32251798904f533828709612187cc224c1e41ef8
Manual sync didn't work because it set the value to false
before it was even available.

Though automatic sync doesn't work well either because it's not instant.

We'll need a more robust solution, but for now sync should help
at least in cases with an IDE restart.

GitOrigin-RevId: b54912eda4aee843461b41e5e4c6ce1a5edb1f1b
This should solve for good all issues with settings difference
between the front and the back. Except Light, where
the front and the back are the same. But that should be
solved by the automatic remdev settings sync.

This solves the problem of late sync: now whenever the user
changes an option, it's immediately applied.

GitOrigin-RevId: 9a24fc32b13277b5ad9df2863141c443f4c390c3
This should bring the backend settings
to the frontend on startup, in the case when
the frontend has outdated settings.

The direction is from the backend as it's the usual
setting for project-level settings.

GitOrigin-RevId: 2516ab7c8d8db91f30a0c2382b795f261043afa4
… block quotes in Markdown

Merge-request: IJ-MR-226513
Merged-by: Ilia Permiashkin <ilia.permiashkin@jetbrains.com>

GitOrigin-RevId: 6eecbce4a79e1c63370a1e50f407ce6706b5b1cf
…he project is configured

The headless starter started the server as soon as smart mode was reached, but readiness
reported through ActivityTracker (e.g. CLion Nova's RadProjectAwaiter, which awaits the
Radler backend) is only observed through Observation.awaitConfiguration. Nothing on the
handover path consulted it, so an agent could call tools while the backend was still starting.

Await Observation.awaitConfiguration after smart mode, bounded by
idea.mcp.server.project.configuration.timeout.seconds (default 30 minutes).

GitOrigin-RevId: ecb98367c44539425cc743d36325d7dd11508902
🍒 Cherry-picked from review IJ-CR-226715

Merge-request: IJ-MR-226727
Merged-by: Denis Mashutin <Denis.Mashutin@jetbrains.com>

GitOrigin-RevId: d3e7806b67a697712d991ed6d4a665788940e17c
GitOrigin-RevId: d140ef313dbe7fe05a2d5ff4f8cf08adf79cbb95
GitOrigin-RevId: 110849a2093fd77096523b0b32f3645188f01ece
…ks in Markdown live preview

Merge-request: IJ-MR-226682
Merged-by: Ilia Permiashkin <ilia.permiashkin@jetbrains.com>

GitOrigin-RevId: c765240d7d5d8c3bce5fd78b7d387343232e25f7
…common.link`

- upgrade `llvm` to `0.8.24` which includes our custom patch for MSVC support (and more fixes on top of it)
- upgrade `rules_rs` to `0.0.112`
- add tests to validate Fleet binaries are statically linked on Musl and MSVC targets
- use `cc_common.link` to link Rust code, this leverages directly the `llvm` toolchain instead of using `rustc` driver
    - increases compatibility with `llvm` toolchain
           e.g. MSVC linking cannot work without it right now
    - decreases compatibility with `rustc` behaviours
           e.g. misdetection of `#[link]` and others -> this is being worked on at `llvm` and `rules_rs` side

GitOrigin-RevId: a1129fe65a8142325dad413eeca8bbc1492eddc5
…e machine is under load

closes JetBrains#3662

GitOrigin-RevId: 338e6f2c80f09de7a117f8f5d668870ccfa77b64
Merge-request: IJ-MR-225964
Merged-by: Ilia Permiashkin <ilia.permiashkin@jetbrains.com>

GitOrigin-RevId: 1b05a1eddf862df99d7ff28f05c579371f81485a
* Added missed "unmockkAll" calls to teardown

GitOrigin-RevId: 1ce3c05805e191e9a319b4b8f59360b6e052ff6c
long line splitting

GitOrigin-RevId: ff1c9a2a2c23db45fc748390cad504fa4435a657
…9378)

The SSH URL of a GitLab server under a web path, such as /gitlab, has no web path.
GitLabProjectPath.create now uses the full path of such an SSH remote.

GitOrigin-RevId: a0046a986bf7f0ec19251a1954c55bb4c59bac7f
GitOrigin-RevId: bedb5274ce8dbd4aed6a9ea8a94d527bd3028348
…JPL-249378)

GitOrigin-RevId: 9098f8911788f3a36db72c2aab5d2efee657515c
Fixes PsiInvalidElementAccessException in KMP projects. It appeared when an inspection looked at a Compose call in a common source set.

Context: KMT-2518 added a fallback for functions that have no JVM class. The fallback puts the fake method inside a LightPsiClassBuilder, and that class has no file. The return type element of the method has the method as its PSI parent, so the kotlin.Unit reference inside it found no file when it walked up, and the resolve threw PsiInvalidElementAccessException.

GitOrigin-RevId: aa7951e8d83b6e9398a2ede45fb20f56ac08a6cb
GitOrigin-RevId: 74bf85b4d4c916db31f4c54dbd270a6adc0f2124
… folder

The preview turned every link into an absolute `file:` URL based on the document's folder, so a link starting with `/` pointed at the root of the disk instead of the project root.

Images don't need this any more: they keep their path as written, and `MarkdownPreviewPathResolver` resolves it. Since IJPL-248228 links use the same resolver, so they don't need it either. This change drops it, and links now work the same way as images.

GitOrigin-RevId: fc3a307c8ae25f9dfa26e2bcbde9b6ba0cb61cbe
(cherry picked from commit df6284f11a4d1afba61bf03f41231b29ec39ade9)

IJ-MR-225167

GitOrigin-RevId: 683dd24546b342e074eec3a490f44c3972b5eb23
(cherry picked from commit eb149388242e36419f9f2aed6d8c26db76e8458b)

IJ-MR-225167

GitOrigin-RevId: 57a4cf1d86c6bd2c09701b04d5d74141a0272fd9
… not trigger for full form destructuring

Merge-request: IJ-MR-226666
Merged-by: Olga Klisho <Olga.Klisho@jetbrains.com>

GitOrigin-RevId: d73c788f7686738ca699af117ccf0284f765087c
…Dev-Kit ApiRestrictions

GitOrigin-RevId: 3478efec6f394270fe6a7ba9b851b8be450c903d
GitOrigin-RevId: de5abb7284f44b2709c2976ce2b2637e876f23df
The status bar showed "Configuring a python interpreter" while the IDE set up the interpreter of an opened project. PY-88949 changed "Python" to "python" in this text. The UI guidelines write a proper noun with a capital letter, and a progress text ends with an ellipsis.

The text is now "Configuring a Python interpreter…". The modal variant of the same text already writes "Python". I checked the status bar text in a local UI run.

Found while verifying PY-89117.

GitOrigin-RevId: 7fae809b199af5e32500a87cedbcf4c79c29e16c
MaXal and others added 23 commits October 5, 2026 23:29
GitOrigin-RevId: 9e7da980af2d4acca7e60c8d65f9f8f9ab3a5c4b
… native launcher (binaries)

GitOrigin-RevId: 07ede87eb2c415432277debeb99be6cbb61e6bb5
GitOrigin-RevId: 95459f212b56e9c1d8859416de087c1c00ad720c
GitOrigin-RevId: 00b951f2bb3bb4a87c0817c27b7bb47073d0e5c4
…obal thread, to optimize CPU consumption and reduce thread creations

GitOrigin-RevId: 74a9e7a34635af83d61cbe81603ed0c28652f194
GitOrigin-RevId: 228ff123138a810649b6e201f9fde4256fdd559b
…tfix templates

The .val and .var templates choose the declaration keyword before Introduce Variable starts. Hide the var option so the saved refactoring setting cannot show a conflicting choice.

GitOrigin-RevId: 9c82e4e9861eac8cbb87bfd65056aa0e2e262d83
JPA to-many relationships and Spring Data @query collections never
contain null, so J2K marks their elements not-null. A to-many getter
that returns null keeps a nullable type.

GitOrigin-RevId: e172f0584abedb2767084eb010fbd572f3ebce4b
J2KDataflowNullability infers nullability from Java DFA facts: values and dereferences in method bodies, object construction, library annotations and Lombok-generated members. It is off by default, and the J2K Lombok tests now use the real Lombok jar.

GitOrigin-RevId: f558ac11b178ea87113ca86df871def6dd7bedce
The engine now overrides J2KNullityInferrer in every conversion, and package-private members take their callers and writes from the whole package. Expected files change where the old heuristics claimed not-null without evidence or missed a more precise type.

GitOrigin-RevId: 429fb8ed9a7f6fe6b81b228fc76afd4c540faa14
…ments in J2K DFA

Type arguments and array components get their own slots, linked by Checker Framework rules (invariant, one-way for wildcards) and followed through calls like list.get(), map.values() and for-each. The element answers stay internal for now and only feed the declarations that read them.

GitOrigin-RevId: 73b5af6d1695e5e99d50108c8513806911809cba
GitOrigin-RevId: c7ee0e233d8b71c527e2832ae0da280a9a78549f
 headless mode

GlobalInspectionContextEx.performInspectionsWithProgressAndExportResults and
launchInspectionsOffline are public, but in a non-headless IDE they return
normally without inspecting any file. GlobalInspectionContextImpl.shouldProcess
cancels file traversal while myViewClosed is true, and only the UI entry point
launchInspections ever sets it to false, so an export run is cancelled on the
first file and produces no results and no XML.

The flag exists so that closing the Inspection Results view stops a UI run.
An export run never creates a view, so do not apply the check to it, do not
push its results into the tool window, and let close(false) tolerate the
missing view instead of throwing a NullPointerException.

UI runs and headless runs are unchanged.

GitOrigin-RevId: 4a74f7ead08205032d0c38c289538fd9d6361384
The NIO lookup reports a fifo, a device, or a socket as `TerminalFileKind.OTHER`, and both path finders accepted any non-null kind.

So `/tmp/ht-fifo` and `/dev/null` became links. A click then read the document of the file: no good can happen here: a fifo blocks until a writer appears, which hung the IDE in a Docker dev container, and a device opened the file type association dialog.
Also, it's a visual noice to suggest actions which shouldn't be performed.

The finders now call `lookupLinkTarget`, which drops `OTHER`. The lookup keeps the `OTHER` kind, so a caller can still tell a special file from a missing one. The VFS lookup reports a `SPECIAL` file as `OTHER`, so the eager filter behind the registry flag behaves like the hover filter.

Regular binary files such as `.DS_Store` or `/usr/bin/zsh` keep their links. The click behavior for them matches the Project view for an unknown file type.

GitOrigin-RevId: 533b76386040c438afae7f141e77c732ae1aa0d4
…ing punctuation

Problem: the absolute path finder ends a path only at whitespace, at `:`, or at the line end. So `"/tmp/a.txt"`, `(/tmp/a.txt)`, `/tmp/a.txt,` and `see /tmp/a.txt.` became candidates with the punctuation, the lookup missed, and no link appeared. The same lines with a relative path got a link, because the relative path finder stops at these characters.

Fix: the absolute finder cannot stop at these characters, because `(`, `)`, `,` and `.` occur inside real paths such as `C:\Program Files (x86)\` or `Copy (1)`, and it looks a path up once at its end, not per segment. Instead, when a candidate misses, the finder drops its last character and looks again, at most three times, while that character ends a path in prose (`isNonPathChar` of the relative finder) or is a `.`. This also covers a shell marker such as `*` and a pipe. The longest existing candidate wins, so `"/tmp/Copy (1)"` and `"/tmp/dir."` resolve to the full name when it exists. A separator is never removed.

The link ends where the found path ends. When nothing was removed, it still ends at the parser index, so a `:line:column` suffix stays inside the link. A position after removed punctuation, as in `"/tmp/a.txt":10`, belongs to the text.

The separator check for a path with spaces and the directory prefix check keep the exact lookup, so the lookup budget of the existing tests is unchanged. A quoted path costs one extra lookup.

GitOrigin-RevId: bb68a1eeccd0c16b002fcc9496be0de968026ee5
The generic file path filter runs on the backend only: the eager `ConsoleFilterProviderEx` and the hover provider both live there. `TerminalGenericFileFilter.kt`, the two path link finders and `TerminalFileLookup.kt` now sit in `intellij.terminal.backend`, in the package `com.intellij.terminal.backend.hyperlinks.filter` next to the hover provider. Only the package line and the imports change. The `consoleFilterProvider` registration moved from `terminal.xml` to `intellij.terminal.backend.xml`.

`CompositeFilterWrapper`, `TerminalFilterScope` and `TerminalHyperlinkFilterContext` stay in `intellij.terminal` and in their package, because the Gen1 terminal in that module uses the wrapper.

GitOrigin-RevId: ba0dcffce3805ac6a5707af2f7d6b32513762141
…r consoles

`TerminalGenericFileFilterProvider` now returns the generic file filter for every console scope, not only for a `TerminalFilterScope`. The Run, Debug and build consoles get invisible hyperlinks for absolute paths, and Ctrl+Click follows such a link. The registry key `terminal.generic.hyperlinks.in.consoles` turns the feature off, and a console picks the change up when it is reopened.

GitOrigin-RevId: 14b86c59afed43953308056d13a987fb43a2dbd1
GitOrigin-RevId: ab08878016899b19ac5b21b0bf918f4d51a163d8
…elcome screen

- fix bug with constant analazing.. state of highlighters
- change add file-based app action to work as in platform scratch files

Fixed RIDER-138333

GitOrigin-RevId: 162756c11101de7a232dc52dfe0ab301a01e3b0a
Inspection profiles instantiated each tool that had saved settings during profile loading. Keep the XML on the wrapper until the tool is requested, and preserve it during copies and serialization.

Dynamic inspection groups still load eagerly because their instances provide child inspections.

GitOrigin-RevId: 6c67e9d836b58fd2a6edb6e49408e0cb7977c92b
# Conflicts:
#	.github/workflows/jewel-checks.yml
#	.gitignore
#	.idea/modules.xml
#	.idea/runConfigurations/Android_Studio__dev_build__.xml
#	.idea/runConfigurations/IDEA_With_Compose__dev_build_.xml
#	BUILD.bazel
#	build/bazel-generated-file-list.txt
#	build/src/JewelMavenArtifactsBuildTarget.kt
#	build/src/KotlinPluginBuildTarget.kt
#	build/src/org/jetbrains/intellij/build/RebasedProperties.kt
#	build/tests/testSrc/org/jetbrains/intellij/build/IdeaCommunityBuildTest.kt
#	intellij.idea.community.main.iml
#	intellij.idea.community.main.tests.iml
#	lib/BUILD.bazel
#	lib/MODULE.bazel
#	platform/build-scripts/src/org/jetbrains/intellij/build/ApplicationInfoPropertiesImpl.kt
#	platform/build-scripts/src/org/jetbrains/intellij/build/BaseIdeaProperties.kt
#	platform/build-scripts/src/org/jetbrains/intellij/build/CommunityRepositoryModules.kt
#	platform/build-scripts/src/org/jetbrains/intellij/build/productLayout/CommunityModuleSets.kt
#	platform/build-scripts/src/org/jetbrains/intellij/build/productLayout/ProductModulesLayout.kt
#	platform/build-scripts/tests/testSrc/org/jetbrains/intellij/build/FrontendModuleFilterTest.kt
#	platform/build-scripts/tests/testSrc/org/jetbrains/intellij/build/MavenArtifactsBuilderTest.kt
#	platform/build-scripts/tests/testSrc/org/jetbrains/intellij/build/PluginDistributionJARsBuilderTest.kt
#	platform/core-api/src/com/intellij/openapi/application/ApplicationNamesInfo.java
#	platform/execution-impl/resources/intellij.platform.execution.impl.actions.xml
#	platform/external-system-api/dependency-updater/BUILD.bazel
#	platform/lang-impl/resources/intellij.platform.lang.impl.actions.xml
#	platform/lang-impl/resources/intellij.platform.lang.impl.xml
#	platform/platform-api/resources/messages/IdeBundle.properties
#	platform/platform-impl/src/com/intellij/ide/GeneralSettingsConfigurable.kt
#	platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/FileEditorManagerImpl.kt
#	platform/statistics/devkit/resources/intellij.platform.statistics.devkit.xml
#	platform/tasks-platform-impl/src/com/intellij/tasks/context/BranchContextTracker.java
#	platform/vcs-impl/src/com/intellij/vcs/console/VcsConsoleTabService.kt
#	plugins/compose/BUILD.bazel
#	plugins/compose/intellij.compose.ide.plugin.codeInsight/BUILD.bazel
#	plugins/compose/intellij.compose.ide.plugin.resources/BUILD.bazel
#	plugins/compose/intellij.compose.ide.plugin.resources/intellij.compose.ide.plugin.resources.tests.iml
#	plugins/compose/intellij.compose.ide.plugin.shared.android/BUILD.bazel
#	plugins/compose/intellij.compose.ide.plugin.tests.main/BUILD.bazel
#	plugins/git4idea/tests/git4idea/ignore/GitIgnoredFileTest.kt
#	plugins/gradle/codeInsight/kotlin/backend/tests.integration/BUILD.bazel
#	plugins/gradle/codeInsight/toml/backend/tests.integration/BUILD.bazel
#	plugins/gradle/completion/kotlin/tests/BUILD.bazel
#	plugins/gradle/gradle-declarative-sync/BUILD.bazel
#	plugins/gradle/gradle-dependency-updater/BUILD.bazel
#	plugins/gradle/intellij.gradle.analysis/BUILD.bazel
#	plugins/gradle/java/BUILD.bazel
#	plugins/gradle/java/plugin/BUILD.bazel
#	plugins/kotlin/all-tests-compose/BUILD.bazel
#	plugins/kotlin/all-tests/BUILD.bazel
#	plugins/kotlin/base/fir/analysis-api-platform/BUILD.bazel
#	plugins/kotlin/base/fir/project-structure/BUILD.bazel
#	plugins/kotlin/code-insight/inspections-k2/tests/BUILD.bazel
#	plugins/kotlin/code-insight/intentions-k2/tests/BUILD.bazel
#	plugins/kotlin/compiler-plugins/parcelize/tests/k2/BUILD.bazel
#	plugins/kotlin/compiler-reference-index/tests.k2/BUILD.bazel
#	plugins/kotlin/fir/tests/BUILD.bazel
#	plugins/kotlin/gradle/gradle-java/k2/BUILD.bazel
#	plugins/kotlin/gradle/gradle-java/tests.shared/BUILD.bazel
#	plugins/kotlin/gradle/gradle/tests/BUILD.bazel
#	plugins/kotlin/gradle/multiplatform-tests-k2/BUILD.bazel
#	plugins/kotlin/gradle/scripting/BUILD.bazel
#	plugins/kotlin/injection/k2/tests/BUILD.bazel
#	plugins/kotlin/j2k/k2/tests/BUILD.bazel
#	plugins/kotlin/jvm-debugger/test/compose/BUILD.bazel
#	plugins/kotlin/jvm-debugger/test/compose/intellij.kotlin.jvm.debugger.test.compose.iml
#	plugins/kotlin/lombok/tests/BUILD.bazel
#	plugins/kotlin/project-wizard/tests/BUILD.bazel
#	plugins/kotlin/refactorings/kotlin.refactorings.tests.k2/BUILD.bazel
#	plugins/kotlin/util/test-generator-all/BUILD.bazel
#	plugins/kotlin/util/test-generator-fir/BUILD.bazel
@DetachHead
DetachHead force-pushed the merge-263 branch 2 times, most recently from 210f56e to fdbf2cf Compare October 22, 2026 11:11
it's not really new anymore because it was added a few versions ago, and i cbf figuring out how to do it because they seem to have changed the api
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.