Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1852 commits
Select commit Hold shift + click to select a range
b86bb5d
IJPL-248392 LSP: mark `LspDocumentSyncManager` as closed to avoid inc…
piotrtomiak Jun 25, 2026
d4294bc
IJPL-248392 LSP: do not log errors related to client state when docum…
piotrtomiak Jul 1, 2026
626818b
IJPL-248392 LSP: rename LspDocumentSyncManager.dispose -> shutdown
piotrtomiak Jul 13, 2026
a96d084
IJPL-248392 LSP: remove race condition in LspDocumentSyncManager.close
piotrtomiak Jul 13, 2026
7c4ac37
PCQA-1757 Point repositories UI at the Settings "Package Repositories…
denis-mashutin Aug 19, 2026
3b045ad
setup [debugger]: OWNERSHIP files
gorrus Aug 20, 2026
0912934
IJPL-253202 PluginUpdatesService: Remove static recalculateUpdates me…
Aug 18, 2026
1379b32
[fus] IJPL-251495 New CLI install usage collector
jreznot Jul 29, 2026
7c9831a
IJPL-253306 mark modules used from external plugins as public
chashnikov Aug 19, 2026
c006116
[debugger] IDEA-392909 Fix incorrect variable accessing from the inst…
steelart Aug 18, 2026
4395850
FUS-8201 FUS-8205 FUS-8206 FUS-8207 FUS-8375 FUS-8398 FUS-8526 FUS-85…
Aug 20, 2026
76883f9
[remote development tooling] IJPL-231068 Sync split mode inspections …
NikitaKatkov Aug 5, 2026
08d341f
[split mode] IJPL-252040 Fix packaging test
NikitaKatkov Aug 13, 2026
b13f6ee
[devkit & split mode] IJPL-247105 Use inspections config from the pro…
NikitaKatkov Aug 20, 2026
b94683c
CPP-51809: make experiment more broad
ujohnny Aug 20, 2026
fb5bcfe
IJPL-253447 Workspace Model: fix notification group in codegen-api ve…
bochkarevko Aug 21, 2026
f757637
[debugger] RIDER-141781 Make set line/update position requests sequen…
zuevmaxim Aug 18, 2026
fa00552
[debugger] RIDER-141781 Review fixes IJ-CR-219419
zuevmaxim Aug 20, 2026
4833a21
IDEA-392665 [jakarta] Add updated schemas and XML resources for Jakar…
dtsaryov Aug 13, 2026
9376f30
IDEA-392665 [jakarta] Add support for Jakarta EE 11, JSP 4.0, and upd…
dtsaryov Aug 13, 2026
d0bbbda
FUS-8380 FUS-8564 FUS-8591 [fus]: auto-update bundled metadata
Aug 21, 2026
8c2e95a
PY-90122 Lower the fixed point analysis threshold for cycles, add smo…
east825 Aug 11, 2026
c36790b
PY-88391 python: Promote dict literal to a `TypedDict` inside a union
npanuhin Jul 10, 2026
71ec23a
PY-91785 hide the read-only tool path field when it has no path to show
alexkats Aug 21, 2026
161150c
IJI-3336 Updating versions of project dependencies: runtimeBuild->25.…
Aug 21, 2026
e05173e
FUS-8592 [fus]: auto-update bundled metadata
Aug 24, 2026
e3e3b9e
[yaml] IJPL-249692 recognize non-decimal integers and honor explicit …
xiexed Jul 21, 2026
6263995
DO-4699 Enable Feature Usage Statistics Reporting for Custom CLI Appl…
suzy-kostumyan Aug 7, 2026
269865c
DO-4699 Enable Feature Usage Statistics Reporting for Custom CLI Appl…
suzy-kostumyan Aug 10, 2026
fcd3164
[maven] IDEA-391792 Maven Dialogue is not always populated when openi…
Aug 14, 2026
c13cc63
FUS-8582 [fus]: auto-update bundled metadata
Aug 24, 2026
6dfb6b0
FUS-8583 [fus]: auto-update bundled metadata
Aug 24, 2026
d39905d
FUS-8593 [fus]: auto-update bundled metadata
Aug 24, 2026
f069fe3
FUS-8569 [fus]: auto-update bundled metadata
Aug 24, 2026
44723ef
[markdown] IJPL-253366 The PlantUML Markdown Extension is too old
p3rmiashkin Aug 25, 2026
57e51ca
FUS-8488 FUS-8551 [fus]: auto-update bundled metadata
Aug 25, 2026
90f3105
[fus] IJPL-251495 New CLI install usage collector
jreznot Aug 24, 2026
16dde47
FUS-8558 FUS-8603 [fus]: auto-update bundled metadata
Aug 25, 2026
a4f3173
FUS-8379 LLM-26948 [fus]: auto-update bundled metadata
Aug 25, 2026
1250cc2
[diagnostic] IJPL-253601 HeapDumpAnalysisSupport.uploadReport - Acces…
jreznot Aug 25, 2026
e28e15a
[maven][IDEA-391653] Use DependencyCompletionService.suggestGroupComp…
LoomT Aug 6, 2026
8dd3a14
FUS-8552 [fus]: auto-update bundled metadata
Aug 25, 2026
f6b69f2
[maven][IDEA-392779] Update acceptable characters
LoomT Aug 19, 2026
ecd362e
IJPL-253712 improved ProgressManager diagnostics
cdracm Aug 24, 2026
9098043
FUS-8515 [fus]: auto-update bundled metadata
Aug 25, 2026
b2cf5b4
FUS-8492 [fus]: auto-update bundled metadata
Aug 25, 2026
25cd511
[debugger] IJPL-253407 Fix setting a breakpoint on Windows/Linux with…
AlexVanGogen Aug 25, 2026
19e200a
[split mode] IJPL-253269 IJ-CR-219485 Wait until backend assigns an i…
NikitaKatkov Aug 19, 2026
f620b6f
PY-91824 Temporarily disable remote poetry/pipenv/hatch
alexkats Aug 26, 2026
09eb10a
PY-91833 Set "Python Packages" tool window default anchor to the righ…
TimurMalanin Aug 26, 2026
76f4e18
LLM-17026 [ai-completion] do not store a Project in InlineCompletionL…
kkarnauk Aug 12, 2026
220976a
LLM-17026 [ai-completion] do not strand inline completion async log a…
kkarnauk Aug 12, 2026
07f06c6
LLM-17026 [ai-completion] prevent async log adds after flush
kkarnauk Aug 12, 2026
f12536d
[markdown] IJPL-251345, IJPL-251944 Improve markdown performance
p3rmiashkin Aug 26, 2026
6fb715d
IJPL-253116: disable FilePageCache buffers flushing on idle/focus lost
ruslancheremin Aug 18, 2026
e16aa85
IJPL-253116: disable FilePageCache buffers flushing on idle/focus los…
ruslancheremin Aug 24, 2026
0d5ce4a
[threading] CPP-51261: Handle temporary release of write-intent lock …
knisht Jul 24, 2026
a140cb8
[python] PY-91830 handle the case when `__file__` is `pyc`
lancelote Aug 25, 2026
35bd5b5
[platform] IJPL-253271 fire write-action boundary listeners for outer…
maxmedvedev Aug 18, 2026
59cc151
PY-91806 Update typeshed version to 28b0c4d114f3d4bc28b022385d096038b…
Aug 24, 2026
15f5f36
PY-91856 mark typing NamedTuple functional tests affected by typeshed…
azimsh3r Aug 26, 2026
f1f6314
PY-91805 Update conformance test suite version to 44f42629df028aebb78…
Aug 24, 2026
25ce9dc
FUS-8608 [fus]: auto-update bundled metadata
Aug 27, 2026
6791cdc
BAZEL-3441: Add "jetbrains_test_runner" tag to test macros relaying o…
Aug 18, 2026
4ef9529
PY-91831 [debugger]: keep the IDE's PYTHONPATH entries under debugpy
nomorehumor Aug 27, 2026
fd8f1c6
PY-91306: Clean `.pyc` files with `CleanPycAction`, add test.
throwable-one Aug 27, 2026
1f24378
Rename .java to .kt
honourosis Aug 6, 2026
a255301
[IDEA-392752] converted `TargetDebuggerConnection` util from Java to …
honourosis Aug 6, 2026
1063443
[IDEA-392752] use eel api to run java debugger on a remote target
honourosis Aug 13, 2026
442147e
[wsl][debugger][IDEA-355585] run Java Debugger in client mode by defa…
honourosis Aug 17, 2026
ea36435
FUS-8598 [fus]: auto-update bundled metadata
Aug 28, 2026
817aded
RIDER-136564 [Rider]: IJ-CR-218058 repo view code cherry-pick
thisisvolatile Feb 17, 2026
fa13e71
testFramework [python]: Fix `mockPathAndAdd`.
throwable-one Aug 12, 2026
f7e75c7
testFramework [python]: Fix `mockPathAndAdd`.
throwable-one Aug 13, 2026
815db75
tests [python]: Fix `NoCondaAndVenAsSystemPythonsTest`.
throwable-one Aug 12, 2026
40c6c53
LLM-30822 [ai-next-edit] fix awaiting of async jobs in
kkarnauk Aug 28, 2026
3292efd
IJPL-253782 remote development, plugin manager: Do not overwrite upda…
Aug 27, 2026
ccaac65
KMT-643 [Compose Resources] Prioritized showing strings from "values"…
fili5rovic Jul 30, 2026
c9f9d1b
tests [compose resources] update AGP version in test data
alexresiga Aug 27, 2026
656150b
KMT-643 [compose resources] getContainingFile can be null
alexresiga Aug 27, 2026
1e9cfa4
KMT-643 [compose resources] add missing test dep
alexresiga Aug 27, 2026
b184d2f
KMT-643 [compose resources] use existing runWriteAction, add import, …
alexresiga Aug 27, 2026
42781b0
IDEA-393177 [jakarta] Update Gradle templates for Jakarta EE 9, 10, a…
dtsaryov Aug 28, 2026
88b565d
PY-91939 Update typeshed version to f40e0da70e10e818692c3a771d5d5ac70…
Aug 31, 2026
77efa28
IJPL-248653: add VirtualFile.isValid check
ruslancheremin Aug 29, 2026
9f6c162
IJPL-253651 [ssr] disable all script constraints for untrusted projects
BasLeijdekkers Aug 31, 2026
8b49798
KMT-2942 Add OWNERSHIP files for the KMT team
Aug 31, 2026
6440238
GO-20796 Preserve cancellation in EEL filesystem builders
nikitakuchur Aug 28, 2026
a2f4e7d
[plugins] IJPL-248574 Remote Development: plugin installation on the …
Leneshka-jb Jun 26, 2026
c3735ee
[plugins] IJPL-248913 Restore serialized xml structure of PluginUpdat…
Leneshka-jb Jul 1, 2026
f4f2d3b
FUS-8609 [fus]: auto-update bundled metadata
Sep 1, 2026
b13dcda
FUS-8609 FUS-8618 [fus]: auto-update bundled metadata
Sep 1, 2026
5e4af4d
FUS-8609 FUS-8619 [fus]: auto-update bundled metadata
Sep 1, 2026
a993002
FUS-8633 [fus]: auto-update bundled metadata
Sep 1, 2026
9863482
FUS-8636 [fus]: auto-update bundled metadata
Sep 1, 2026
cb84c51
FUS-8600 [fus]: auto-update bundled metadata
Sep 1, 2026
c30aa16
[markdown] IJPL-248455 GitHub Alert icons are duplicated in the gutte…
p3rmiashkin Sep 1, 2026
5415783
FUS-8519 FUS-8606 [fus]: auto-update bundled metadata
Sep 1, 2026
7d36016
BAZEL-3492: Enable indexing of all files in directories and exclude u…
Sep 1, 2026
67c6599
PY-91932: do not claim a notebook when the non-modal Welcome screen i…
SprutSDM Aug 31, 2026
34b0745
PY-91167 stop a background SDK update that outlives its project or SDK
alexkats Sep 1, 2026
bf5d227
PY-89222 pass the requested version spec to conda on update
alexkats Sep 1, 2026
7aeed06
IJ-MR-219988
hsz Aug 24, 2026
5db9f58
[kotlin] KTIJ-38940 Update bundled JPS version to Kotlin 2.4.0
jqyp Aug 2, 2026
0d399eb
[kotlin] KTIJ-38940 Fix `FirKeywordCompletionTestGenerated` test data…
PetrakovichVictoria Jun 11, 2026
d6f1954
[kotlin] KTIJ-38940 Add/fix K2_ERRORs
PetrakovichVictoria Jun 11, 2026
99da968
[kotlin] KTIJ-38940 Test changes behavior: items now exist
PetrakovichVictoria Jun 11, 2026
9a85291
[kotlin] KTIJ-38940 KTIJ-39720 J2K: Add Kotlin 2.4 test for changed g…
jqyp Jul 27, 2026
ab14c33
[kotlin] KTIJ-38940 Fix test data
jqyp Jun 17, 2026
a35ded7
[kotlin] KTIJ-38940 Fix `kotlin-reflect` version added by the quick-f…
jqyp Jun 25, 2026
1e0f235
[kotlin] KTIJ-38940 reuse `kotlin.version` for added Kotlin Maven dep…
jqyp Jun 25, 2026
d5b8b58
FUS-8634 [fus]: auto-update bundled metadata
Sep 2, 2026
5f38035
[java] IDEA-393022 enable Java 27 for 2026.2.3
mikhail-pyltsin Sep 1, 2026
f58a1b0
FUS-8655 [fus]: auto-update bundled metadata
Sep 2, 2026
ebb5380
IJPL-252323 keep line bookmarks across in-editor bulk edits
ekaterina-berezhko Aug 25, 2026
2eb5d8f
FUS-8594 [fus]: auto-update bundled metadata
Sep 2, 2026
115bf80
cleanup [ownership]: replace group aliases with current group names
Sep 2, 2026
5ba7a3e
IDEA-393258 javadoc: Red links when viewing references outside of sou…
Mathias-Boulay Aug 28, 2026
2e40e82
IDEA-393089 jdk: fix version parsing for `.sdkmanrc`
yopox Aug 24, 2026
23f800c
FUS-8653 [fus]: auto-update bundled metadata
Sep 3, 2026
874939e
FUS-8654 FUS-8655 FUS-8665 [fus]: auto-update bundled metadata
Sep 3, 2026
37f576b
PY-91923 Tolerate a null field in the Ruff rule JSON and fix UOE
Sep 2, 2026
fb01e86
RUST-20949 Fix exception auto-reporting in RustRover 262
vlad20012 Sep 3, 2026
9a7fffb
FUS-8595 [fus]: auto-update bundled metadata
Sep 3, 2026
a136956
RIDER-142229 [rider-ai]: add AI agent setup status widget
vakosta Aug 21, 2026
72f9c34
RIDER-136564 [Rider]: IJ-CR-218058 apply ab for 2026.2.2
thisisvolatile Sep 2, 2026
e3ffc64
fix "Class initialization must not depend on services" crash when che…
DetachHead Aug 12, 2026
8a2634d
gitignore `.idea.bazel` (#318)
DetachHead Aug 12, 2026
b328376
include portable windows `.zip` artifacts in releases (#322)
DetachHead Aug 17, 2026
5ad38e6
add disclaimer about plugins to the README (#326)
DetachHead Aug 18, 2026
ddad4a7
publish windows arm64 releases (#330)
DetachHead Aug 21, 2026
6a4dc66
revert version number `build.txt` validation (#334)
DetachHead Aug 24, 2026
2ed2337
support debugging intellij platform plugins targeting Rebased (#332)
DetachHead Aug 24, 2026
4f25eec
RIDER-139586 [rider-mcp]: resolve the target project by its base dire…
vakosta Aug 24, 2026
5dbb317
[Markdown][IJPL-251259] restore preview scrollbar styling
ekaterina-berezhko Jul 29, 2026
d927c2f
cleanup [python]: Remove copy/paste from `VirtualEnvReader`
throwable-one Aug 25, 2026
b6bf184
PY-83666 Detect pypy virtual environments
alexkats Sep 4, 2026
b6ea62f
RIDER-141755 [rider-hooks]: limit hook diagnostics to added code
vakosta Aug 8, 2026
979fc49
PY-91903 Disable `python.use.better.control.flow.type.inference` in 262
east825 Sep 4, 2026
0cbcaf3
PY-91903 Adapt type inference tests to disabled registry flag
avokin Sep 4, 2026
0a36c21
PY-91903 Guard recursive while-loop inference test
avokin Sep 5, 2026
03a67fd
IJI-725 [fus]: auto-update bundled metadata
Sep 5, 2026
4dbc16b
RIDER-136564 [Rider]: IJ-CR-218058 update ab version so that it could…
thisisvolatile Sep 4, 2026
326102e
fix regression (introduced when merging 2026.2) where the "Close All …
DetachHead Sep 7, 2026
03d73bb
[threading] RUST-20908: Compensate parallelism for `invokeAndWait`
knisht Aug 24, 2026
a14c079
KMT-2945 cherry-pick kryo and obejenesis changes from 866a7800af4e299…
Aug 28, 2026
c1bb7e9
[Markdown][IJPL-253568] Make the Markdown preview layout setting gove…
ekaterina-berezhko Aug 24, 2026
f9a5955
FUS-8573 [fus]: auto-update bundled metadata
Sep 7, 2026
6b04f5a
FUS-8642 [fus]: auto-update bundled metadata
Sep 7, 2026
b1c4d34
IJI-725 [fus]: auto-update bundled metadata
Sep 7, 2026
88a474b
FUS-8604 [fus]: auto-update bundled metadata
Sep 7, 2026
07c1319
FUS-8664 [fus]: auto-update bundled metadata
Sep 7, 2026
a6ccf81
FUS-8613 [fus]: auto-update bundled metadata
Sep 7, 2026
1cb19ed
LLM-30369 Retire IdeFormer and remove obsolete integrations and libra…
Aug 6, 2026
68c584a
[aia] LLM-30401 bump grazie libraries to 0.8.256
Aug 10, 2026
d629822
misc aia: unregister llm sandbox modules
ishulgin Aug 26, 2026
97f71d2
misc aia: restore grazie plugin content snapshot for the updated nlp-…
ishulgin Aug 26, 2026
12ca99c
misc aia: make grazie dependency versions consistent and move to the …
ishulgin Aug 26, 2026
5636d50
PY-92105 Update conformance test suite version to 7eff3311191bf6cf6f3…
Sep 7, 2026
1c51891
[JEWEL-1382] Bump Jewel version to 0.41.0
nebojsa-vuksic Jul 28, 2026
df89c4d
[JEWEL-1335] Gradle Scripts Migration to Bazel (Part 2)
DanielSouzaBertoldi Jul 14, 2026
7a76f83
[JEWEL-1193] Fix Hover state in Menu Items
DanielSouzaBertoldi Feb 10, 2026
a9cd2a1
[JEWEL-1239] Render failed to load images as hyperlinks
AlexVanGogen Feb 12, 2026
82443b5
[JEWEL-1150] Create Got It Tooltip Component
DanielSouzaBertoldi Mar 6, 2026
0aa073b
[JEWEL-1387] Fix native window lookup on JBR 25
rock3r Aug 3, 2026
f8ec281
[JEWEL-1313] Add syntax highlighting to FencedCodeBlock in standalone
DanielSouzaBertoldi May 8, 2026
0ae337c
[JEWEL-1369] Fix stroked icons rendering incorrectly across frontends
rock3r Jul 21, 2026
fdf4e18
[JEWEL-1345] Improve Markdown block renderer API
rock3r Jul 27, 2026
886661b
[JEWEL-1277] Add FrontMatter metadata block support for Markdown
AlexVanGogen Feb 27, 2026
be88372
[JEWEL-1383] Migrate Jewel UI tests to Compose test v2 API
wellingtoncosta Aug 6, 2026
5332893
[JEWEL-1322] Default Markdown block renderer to the composition local
DanielSouzaBertoldi Jul 27, 2026
c4a14ca
[JEWEL-1050] Create palette color accessors with default fallback
DanielSouzaBertoldi Jul 28, 2026
5fd3454
[JEWEL-1389] Optimize CircularProgressIndicator animation
rock3r Aug 4, 2026
9722097
[JEWEL-1360] Gradle Scripts to Bazel Migration - Part 3
DanielSouzaBertoldi Aug 6, 2026
0b39217
[JEWEL-1340] Bump CMP to 1.12.0-rc01
nebojsa-vuksic Aug 11, 2026
45bb50b
[JEWEL-1388] Stop using `sun.misc.Unsafe` to resolve the native windo…
wellingtoncosta Aug 7, 2026
6e788f9
[JEWEL-1396] Keep Escape in Jewel ComboBox popups
rock3r Aug 12, 2026
5552a03
[JEWEL-1370] Align stroking on the new icons API with the legacy path
rock3r Jul 22, 2026
c64d1cc
[JEWEL-1390] Add Spectre and the standalone headful test lane
rock3r Aug 19, 2026
e40150c
[JEWEL-1398] Update the outdated readme
rock3r Aug 19, 2026
b0fd16a
[JEWEL-1391] Add ten built-in grammars to the standalone highlighter
DanielSouzaBertoldi Aug 17, 2026
b5a742a
[JEWEL-1407] Use the official product name, Compose Multiplatform
rock3r Aug 21, 2026
2eba0e0
[JEWEL-1288] Run PR formalities from the base branch
rock3r Aug 21, 2026
1b0dd5a
[JEWEL-1396] Take popup dismissal policy from PopupProperties
rock3r Aug 20, 2026
c234ef0
[JEWEL-1411] Realign the JNA dependency with this branch's IJP version
nebojsa-vuksic Aug 26, 2026
c589ef8
Revert "[JEWEL-1323] Delete Deprecated APIs Older than 6 Months"
nebojsa-vuksic Aug 26, 2026
daf3da5
[JEWEL-1411] Realign the generated color palette with this branch's I…
nebojsa-vuksic Aug 26, 2026
31e28ec
[JEWEL-1372] Bump GitHub Actions in the Jewel checks workflow to Node…
rock3r Jul 22, 2026
ea32a85
[JEWEL-1363] Fix missing slf4j-api in standalone sample Bazel build
DanielSouzaBertoldi Jul 17, 2026
a4b5394
[JEWEL-1346] Force Auto Correct + Enable Documentation Rules
DanielSouzaBertoldi Jun 29, 2026
92dc457
[JEWEL-1371] Fix the API dump check never running and always passing
rock3r Jul 22, 2026
efac130
[JEWEL-1404] Clean up Jewel's codebase
DanielSouzaBertoldi Aug 21, 2026
95fee5f
[JEWEL-1413] Update Compose to 1.12.0
DanielSouzaBertoldi Aug 25, 2026
281dbbc
[JEWEL-1411] Prepare release notes for Jewel 0.41
nebojsa-vuksic Aug 27, 2026
8a96bd3
IJPL-254615 Expose JCP base URL property from `JetBrainsAccount.xml`
denzakharov Sep 7, 2026
21d6cd5
PY-92106 Update typeshed version to e284ce31f353ad70efd4966923568b1d0…
Sep 7, 2026
57933ab
[git] Fixed caching git-trusted failure (IJPL-254472)
nataliaponomareva-cloud Sep 2, 2026
d376e2a
[gradle] wording fixed after review IDEA-368252
nskvortsov Sep 3, 2026
0fb47da
IJPL-253347 [eel] Parse the system path using the Eel descriptor
dtim Aug 25, 2026
1e50389
IJPL-253347 [eel] Test suite for getSystemFolder
dtim Aug 19, 2026
eeea728
[debugger] IDEA-393273 Rework compiler invocations for breakpoint ins…
steelart Sep 4, 2026
d0956c4
[debugger] IDEA-393273 Rework blocking read actions to be non-blockin…
steelart Sep 3, 2026
19ffff2
[kotlin] KTIJ-40064 Update Kotlin version in wizard to 2.4.20
jqyp Sep 7, 2026
e999dcc
PY-92132 Use cache redirector for conda and python2.7 in env tests
alexkats Sep 8, 2026
9228950
PY-92132 Bump uv version for env tests
alexkats Sep 8, 2026
4773c1e
Updating versions of project dependencies: runtimeBuild->25.0.4b508.27
Sep 9, 2026
b252b77
product version suffix updated to default value for PyCharm
Sep 9, 2026
7e27bc2
product version eap updated to false for IDEA
Sep 9, 2026
bc6e203
platform: base build number set to 262.10968.SNAPSHOT
Sep 9, 2026
8c55895
RELEASE-1308: Update PyCharm 2026.2.3 RC ApplicationInfo XML version
Sep 9, 2026
7a89e51
FUS-8586 [fus]: auto-update bundled metadata
Sep 9, 2026
b9291a6
FUS-8669 [fus]: auto-update bundled metadata
Sep 9, 2026
baa24f8
FUS-8584 [fus]: auto-update bundled metadata
Sep 9, 2026
65fbba2
DO-3206 [fus]: auto-update bundled metadata
Sep 9, 2026
d8d1836
FUS-8585 [fus]: auto-update bundled metadata
Sep 9, 2026
e382752
FUS-8585 FUS-8677 FUS-8679 [fus]: auto-update bundled metadata
Sep 9, 2026
925fd2f
DD-1391 [fus]: auto-update bundled metadata
Sep 9, 2026
764db87
FUS-8667 [fus]: auto-update bundled metadata
Sep 9, 2026
f816d77
FUS-8663 [fus]: auto-update bundled metadata
Sep 9, 2026
e085b95
FUS-8657 [fus]: auto-update bundled metadata
Sep 9, 2026
18150cf
FUS-8662 [fus]: auto-update bundled metadata
Sep 9, 2026
b1326f5
IJI-725 [fus]: auto-update bundled metadata
Sep 10, 2026
f392589
FUS-8695 [fus]: auto-update bundled metadata
Sep 10, 2026
a7a1d65
[java] IDEA-393766 Java analysis fails: Recursive conflict resolution…
mikhail-pyltsin Sep 11, 2026
11a0880
FUS-8680 FUS-8681 FUS-8683 [fus]: auto-update bundled metadata
Sep 11, 2026
1fbf94c
FUS-8692 [fus]: auto-update bundled metadata
Sep 11, 2026
bf7ff0d
FUS-8102 [fus]: auto-update bundled metadata
Sep 11, 2026
5d31f19
FUS-8699 FUS-8701 FUS-8703 FUS-8708 [fus]: auto-update bundled metadata
Sep 11, 2026
1c15f72
PY-89986 `PyStringConversionWithoutDunderMethodInspection`: report on…
Sep 10, 2026
7f5bc0f
PY-89483 `PyStringConversionWithoutDunderMethodInspection`: ignore a …
Sep 10, 2026
28e0bf1
FUS-8710 FUS-8711 [fus]: auto-update bundled metadata
Sep 14, 2026
0f1cb3e
fix [VCS, merge]: Don't auto resolve modified_deleted conflicts IJPL-…
dustybluebird Sep 1, 2026
eb0a99b
fix [VCS, merge]: Don't save document during auto resolve if there ar…
dustybluebird Sep 1, 2026
8c72772
FUS-8713 FUS-8714 [fus]: auto-update bundled metadata
Sep 14, 2026
bf00345
WEB-79133 platform: ask a provider for a plugin offer when the advert…
ileasile Sep 1, 2026
d197caf
WEB-79407 markdown: offer Figma Connect on a Markdown file that links…
ileasile Sep 1, 2026
ea0da08
WEB-79599 markdown: notice a Figma link added to an open file
ileasile Sep 8, 2026
2f5be09
WEB-79600 markdown: honour the plugin-suggestion registry key
ileasile Sep 8, 2026
b4cf756
FUS-8499 FUS-8500 [fus]: auto-update bundled metadata
Sep 14, 2026
262f044
FUS-8498 [fus]: auto-update bundled metadata
Sep 14, 2026
3b4de02
FUS-8283 [fus]: auto-update bundled metadata
Sep 14, 2026
8e60003
LLM-30738 [ai-next-edit] add trigger model module
olegtaratuhin Aug 28, 2026
a507e9b
LLM-30738 [ai-next-edit] use prod artifact
olegtaratuhin Sep 1, 2026
c68f7ee
FUS-8698 [fus]: auto-update bundled metadata
Sep 14, 2026
8062c06
KTC-5768 Reorganize packaging of the Kotlin Toolchain plugin
utikeev Aug 25, 2026
ee9ca02
remove terminology referring to rebased as an "IDE" (#350)
DetachHead Sep 14, 2026
7fbbb64
Better fix for the "Restart" action when running from the appimage (#…
DetachHead Sep 14, 2026
d441fae
missed a spot when removing the "IDE" terminology (#352)
DetachHead Sep 14, 2026
89889c2
Merge tag 'idea/2026.2.3' into release/2026.2.3
DetachHead Sep 16, 2026
40cc60d
fix compile error from merge
DetachHead Sep 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
62 changes: 62 additions & 0 deletions .agents/skills/compare-python-typecheckers/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
---
name: compare-python-typecheckers
description: Run a Python file or snippet through the real third-party type checkers (ty, pyrefly, basedpyright, mypy, zuban) via uvx and collate their output into one Markdown report. Use when evaluating how a type should be inferred, debugging PyCharm code-insight / type-engine behaviour, or checking where the external checkers agree or disagree on a snippet.
---

# Compare Python type checkers

When reasoning about how PyCharm *should* infer a type or whether something ought
to be a type error, cross-checking against the real third-party checkers is the
fastest way to gain insight — and to see where they disagree. This skill runs
them all on a scratch file or snippet and collates the output into a single
report.

## Run it

`${CLAUDE_SKILL_DIR}/scripts/compare_typecheckers.py` invokes each checker
through `uvx` (fetched on demand — no install; the network is used on first run)
and prints a Markdown report: a summary table (exit code / verdict / timing per
tool) followed by each tool's raw output.

```bash
# Inline snippet:
uv run ${CLAUDE_SKILL_DIR}/scripts/compare_typecheckers.py -c 'def f(x: int) -> int:
return x

f("a")'

# An existing file:
uv run ${CLAUDE_SKILL_DIR}/scripts/compare_typecheckers.py path/to/test.py

# A subset, written to a file:
uv run ${CLAUDE_SKILL_DIR}/scripts/compare_typecheckers.py test.py --tools ty,mypy -o /tmp/report.md
```

Flags: `-c/--code` (inline snippet), `-t/--tools ty,mypy,…` (subset), `-o/--output`
(write to file), `--timeout` (per-checker seconds, default 180). The script exits
0 whenever it produced a report — findings live in the report, not the exit code.

## Reading the result

- The summary table shows each tool's exit code (**0 = nothing flagged**,
non-zero = the checker reported an issue or failed to run), a verdict, and time.
- Output **formats differ** per tool, so read each section, not just the table:
- `ty` (Astral) and `pyrefly` (Meta) each have their own diagnostic style.
- `basedpyright` is pyright-based and also emits extra diagnostics such as
`reportUnusedCallResult`.
- `mypy` and `zuban` share the same message format (`zuban` is mypy-compatible).
- The checkers track their latest releases through `uvx`, so behaviour can shift
over time — record the date when capturing results in a YouTrack issue or test.

## Manual one-offs

The exact per-tool invocations, if you want to run just one by hand (note
`basedpyright` takes the file positionally — no `check` subcommand):

| Tool | Command |
|------|---------|
| ty | `uvx ty check test.py` |
| pyrefly | `uvx pyrefly check test.py` |
| basedpyright | `uvx basedpyright test.py` |
| mypy | `uvx mypy test.py` |
| zuban | `uvx zuban check test.py` |
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
#!/usr/bin/env python3
"""Run a Python file or snippet through several third-party type checkers and
collate their output into a single Markdown report.

Checkers (each fetched on demand with `uvx`, so no pre-install is needed; the
network is used on first run): ty, pyrefly, basedpyright, mypy, zuban.

Examples:
compare_typecheckers.py test.py
compare_typecheckers.py -c 'x: int = "a"'
compare_typecheckers.py test.py --tools ty,mypy -o report.md
"""
# Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.

from __future__ import annotations

import argparse
import shutil
import subprocess
import sys
import tempfile
import time
from datetime import datetime
from pathlib import Path

# name -> argv prefix; the target file path is appended. Order = report order.
# Quirks worth remembering: basedpyright takes the file positionally (no `check`
# subcommand); zuban emits mypy-compatible output.
CHECKERS: dict[str, list[str]] = {
"ty": ["uvx", "ty", "check"],
"pyrefly": ["uvx", "pyrefly", "check"],
"basedpyright": ["uvx", "basedpyright"],
"mypy": ["uvx", "mypy"],
"zuban": ["uvx", "zuban", "check"],
}


def run_checker(name: str, target: Path, timeout: float) -> dict:
# Run from the file's own directory with a relative name. Some checkers
# (notably zuban) reject an absolute path outside the cwd ("No Python files
# found to check"); this also keeps the displayed command readable and lets
# tools pick up a co-located config.
cmd = CHECKERS[name] + [target.name]
start = time.monotonic()
try:
proc = subprocess.run(cmd, cwd=str(target.parent), capture_output=True, text=True, timeout=timeout)
out = (proc.stdout or "") + (proc.stderr or "")
code: int | None = proc.returncode
status = "clean" if code == 0 else "issues"
except subprocess.TimeoutExpired:
out, code, status = f"(timed out after {timeout:.0f}s)", None, "timeout"
except FileNotFoundError:
out, code, status = "(uvx not found on PATH)", None, "error"
return {
"name": name,
"cmd": " ".join(cmd),
"out": out.strip(),
"code": code,
"status": status,
"dur": time.monotonic() - start,
}


def build_report(target: Path, results: list[dict], source: str | None, now: str) -> str:
lines: list[str] = [f"# Type-checker comparison — `{target.name}`", "", f"_Generated {now}_", ""]
if source is not None:
lines += ["Source under test:", "", "```python", source.rstrip("\n"), "```", ""]
lines += [
"## Summary",
"",
"| Checker | Command | Exit | Verdict | Time |",
"|---------|---------|------|---------|------|",
]
for r in results:
code = "-" if r["code"] is None else str(r["code"])
lines.append(f"| {r['name']} | `{r['cmd']}` | {code} | {r['status']} | {r['dur']:.1f}s |")
lines += [
"",
"> Exit 0 = nothing flagged; non-zero = the checker reported an issue or "
"failed to run. Output formats differ per tool — read each section below.",
"",
]
for r in results:
lines += [f"## {r['name']} — `{r['cmd']}`", "", "```", r["out"] or "(no output)", "```", ""]
return "\n".join(lines)


def main(argv: list[str] | None = None) -> int:
p = argparse.ArgumentParser(
description="Compare Python type checkers (ty, pyrefly, basedpyright, mypy, zuban) via uvx.",
)
src = p.add_mutually_exclusive_group(required=True)
src.add_argument("file", nargs="?", help="Python file to check")
src.add_argument("-c", "--code", help="inline snippet to check (written to a temp file)")
p.add_argument("-t", "--tools", help=f"comma-separated subset of: {', '.join(CHECKERS)}")
p.add_argument("-o", "--output", help="write the report to this path instead of stdout")
p.add_argument("--timeout", type=float, default=180.0, help="per-checker timeout in seconds (default 180)")
args = p.parse_args(argv)

# Reports and progress lines contain non-ASCII (em dashes, ellipsis); force
# UTF-8 so printing to a non-UTF-8 console (e.g. Windows cp1252) can't crash.
for stream in (sys.stdout, sys.stderr):
if hasattr(stream, "reconfigure"):
stream.reconfigure(encoding="utf-8")

if shutil.which("uvx") is None:
print("error: `uvx` not found on PATH — install uv (https://docs.astral.sh/uv/).", file=sys.stderr)
return 2

tmp_dir: str | None = None
if args.code is not None:
tmp_dir = tempfile.mkdtemp(prefix="typecheck_")
target = Path(tmp_dir) / "snippet.py"
target.write_text(args.code if args.code.endswith("\n") else args.code + "\n", encoding="utf-8")
source_text = args.code
else:
target = Path(args.file)
if not target.is_file():
print(f"error: no such file: {target}", file=sys.stderr)
return 2
target = target.resolve()
try:
source_text = target.read_text(encoding="utf-8")
except OSError:
source_text = None

names = list(CHECKERS)
if args.tools:
names = [t.strip() for t in args.tools.split(",") if t.strip()]
unknown = [t for t in names if t not in CHECKERS]
if unknown:
print(f"error: unknown tool(s): {', '.join(unknown)} (known: {', '.join(CHECKERS)})", file=sys.stderr)
return 2

results = []
for name in names:
print(f"running {name} …", file=sys.stderr)
results.append(run_checker(name, target, args.timeout))

report = build_report(target, results, source_text, f"{datetime.now():%Y-%m-%d %H:%M:%S}")
if args.output:
Path(args.output).write_text(report, encoding="utf-8")
print(f"wrote {args.output}", file=sys.stderr)
else:
print(report)

if tmp_dir is not None:
shutil.rmtree(tmp_dir, ignore_errors=True)
# Non-zero only on harness failure, not on findings: a clean exit lets callers
# treat "report produced" as success regardless of what the checkers found.
return 0


if __name__ == "__main__":
raise SystemExit(main())
44 changes: 44 additions & 0 deletions .agents/skills/driver-ui-tests/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,18 @@ val detailPane = ui.x { byClass("PluginDetailsPageComponent") }
detailPane.x { byClass("InstallButton") }.click()
```

## Finding toolbar / title-bar actions

Toolbar and tool-window title actions that show their text (`presentation.putClientProperty(ActionUtil.SHOW_TEXT_IN_TOOLBAR, true)`) render as **`ActionButtonWithText`**, not `ActionButton`. The SDK `actionButton(text)` helper searches `@class='ActionButton'` only, so it silently never matches them. Match by visible text across both variants:

```kotlin
// Matches both icon-only and text-bearing action buttons
fun Finder.statusButton(text: String) =
x("//div[(@class='ActionButtonWithText' or @class='ActionButton') and @visible_text='$text']")
```

The visible text is itself a reliable assertion signal — you usually do not need to read the backing service/state.

## Keyboard Interactions

```kotlin
Expand Down Expand Up @@ -250,6 +262,38 @@ waitFor("text to appear", 10.seconds) {
}
```

## Reading IDE state via `@Remote`

To read state from a service or model in the IDE under test, declare a `@Remote` interface and call it via `driver.service(...)` / `driver.utility(...)`.

- **Plugin classes need the `plugin` field.** Without it the class resolves against the platform/core classloader → `DriverIllegalStateException: No such class '<fqn>' in plugin null`.
- Class in a plugin **content module**: `@Remote("<fqn>", plugin = "<plugin.id>/<content.module>")` (e.g. `com.intellij.figma/intellij.figma.core`).
- Class in the **main / embedded** plugin module: `@Remote("<fqn>", plugin = "<plugin.id>")`.
- **Method dispatch resolves against the DECLARED `@Remote` class, not the runtime object.** A method declared on a sealed/abstract supertype ref is "not found" at runtime — declare it on the concrete subtype, or expose it via a top-level type. (The `jvm-class-name` injection also cannot resolve a nested `Foo$Bar` name → a cosmetic "Cannot resolve class" inspection error; prefer top-level types.)
- Add the plugin module as a TEST dependency so the FQNs resolve for code-insight.

```kotlin
@Remote("com.example.MyAppService", plugin = "com.example.myplugin/com.example.myplugin.core")
interface MyAppServiceRef {
fun getConfig(): MyConfigRef
}
// driver.service(MyAppServiceRef::class).getConfig()...
```

## Enabling a registry flag at startup

Seed a registry key before the IDE starts with a `-D` VM option — `RegistryValue` falls back to `System.getProperty`. Required when a startup `ProjectActivity` or `ToolWindowFactory.shouldBeAvailable` reads the flag (setting it via the driver after start is too late):

```kotlin
context.applyVMOptionsPatch {
addSystemProperty("my.feature.enabled", "true")
}
```

## Driving a real browser (Playwright)

Playwright runs in the **test JVM**, alongside the driver-driven IDE (both on localhost) — useful when the IDE's client is a web app/plugin. `page.onConsoleMessage { ... }` captures the page **and its iframes** (a strong diagnostic). Put custom screenshots/files under `context.paths.testHome.resolve("log")` so they are collected as test artifacts. See `plugins/figma/integrationTests` for a full example.

## Running Tests from Terminal

Driver tests require a fully built IDE. There are several ways to run them:
Expand Down
Loading
Loading