<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog</title>
	<atom:link href="https://blog.jetbrains.com/idea/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.jetbrains.com</link>
	<description>Developer Tools for Professionals and Teams</description>
	<lastBuildDate>Fri, 06 Nov 2026 13:40:24 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://blog.jetbrains.com/wp-content/uploads/2026/09/icon-512.webp</url>
	<title>IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog</title>
	<link>https://blog.jetbrains.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Java Annotated Monthly – November 2026</title>
		<link>https://blog.jetbrains.com/idea/2026/11/java-annotated-monthly-november-2026/</link>
		
		<dc:creator><![CDATA[Irina Mariasova]]></dc:creator>
		<pubDate>Fri, 06 Nov 2026 08:07:06 +0000</pubDate>
		<featuredImage>https://blog.jetbrains.com/wp-content/uploads/2026/11/IJ-social-BlogFeatured-1280x720-1.png</featuredImage>		<category><![CDATA[agentic-ai]]></category>
		<category><![CDATA[ai]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[intellij]]></category>
		<category><![CDATA[idea]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jetbrains-air]]></category>
		<category><![CDATA[kotlin]]></category>
		<category><![CDATA[air]]></category>
		<category><![CDATA[java-annotated]]></category>
		<category><![CDATA[java-annotated-monthly]]></category>
		<guid isPermaLink="false">https://blog.jetbrains.com/?post_type=idea&#038;p=753246</guid>

					<description><![CDATA[October kept the Java world busy, with JDK news, fresh tutorials, Kotlin updates, AI experiments, and plenty more from across the wider ecosystem. We&#8217;ve gathered the best of it in one place, so you can skip the scrolling and get straight to the good stuff. To top it all off, Piotr Przybył joins us as [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>October kept the Java world busy, with JDK news, fresh tutorials, Kotlin updates, AI experiments, and plenty more from across the wider ecosystem. We&#8217;ve gathered the best of it in one place, so you can skip the scrolling and get straight to the good stuff. To top it all off, Piotr Przybył joins us as this month&#8217;s featured guest.</p>



<p>Let&#8217;s go!</p>



<h2 class="wp-block-heading">Featured Content</h2>


    <div class="about-author ">
        <div class="about-author__box">
            <div class="row">
                                                            <div class="about-author__box-img">
                            <img style="width:100% !important; height:auto !important; max-width:100% !important;" decoding="async" src="https://blog.jetbrains.com/wp-content/uploads/2026/11/image1.jpg" alt="" loading="lazy">
                        </div>
                                        <div class="about-author__box-text">
                                                    <h4>Piotr Przybył</h4>
                                                <p><a href="https://softwaregarden.dev/" target="_blank" rel="noopener">Piotr Przybył</a>  – Notorious engineer at work and after hours, tracing the meanders of the art of software engineering. Remote Software Gardener, mostly working in web-oriented Java gardens. Java Champion. Docker Captain. Testcontainers Champion. Programming usually in Java (since 1.3), Scala, and Go, but in other languages too. Fan of agility, seen mostly as choosing the right tools and approaches after asking the right questions. Developer, trainer, and conference speaker, currently working at Elastic as a Senior Developer Advocate.</p>
                    </div>
                            </div>
        </div>
    </div>



<p><br>Greetings, fellow Java developers! It&#8217;s a pleasure to be here again – it’s been three Java releases since the last time. We all know that means roughly 18 months, don’t we? ;-)<br>Both the world and our ecosystem were moving fast back then, and it seems they have only accelerated. This means one thing: good luck trying to keep up to date with everything. Luckily for us all, newsletters like this one help.</p>



<p>The autumn conference season of 2026 is slowing down. It was a busy and exciting one, for me in particular, because Java 28 is already shaping up. And if you look at the list of JEPs already there, how can you not be excited? <a href="https://openjdk.org/jeps/543" target="_blank" rel="noopener">Structured Concurrency is set to become final</a> in March 2027, yay! Bye-bye, CompletableFuture, it was fun knowing you&#8230; not ;-). CF isn’t going anywhere, but it won’t be the best abstraction for concurrent subtasks.&nbsp;<br>Apart from that, there’s going to be one less thing for me to rant about, because Java is going to have (for now as an incubator module) a Simple JSON API. If your microservice only has to send one simple REST request with a JSON body, maybe this plus the JDK’s HTTP client will be enough? You can <a href="https://youtu.be/kdqJD94Cpos" target="_blank" rel="noopener">learn about it from Dan Vega</a>.<br>There are going to be improvements to GCs and more performance goodies, but my personal favourite is going to be Value Objects, because 42 is always 42, and it shouldn’t need an identity crisis to answer everything. I believe VOs will change the way we think about and work with data in Java. The need for this improvement is already here, because AI, like it or not, also means exchanging an awful lot of tokens and vectors.<br></p>



<p>To give you a taste of that, the following code yields different results on a default HotSpot configuration, with and without the value-object preview enabled:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="java" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Integer x = 1024, y = 1024; IO.println(x == y)</pre>



<p>Intrigued? For more, please check out my post <a href="https://softwaregarden.dev/en/posts/new-java/valhalla/the-dawn/" target="_blank" rel="noopener"><em>Java isn&#8217;t dead yet, but it can&#8217;t avoid Valhalla</em></a>.</p>



<p>You may say, “Okay, but these are preview features or incubator modules; they can’t be used in production.” That’s not a blanket rule, although compatibility and support deserve a closer look. Sometimes even a non-GA feature of Java can be mature and worthwhile enough for you to make it a part of your library and code. I’m talking about the <a href="https://openjdk.org/jeps/537" target="_blank" rel="noopener">Vector API</a> already being used in Lucene and Elasticsearch, and you can learn more about how it powers semantic search in them in <a href="https://youtu.be/adFS-_sCTQ4" target="_blank" rel="noopener">one of my recent talks</a>. If you prefer reading about SIMD, Krzysztof Ślusarski has you covered with<a href="https://krzysztofslusarski.github.io/2026/09/05/simd.html" target="_blank" rel="noopener"> this post</a>.</p>



<p>I could go on and on about the exciting stuff in recent and upcoming Java releases. <a href="https://maritvandijk.com/" target="_blank" rel="noopener">Marit van Dijk</a> and I weren’t quite able to curb our enthusiasm for them, as can be seen in <a href="https://youtu.be/QBQ11aL2aZc" target="_blank" rel="noopener">&nbsp;this three-hour-long deep dive</a> from Devoxx Belgium 😅. (We simply forgot to take a break, sorry!)<br>If you can spare just one hour, here’s <a href="https://youtu.be/Tkpj6iJFOLU" target="_blank" rel="noopener">a shorter and more compact version</a> from Hello Stavanger.</p>



<p>A big congrats to Marit, my partner on stage, for becoming <a href="https://javaspecialists.eu/talks/ubiquitous/2026/" target="_blank" rel="noopener">the most ubiquitous Java speaker</a> for 2026!</p>



<h2 class="wp-block-heading">Java News</h2>



<p>Catch up on the latest updates:&nbsp;</p>



<ul class="wp-block-list">
<li>Java News Roundup<a href="https://www.infoq.com/news/2026/10/java-news-roundup-sep28-2026/" target="_blank" rel="noopener"> 1</a>,<a href="https://www.infoq.com/news/2026/10/java-news-roundup-oct05-2026/" target="_blank" rel="noopener"> 2</a>,<a href="https://www.infoq.com/news/2026/10/java-news-roundup-oct12-2026/" target="_blank" rel="noopener"> 3</a>,<a href="https://www.infoq.com/news/2026/10/java-news-roundup-oct19-2026/" target="_blank" rel="noopener"> 4</a>&nbsp;</li>



<li><a href="https://nipafx.dev/inside-java-newscast-115" target="_blank" rel="noopener">OpenJDK Bug Fixing, JavaOne, and JDK 28 – Inside Java Newscast #116</a></li>



<li><a href="https://foojay.io/today/javafx-links-of-october-2026/" target="_blank" rel="noopener">JavaFX Links of October 2026</a></li>



<li><a href="https://foojay.io/today/foojay-podcast-104/" target="_blank" rel="noopener">Foojay Podcast #104: 53 CVEs, Two Emergency Releases: Why Java Security Holds Up with Simon Ritter</a></li>



<li><a href="https://inside.java/2026/10/30/jdk27-gc-changes/" target="_blank" rel="noopener">JDK 27 G1/Parallel/Serial GC changes</a></li>



<li><a href="https://inside.java/2026/10/23/confined-pools/" target="_blank" rel="noopener">Allocating Off-Heap Memory: Typically 6-18x Faster in JDK 28</a></li>



<li><a href="https://www.infoq.com/news/2026/10/emudhra-ca-compromise/" target="_blank" rel="noopener">eMudhra Intermediate CA Compromise</a></li>



<li><a href="https://bell-sw.com/blog/distrusting-compromised-emudhra-intermediates-in-java/" target="_blank" rel="noopener">Distrusting Compromised eMudhra Intermediates in Java</a></li>



<li><a href="https://inside.java/2026/10/17/podcast-072/" target="_blank" rel="noopener">Episode 72 “OpenJDK Bug Fixing, JavaOne, and JDK 28” [IJN]</a></li>
</ul>



<p>Some JEPs to pay attention to:&nbsp;</p>



<ul class="wp-block-list">
<li><a href="https://inside.java/2026/10/25/jep544-target-jdk28/" target="_blank" rel="noopener">JEP 544: Ahead-of-Time Code Compilation</a></li>



<li><a href="https://inside.java/2026/10/21/jep543-target-jdk28/" target="_blank" rel="noopener">JEP 543: Structured Concurrency</a></li>



<li><a href="https://www.infoq.com/news/2026/10/jep-543-jdk-28/" target="_blank" rel="noopener">JEP 543 Finalizes Structured Concurrency in JDK 28, Ending Seven Preview Rounds</a></li>



<li><a href="https://inside.java/2026/10/19/jep546-target-jdk28/" target="_blank" rel="noopener">JEP 546: Adaptive Heap Sizing for ZGC</a></li>



<li><a href="https://inside.java/2026/10/16/jep545-target-jdk28/" target="_blank" rel="noopener">JEP 545: Faster Startup and Warmup with ZGC</a></li>



<li><a href="https://inside.java/2026/10/06/jep542-target-jdk28/" target="_blank" rel="noopener">JEP 542: PEM Encodings of Cryptographic Objects</a></li>



<li><a href="https://inside.java/2026/10/02/jep549-target-jdk28/" target="_blank" rel="noopener">JEP 540: Simple JSON API (Incubator)</a></li>



<li><a href="https://inside.java/2026/10/27/quality-heads-up/" target="_blank" rel="noopener">Quality Outreach Heads-up – JDK 28: Value Classes</a></li>
</ul>



<h2 class="wp-block-heading"><strong>Java Tutorials and Tips</strong></h2>



<p>Practical guides, clever shortcuts, and fresh ideas to help you understand Java better:&nbsp;</p>



<ul class="wp-block-list">
<li><a href="https://inside.java/2026/10/28/java-secure-coding-guidelines/" target="_blank" rel="noopener">Java Secure Coding Guidelines</a></li>



<li><a href="https://inside.java/2026/10/29/podcast-073/" target="_blank" rel="noopener">Episode 73 “Immutable Data Beyond Value Classes”</a></li>



<li><a href="https://inside.java/2026/10/22/jvm-diagnosis/" target="_blank" rel="noopener">What&#8217;s Going Wrong with My JVM?! A Guide to First-Time Failure Diagnosis</a></li>



<li><a href="https://inside.java/2026/10/20/devoxxbelgium-bringing-gpu-computing-to-java/" target="_blank" rel="noopener">Reflect, Transform, Accelerate: Bringing GPU Computing to Java</a></li>



<li><a href="https://nipafx.dev/talk-modern-java" target="_blank" rel="noopener">Modern Java – Past | Present | Future</a></li>



<li><a href="https://foojay.io/today/foojay-podcast-103/" target="_blank" rel="noopener">Foojay Podcast #103: Killing Reflection at Build Time with Dmitry Moskalyuk and Shai Almog</a></li>



<li><a href="https://inside.java/2026/10/14/devoxxbelgium-everyday-json/" target="_blank" rel="noopener">Everyday JSON in Java</a></li>



<li><a href="https://inside.java/2026/10/12/devoxxbelgium-structured-concurrency/" target="_blank" rel="noopener">Structured Concurrency Looms</a></li>



<li><a href="https://inside.java/2026/10/11/devoxxbelgium-runtime-year-keynite/" target="_blank" rel="noopener">Java – The Year of the Runtime!</a></li>



<li><a href="https://www.youtube.com/watch?v=Tkpj6iJFOLU" target="_blank" rel="noopener">Learning modern Java the playful way – Piotr Przybyl, Marit van Dijk – HelloStavanger 2026</a></li>



<li>Bootiful podcasts you don’t want to miss:
<ul class="wp-block-list">
<li><a href="https://spring.io/blog/2026/10/29/a-bootiful-podcast-lukas-eder" target="_blank" rel="noopener">&#8216;Data Geekery&#8217; with JOOQ creator Lukas Eder</a></li>



<li><a href="https://spring.io/blog/2026/10/15/a-bootiful-podcast-andrew-lombardi" target="_blank" rel="noopener">Can Java be more performant than Rust? Andrew Lombardi has the numbers</a></li>



<li><a href="https://spring.io/blog/2026/10/08/a-bootiful-podcast-kohsuke-kawaguchi" target="_blank" rel="noopener">Legendary Java developer Kohsuke Kawaguchi</a></li>



<li><a href="https://spring.io/blog/2026/10/01/a-bootiful-podcast-andres-almiray" target="_blank" rel="noopener">JReleaser creator and fellow Java Champion Andres Almiray</a></li>
</ul>
</li>
</ul>



<ul class="wp-block-list">
<li>IntelliJ IDEA Tech Talks: <a href="https://www.youtube.com/watch?v=xBNBjYH-foE&amp;list=PLBolw4tavnAY" target="_blank" rel="noopener">Playlist</a></li>



<li>IntelliJ IDEA Conf 2026: <a href="https://www.youtube.com/watch?v=r2VkVftW7OE&amp;list=PLPZy-hmwOdEWItbnW5iDHlXLwnq5RTVYi" target="_blank" rel="noopener">Playlist&nbsp;</a></li>
</ul>



<ul class="wp-block-list">
<li><a href="https://foojay.io/today/optimizing-nanosecond-operations-when-the-cpu-cache-matters/" target="_blank" rel="noopener">Optimizing nanosecond operations: when the CPU cache matters</a></li>



<li><a href="https://foojay.io/today/batch-processing-mongodb-jakarta-ee-customer-segmentation/" target="_blank" rel="noopener">Batch Processing with MongoDB and Jakarta EE: From Customer Segmentation to Scalable Workflows</a></li>



<li><a href="https://dzone.com/articles/declarative-database-schema-management" target="_blank" rel="noopener">Stop Writing Database Migration Scripts: Declarative Schema Sync for Java</a></li>



<li><a href="https://foojay.io/today/maven-build-cache-in-practice/" target="_blank" rel="noopener">The Maven Build Cache in Practice</a></li>



<li><a href="https://foojay.io/today/jvm-on-unikernel-nanos-gc-trade-offs-and-heap-uncommit/" target="_blank" rel="noopener">JVM on Unikernel Nanos – GC trade-offs and heap uncommit</a></li>



<li><a href="https://foojay.io/today/free-java-real-risk-why-unsupported-openjdk-is-now-a-security-gamble/" target="_blank" rel="noopener">Free Java, Real Risk: Why Unsupported OpenJDK Is Now a Security Gamble</a></li>



<li><a href="https://dzone.com/articles/kafka-message-search-kafdrop" target="_blank" rel="noopener">Searching Kafka Without an Index: Lessons From Building Message Search for Kafdrop</a></li>



<li><a href="https://foojay.io/today/what-jstack-misses-when-your-java-service-uses-virtual-threads/" target="_blank" rel="noopener">What jstack Misses When Your Java Service Uses Virtual Threads</a></li>



<li><a href="https://foojay.io/today/java-new-features-in-production/" target="_blank" rel="noopener">New Java Features Are Not Just for Interviews. Two Real-World Use Cases from Axelix</a></li>



<li><a href="https://foojay.io/today/exact-prices-in-java/" target="_blank" rel="noopener">Exact Prices in Java: Decimal Strings and BigDecimal Traps</a></li>



<li><a href="https://foojay.io/today/java-stream-gatherers/" target="_blank" rel="noopener">Java Stream Gatherers: From Built-in Patterns to Custom Pipeline Mechanics</a></li>



<li><a href="https://dzone.com/articles/java-virtual-threads-limits" target="_blank" rel="noopener">Java Virtual Threads Under Load: Three Production Limits</a></li>



<li><a href="https://foojay.io/today/upgrading-java-21-to-25-what-actually-breaks/" target="_blank" rel="noopener">Upgrading from Java 21 to 25: What Actually Breaks</a></li>



<li><a href="https://dzone.com/articles/complex-event-processing" target="_blank" rel="noopener">Complex Event Processing (CEP) With Apache Flink: What It Is and When (Not) to Use It</a></li>



<li><a href="https://serce.me/posts/2026-10-30-how-hard-is-it-to-check-for-whitespace" target="_blank" rel="noopener">How Hard Is It to Check for Whitespace?</a></li>



<li><a href="https://dzone.com/articles/jvm-25-virtual-threads" target="_blank" rel="noopener">Going All In On the JVM 25 Virtual Threads</a></li>



<li><a href="https://foojay.io/today/introduction-to-error-prone-how-to-catch-bugs-at-compile-time/" target="_blank" rel="noopener">Introduction to Error Prone: How to Catch Bugs at Compile Time</a></li>



<li><a href="https://dzone.com/articles/java-questdb-time-series" target="_blank" rel="noopener">Building High-Performance Time-Series Applications With Java and QuestDB</a>&nbsp;</li>
</ul>



<h2 class="wp-block-heading"><strong>Kotlin Corner</strong></h2>



<p>Explore what&#8217;s new in Kotlin, sharpen your skills, and put your knowledge into practice:</p>



<ul class="wp-block-list">
<li><a href="https://blog.jetbrains.com/kotlin/2026/10/kodee-s-kotlin-roundup-shipaton-2026-winners-kotlin-2-5-0-beta2-and-kotlinconf-2027/">Kodee&#8217;s Kotlin Roundup: Shipaton 2026 Winners, Kotlin 2.5.0-Beta2, and KotlinConf 2027</a></li>



<li><a href="https://blog.jetbrains.com/kotlin/2026/09/state-of-kotlin-2026-report/">The State of Kotlin in 2026 Report</a></li>



<li><a href="https://blog.jetbrains.com/kotlin/2026/09/the-companions-to-come/">The Companions to Come</a></li>



<li><a href="https://surveys.jetbrains.com/s3/kotlin-developer-survey-2026" target="_blank" rel="noopener">Kotlin Developer Survey 2026</a></li>



<li><a href="https://kotlinconf.com/" target="_blank" rel="noopener">KotlinConf 2027 is coming to Kraków</a></li>



<li><a href="https://dzone.com/articles/kotlin-java-spring-testing" target="_blank" rel="noopener">Testing Java and Spring Applications With Kotlin: Low-Risk to Adoption</a></li>



<li><a href="https://dzone.com/articles/kotlin-java-enterprise-choice" target="_blank" rel="noopener">Why Kotlin or Java Is the Wrong Question For Enterprises</a></li>



<li><a href="https://blog.jetbrains.com/kotlin/2026/10/google-summer-of-code-2026-with-kotlin/">Google Summer of Code 2026 With the Kotlin Foundation: Recap</a></li>



<li><a href="https://blog.jetbrains.com/kotlin/2026/10/what-makes-a-great-kotlinconf-proposal/">What Makes a Great KotlinConf Proposal?</a></li>



<li><a href="https://www.infoq.com/news/2026/10/instagram-compose-migration/" target="_blank" rel="noopener">Instagram Modernized Its UI with an AI-Native Architecture, Cutting Token Costs by 33%</a></li>



<li><a href="https://blog.jetbrains.com/kotlin/2026/10/kotlinconf-recap-lessons-from-verifone-s-architect-on-kotlin-in-mission-critical-payments/">KotlinConf Recap: Lessons from Verifone&#8217;s Architect on Kotlin in Mission-Critical Payments</a></li>



<li><a href="https://blog.jetbrains.com/kotlin/2026/10/start-your-next-kmp-app-with-kotlin-toolchain-0-13/">Start Your Next KMP App With Kotlin Toolchain 0.13</a></li>



<li><a href="https://blog.jetbrains.com/kotlin/2026/10/discontinuing-swift-language-ide-support-in-the-kotlin-multiplatform-plugin/">Discontinuing Swift Language IDE Support in the Kotlin Multiplatform Plugin</a></li>
</ul>



<h2 class="wp-block-heading"><strong>AI</strong></h2>



<p>Discover smarter AI workflows and see how they reshape development – this month with a healthy dose of reality checks:</p>



<ul class="wp-block-list">
<li><a href="https://dzone.com/articles/quarkus-a2a-agent-governance" target="_blank" rel="noopener">Part 4: Multi-Agent Orchestration – Pairing Goose With Quarkus Flow State Machines</a></li>



<li><a href="https://spring.io/blog/2026/10/26/spring-office-hours-podcast-S5E27" target="_blank" rel="noopener">Spring Office Hours Podcast: S5E27 – Hugging Face for Java Developers with Pratik Patel</a></li>



<li><a href="https://kpavlov.me/blog/tachyon-mcp-1.0/" target="_blank" rel="noopener">Tachyon MCP 1.0</a></li>



<li><a href="https://paulbakker.io/writing/how-not-to-use-ai-for-pull-requests-and-code-changes/" target="_blank" rel="noopener">How Not to Use AI for Pull Requests and Code Changes</a></li>



<li><a href="https://foojay.io/today/java-champions-github-copilot/" target="_blank" rel="noopener">How three Java Champions put GitHub Copilot to work</a></li>



<li><a href="https://inside.java/2026/10/15/java-fit-ai-world/" target="_blank" rel="noopener">How Does Java Fit Into the World of AI – and How Can It Become an Even Better Fit?</a></li>



<li><a href="https://blog.jetbrains.com/ai/2026/10/how-netflix-made-ai-coding-agents-more-efficient/">How Netflix Made AI Coding Agents More Efficient with JetBrains IDE Intelligence</a></li>



<li><a href="https://foojay.io/today/what-i-learned-building-an-ai-code-reviewer-with-java-spring-boot/" target="_blank" rel="noopener">What I Learned Building an AI Code Reviewer with Java and Spring Boot</a></li>



<li><a href="https://foojay.io/today/embedding-strategies-job-search/" target="_blank" rel="noopener">One Embedding per Job, or Two? Measuring Semantic Search in a Spring Boot Job Portal</a></li>



<li><a href="https://foojay.io/today/your-agents-dont-need-an-llm-to-negotiate/" target="_blank" rel="noopener">Your agents don&#8217;t need an LLM to negotiate</a></li>



<li><a href="https://foojay.io/today/how-to-create-test-install-agent-skills/" target="_blank" rel="noopener">How to Create Agent Skills: Tools, Testing, and Installation</a></li>
</ul>



<ul class="wp-block-list">
<li><a href="https://www.infoq.com/articles/agentic-ai-context-memory-knowledge/" target="_blank" rel="noopener">Systemic Approach to Memory, Knowledge, and Context in Agentic AI Architectures</a></li>



<li><a href="https://www.infoq.com/news/2026/10/anthropic-code-review/" target="_blank" rel="noopener">Anthropic Says Nobody Needs a Mental Model of Claude Code. Practitioners Are Testing That</a></li>



<li><a href="https://www.infoq.com/news/2026/10/atlassian-devex-2026/" target="_blank" rel="noopener">Developers Reporting Double-Digit Weekly Time Savings From AI Fell From 68% to 26%</a></li>



<li><a href="https://www.infoq.com/news/2026/10/jellyfish-ai-productivity/" target="_blank" rel="noopener">Study Finds AI-generated Code Fails to Boost Productivity Due to Downstream Bottlenecks</a></li>



<li><a href="https://www.infoq.com/presentations/actors-for-production-ai-agents/" target="_blank" rel="noopener">Actors for Agents: Patterns for Production AI</a></li>



<li><a href="https://www.infoq.com/presentations/dora-ai-adoption-engineering-performance/" target="_blank" rel="noopener">AI is an Amplifier: Scale High Performance, Not Dysfunction</a></li>



<li><a href="https://www.infoq.com/articles/distributed-systems-microservices-agentic-ai/" target="_blank" rel="noopener">From Microservices to Agents: The Next Evolution of Distributed Systems</a></li>
</ul>



<h2 class="wp-block-heading">Languages, Frameworks, Libraries, and Technologies</h2>



<p>Look beyond Java, Kotlin, and AI. There&#8217;s more happening across development:</p>



<ul class="wp-block-list">
<li>This Week in Spring<a href="https://spring.io/blog/2026/10/06/this-week-in-spring-october-6th-2026" target="_blank" rel="noopener"> 1</a>,<a href="https://spring.io/blog/2026/10/13/this-week-in-spring-october-13th-2026" target="_blank" rel="noopener"> 2</a>,<a href="https://spring.io/blog/2026/10/20/this-week-in-spring-october-20th-2026" target="_blank" rel="noopener"> 3</a>,<a href="https://spring.io/blog/2026/10/27/this-week-in-spring-october-27th-2026" target="_blank" rel="noopener"> 4</a></li>



<li><a href="https://www.infoq.com/articles/spring-batch-without-broker/" target="_blank" rel="noopener">Distributed Spring Batch Without a Message Broker</a></li>



<li><a href="https://spring.io/blog/2026/10/19/spring-office-hours-podcast-S5E26" target="_blank" rel="noopener">Spring Office Hours Podcast: S5E26 – dev2Next, Native JSON and a Week of New Models</a></li>



<li><a href="https://spring.io/blog/2026/10/05/spring-office-hours-podcast-S5E25" target="_blank" rel="noopener">Spring Office Hours Podcast: S5E25 – Future of Software Development with Josh Long</a></li>



<li><a href="https://www.infoq.com/news/2026/10/open-source-ai-security/" target="_blank" rel="noopener">AI Agents Are Disrupting Open Source Security Disclosure</a></li>
</ul>



<h2 class="wp-block-heading">Conferences and Events</h2>



<p>Plan your education sessions and networking, both online and offline:</p>



<ul class="wp-block-list">
<li><a href="https://jax.de/muenchen/" target="_blank" rel="noopener">W-Jax</a> – Online or Munich, Germany, November 2–6</li>



<li><a href="https://oredev.org" target="_blank" rel="noopener">Øredev</a> – Malmö, Sweden, November 4–6</li>



<li><a href="https://devoxx.ma" target="_blank" rel="noopener">Devoxx Morocco</a> – Casablanca, Morocco, November 4–5</li>



<li><a href="https://2026.jconf.gt/en/" target="_blank" rel="noopener">JConf Guatemala</a> – Guatemala City, Guatemala, November 7</li>



<li><a href="https://jfall.nl" target="_blank" rel="noopener">JFall</a> –<strong> </strong>Pathé Ede, Netherlands, November 6</li>



<li><a href="https://voxxeddays.com/thessaloniki/" target="_blank" rel="noopener">Voxxed Days Thesalloniki</a> – Thesalloniki, Greece, November 7–8</li>



<li><a href="https://javafest.org" target="_blank" rel="noopener">JavaFest India</a> – Bengaluru, India, November 8</li>



<li><a href="https://jfall.nl" target="_blank" rel="noopener">JFall</a> – Pathé Ede, Netherlands, November 11–12</li>



<li><a href="https://au.churconf.com" target="_blank" rel="noopener">ChurConf</a> – Sydney, Australia, November 18</li>



<li><a href="https://devoxx.com/event/voxxed-days-thessaloniki-2026" target="_blank" rel="noopener">Voxxed Days Thessaloniki</a> – Thessaloniki, Greece, November 20–21</li>



<li><a href="https://javadays.cz/cs/" target="_blank" rel="noopener">JavaDays Czech Republic</a> – Online or Prague, Czech Republic, November 25–26</li>
</ul>



<h2 class="wp-block-heading">Culture and Community\</h2>



<p>Find articles on developer life, career growth, and how engineers keep learning to survive with AI:</p>



<ul class="wp-block-list">
<li><a href="https://www.infoq.com/podcasts/educating-architect-conversation-luca-mezzalira/" target="_blank" rel="noopener">Educating an Architect: A Conversation with Luca Mezzalira</a></li>



<li><a href="https://www.infoq.com/presentations/ai-software-engineering-pipeline/" target="_blank" rel="noopener">The Ladder Is Missing Rungs: Engineering Progression When AI Ate the Middle</a></li>



<li><a href="https://www.infoq.com/news/2026/10/AI-environmentally-sustainable/" target="_blank" rel="noopener">How to Make Artificial Intelligence More Environmentally Sustainable</a></li>



<li><a href="https://dzone.com/articles/member-spotlight-shai-almong" target="_blank" rel="noopener">Member Spotlight: Shai Almog</a></li>



<li><a href="https://www.infoq.com/news/2026/10/optimize-software-workflow/" target="_blank" rel="noopener">Optimizing Software Workflow: Exploring Fundamental Impacts in Technology</a></li>



<li><a href="https://www.infoq.com/presentations/ai-cloud-cost-economics/" target="_blank" rel="noopener">You Can&#8217;t Trust Your AI Bill. And Neither Can I</a></li>



<li><a href="https://www.infoq.com/podcasts/what-really-mean-program-ai/" target="_blank" rel="noopener">What Does It Really Mean To Program With AI: A Conversation with Joy Ebertz</a></li>



<li><a href="https://www.infoq.com/podcasts/building-trust-feedback-alignment/" target="_blank" rel="noopener">The Minimum Viable Manager: Building Trust, Feedback, and Alignment</a></li>



<li><a href="https://www.infoq.com/news/2026/10/software-engineering-skills/" target="_blank" rel="noopener">How to Develop Software Engineering Skills in the Age of AI</a></li>
</ul>



<h2 class="wp-block-heading">And Finally…</h2>



<p>Check out what’s new from the IntelliJ IDEA blog in October:</p>



<ul class="wp-block-list">
<li><a href="https://blog.jetbrains.com/idea/2026/11/whats-new-in-intellij-idea-2026-3/">What’s New in IntelliJ IDEA 2026.3</a></li>



<li><a href="https://blog.jetbrains.com/idea/2026/11/whats-fixed-in-intellij-idea-2026-3/">What’s fixed in IntelliJ IDEA 2026.3</a></li>



<li><a href="https://blog.jetbrains.com/blog/2026/09/22/introducing-jetbrains-air/">JetBrains Air: Building a System of Products for Agentic Software Development</a></li>



<li><a href="https://blog.jetbrains.com/ai/2026/10/air-in-ides-eap/">A New Agentic Experience: JetBrains Air in IDEs – EAP Now Open</a></li>



<li><a href="https://blog.jetbrains.com/idea/2026/10/intellij-idea-s-java-and-kotlin-for-cursor-and-vs-code-hits-1-0/">IntelliJ IDEA&#8217;s Java and Kotlin for Cursor and VS Code Hits 1.0</a></li>



<li><a href="https://blog.jetbrains.com/security/2026/10/compromised-emudhra-certificates-ides/">Compromised eMudhra Certificates: Update Your JetBrains IDEs, ReSharper, .NET Tools, Toolbox App, and Gateway Now</a></li>



<li><a href="https://blog.jetbrains.com/idea/2026/10/your-next-action-is-two-dots-away/">Your Next Action Is Two Dots Away</a></li>



<li><a href="https://blog.jetbrains.com/idea/2026/11/where-did-the-saved-bytes-go-compact-object-headers-in-intellij-idea/">Where Did the Saved Bytes Go? Compact Object Headers in IntelliJ IDEA</a></li>
</ul>



<p>That’s it for today! We’re always collecting ideas for the next Java Annotated Monthly – send us your suggestions via <a href="https://mail.google.com/mail/u/0/?fs=1&amp;tf=cm&amp;source=mailto&amp;to=JAM@jetbrains.com" target="_blank" rel="noopener">email</a> or <a href="https://x.com/intellijidea?ref_src=twsrc%5Egoogle%7Ctwcamp%5Eserp%7Ctwgr%5Eauthor">X</a> by November 20. Remember to check out our archive of <a href="https://www.jetbrains.com/lp/jam/" target="_blank" rel="noopener">past JAM issues</a> for any articles you might have missed!</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>What&#8217;s New in IntelliJ IDEA 2026.3</title>
		<link>https://blog.jetbrains.com/idea/2026/11/whats-new-in-intellij-idea-2026-3/</link>
		
		<dc:creator><![CDATA[Maria Kosukhina]]></dc:creator>
		<pubDate>Thu, 05 Nov 2026 08:45:30 +0000</pubDate>
		<featuredImage>https://blog.jetbrains.com/wp-content/uploads/2026/11/IJ-releases-BlogFeatured-1280x720-1.png</featuredImage>		<category><![CDATA[releases]]></category>
		<guid isPermaLink="false">https://blog.jetbrains.com/?post_type=idea&#038;p=752824</guid>

					<description><![CDATA[IntelliJ IDEA 2026.3 is here! This version brings you Air, as well as an extension for Cursor and VS Code, debugging improvements, and support for the latest technologies in the Java ecosystem. You can download the latest release from our website or update to it directly from inside the IDE, via the free Toolbox App, [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>IntelliJ IDEA 2026.3 is here!</p>



<p>This version brings you Air, as well as an extension for Cursor and VS Code, debugging improvements, and support for the latest technologies in the Java ecosystem.</p>



<p>You can download the latest release from our <a href="https://www.jetbrains.com/idea/download/" target="_blank" rel="noopener">website</a> or update to it directly from inside the IDE, via the free <a href="https://www.jetbrains.com/toolbox-app/" target="_blank" rel="noopener">Toolbox App</a>, or using snap packages for Ubuntu.</p>



<p>As always, the complete list of key updates and demos is collected on our <a href="https://www.jetbrains.com/idea/whatsnew/" target="_blank" rel="noopener"><em>What&#8217;s New </em>page</a>. Make sure to explore it!</p>



<p align="center"><a class="jb-download-button" href="https://www.jetbrains.com/idea/whatsnew/" target="_blank" rel="noopener">Explore the What&#8217;s New page</a></p>



<p>In addition, our developer advocates gathered to record a walkthrough video covering all the most exciting features in the latest release.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="What&#039;s new in IntelliJ IDEA 2026.3" src="https://www.youtube.com/embed/MRLYxerW5nI?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p>Here are the key highlights of this release:</p>

<ul style="line-height: 1.4;">
  <li style="margin-bottom: 14px;">
    <a href="https://www.jetbrains.com/air/ides/" target="_blank" rel="noopener">JetBrains Air</a> – a new layer for agentic development
  </li>

  <li style="margin-bottom: 14px;">
    <a href="https://blog.jetbrains.com/idea/2026/10/intellij-idea-s-java-and-kotlin-for-cursor-and-vs-code-hits-1-0/">IntelliJ IDEA’s Java and Kotlin for Cursor and VS Code extension</a>
  </li>

  <li style="margin-bottom: 14px;">
    Debugging improvements:
    <ul style="margin-top: 10px;">
      <li style="margin-bottom: 8px;">ij-debugger agent skill</li>
      <li style="margin-bottom: 8px;">Hibernate debugger</li>
      <li style="margin-bottom: 8px;">Spring Security diagnostics in HTTP responses</li>
      <li style="margin-bottom: 8px;">Spring cache support in Spring Debugger [coming 2026.3.1]</li>
      <li style="margin-bottom: 8px;">AppGlass</li>
    </ul>
  </li>

  <li style="margin-bottom: 14px;">
    Support for the latest technologies:
    <ul style="margin-top: 10px;">
      <li style="margin-bottom: 8px;">Java 28</li>
      <li style="margin-bottom: 8px;">Jakarta Persistence 4 and Hibernate 8 support</li>
      <li style="margin-bottom: 8px;">Scala updates</li>
      <li style="margin-bottom: 8px;">Kotlin support for Spring Modulith</li>
    </ul>
  </li>

  <li style="margin-bottom: 14px;">Quick tasks and edits without opening a project</li>

  <li style="margin-bottom: 14px;">Git worktrees for parallel work and easy code reviews</li>
</ul>



<p>Version 2026.3 also brings a wide range of stability, performance, and usability improvements across the platform. You can find the full details in our dedicated <em>What’s Fixed</em> blog post.</p>



<p>We’d love to hear what you think about the new features in this release. Your feedback helps us continue improving IntelliJ IDEA so it works even better for you.</p>



<p><a href="https://www.jetbrains.com/idea/download/" target="_blank" rel="noopener">Update to IntelliJ IDEA 2026.3</a> to explore all the new features. You can also join us on<a href="https://x.com/IntelliJIDEA"> X</a>,<a href="https://bsky.app/profile/intellijidea.com/" target="_blank" rel="noopener"> Bluesky</a>, or<a href="https://www.linkedin.com/showcase/intellijidea" target="_blank" rel="noopener"> LinkedIn</a> and share your favorite updates with us.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>What’s fixed in IntelliJ IDEA 2026.3</title>
		<link>https://blog.jetbrains.com/idea/2026/11/whats-fixed-in-intellij-idea-2026-3/</link>
		
		<dc:creator><![CDATA[Dmitriy Smirnov]]></dc:creator>
		<pubDate>Thu, 05 Nov 2026 08:44:25 +0000</pubDate>
		<featuredImage>https://blog.jetbrains.com/wp-content/uploads/2026/11/whats-fixed-2026.3.png</featuredImage>		<guid isPermaLink="false">https://blog.jetbrains.com/?post_type=idea&#038;p=749316</guid>

					<description><![CDATA[Welcome to an overview of the most important fixes and usability improvements in IntelliJ IDEA 2026.3. IntelliJ IDEA 2026.3 ships over 1,000 bug fixes and over 300 performance fixes. We focused on performance, Java and Kotlin code intelligence, and the core workflows that matter for both classic and agentic development. User reports and data shared [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Welcome to an overview of the most important fixes and usability improvements in IntelliJ IDEA 2026.3.</p>



<p>IntelliJ IDEA 2026.3 ships <a href="https://youtrack.jetbrains.com/issues?q=Available%20in:%202026.3*%20%23Resolved%20Type:%20%7BBug%7D%20Project:%20IDEA%20Project:%20KTIJ%20Project:%20IJPL%20Project:%20WEB%20Project:%20DBE" target="_blank" rel="noopener">over 1,000 bug fixes</a> and <a href="https://youtrack.jetbrains.com/issues?q=Available%20in:%202026.3*%20%23Resolved%20Type:%20%7BPerformance%20Problem%7D%20Project:%20IDEA%20Project:%20KTIJ%20Project:%20IJPL%20Project:%20WEB%20Project:%20DBE" target="_blank" rel="noopener">over 300 performance fixes</a>. We focused on performance, Java and Kotlin code intelligence, and the core workflows that matter for both classic and agentic development. User reports and data shared through automatic submission drive most of this work. Below is a recap of the most impactful updates.</p>



<h2 class="wp-block-heading">Performance</h2>



<p>Freezes, CPU usage, and memory were the focus of this release. Many of these fixes came from freeze reports and profiling of real projects, and others came from your tickets.</p>



<h3 class="wp-block-heading">Fewer UI freezes</h3>



<p>We removed UI freezes in the places where they were reported most often. Among others, Spring Boot <a href="https://youtrack.jetbrains.com/issue/IDEA-392815" target="_blank" rel="noopener">inlay hints</a>, <a href="https://youtrack.jetbrains.com/issue/IDEA-394712" target="_blank" rel="noopener">property highlighting</a>, and JPA <a href="https://youtrack.jetbrains.com/issue/IDEA-384840" target="_blank" rel="noopener">entity analysis</a> no longer stall the editor. Tomcat, WildFly, and JBoss <a href="https://youtrack.jetbrains.com/issue/IDEA-386866" target="_blank" rel="noopener">no longer read configuration files on the UI thread</a>. The same goes for the debugger&#8217;s <a href="https://youtrack.jetbrains.com/issue/IDEA-388172" target="_blank" rel="noopener">variable building</a>, the Git <a href="https://youtrack.jetbrains.com/issue/IJPL-252420" target="_blank" rel="noopener">Commit and Changes trees</a>, <a href="https://youtrack.jetbrains.com/issue/IJPL-249060" target="_blank" rel="noopener">Optimize Imports</a>, and Java SDK setup.</p>



<h3 class="wp-block-heading">Indexing, memory, and CPU</h3>



<p>Indexing is lighter on large projects. We removed <a href="https://youtrack.jetbrains.com/issue/IJPL-2966" target="_blank" rel="noopener">excessive index updates when a second project closes during indexing</a> and made the <a href="https://youtrack.jetbrains.com/issue/IJPL-242660" target="_blank" rel="noopener">workspace model copy files lazily</a>.</p>



<p><a href="https://youtrack.jetbrains.com/issue/IJPL-172763" target="_blank" rel="noopener">Launching the IDE no longer starts WSL</a> when you do not need it.</p>



<p>The IDE also uses less memory. A <a href="https://youtrack.jetbrains.com/issue/IJPL-192327" target="_blank" rel="noopener">code lens preview no longer keeps HiDPI images alive on the heap</a>, and the <a href="https://youtrack.jetbrains.com/issue/IDEA-394487" target="_blank" rel="noopener">JPA model no longer creates a new cache key on every lookup</a>. Several leaks that kept closed projects in memory are fixed.</p>



<h3 class="wp-block-heading">Project import</h3>



<p>Importing large Maven and Gradle projects got optimization fixes. A deadlock during import on a remote development host is gone. A <a href="https://youtrack.jetbrains.com/issue/IDEA-392538" target="_blank" rel="noopener">five-minute import of the Kotlin repository</a> with Gradle 9.7 no longer spends most of its time processing errors after Gradle has finished.</p>



<h3 class="wp-block-heading">Automatic error and freeze reporting</h3>



<p>To find the problems that interrupt your work and fix them in order of impact, IntelliJ IDEA 2026.3 sends error and UI freeze reports to JetBrains automatically. Reports contain technical data only. File paths, URLs, and usernames are removed before anything leaves your machine. You can turn reporting off in <em>Settings | Appearance &amp; Behavior | System Settings | Data Sharing</em>.</p>



<h2 class="wp-block-heading">Java</h2>



<p>JaCoCo is now the default coverage runner for new Java run configurations. It is the runner Gradle, Maven, CI systems, and SonarQube already use, so coverage numbers in the IDE match the ones in your pipeline.</p>



<p>The <em>Unused declaration</em> inspection now <a href="https://youtrack.jetbrains.com/issue/IDEA-183482" target="_blank" rel="noopener">reports methods that are used only from test sources</a>.</p>



<p>Quick fixes for the <a href="https://youtrack.jetbrains.com/issue/IDEA-147235" target="_blank" rel="noopener">&#8220;might be null&#8221; inspection</a> work on complex expressions, <em>Rename</em> <a href="https://youtrack.jetbrains.com/issue/IDEA-153400" target="_blank" rel="noopener">stops suggesting the current name</a>, and <a href="https://youtrack.jetbrains.com/issue/IDEA-153641" target="_blank" rel="noopener">generic stream-to-list conversions</a> no longer show a false compilation error.</p>



<h2 class="wp-block-heading">Kotlin</h2>



<p>A new inspection <a href="https://youtrack.jetbrains.com/issue/KTIJ-14952" target="_blank" rel="noopener">warns when <code>CancellationException</code> is caught in suspending code and not rethrown</a>, and offers a quick fix. <a href="https://youtrack.jetbrains.com/issue/KTIJ-32716" target="_blank" rel="noopener">Blocking calls are highlighted in suspend lambdas</a>, and converting Java to Kotlin now <a href="https://youtrack.jetbrains.com/issue/KTIJ-12602" target="_blank" rel="noopener">turns <code>@lombok.Data</code> classes into data classes</a>.</p>



<h2 class="wp-block-heading">Spring</h2>



<p>There are hundreds of fixes for different aspects of Spring Framework support:</p>



<p><strong>Profiles:</strong> Profile switching moved from an editor banner to a status bar widget, and the IDE <a href="https://youtrack.jetbrains.com/issue/IDEA-268360" target="_blank" rel="noopener">finds more profiles</a>, including test-scope ones. The <a href="https://youtrack.jetbrains.com/issue/IDEA-367835" target="_blank" rel="noopener">empty popup</a> and the <a href="https://youtrack.jetbrains.com/issue/IDEA-394366" target="_blank" rel="noopener">stale widget icon</a> are fixed.</p>



<p><strong>Configuration properties:</strong> Find Usages on a <code>${…}</code> placeholder first lists <a href="https://youtrack.jetbrains.com/issue/IDEA-390868" target="_blank" rel="noopener">the key&#8217;s declaration</a> and then all its usages. <a href="https://youtrack.jetbrains.com/issue/IDEA-357836" target="_blank" rel="noopener">YAML placeholders</a> resolve to keys with empty values. Editing config files no longer freezes the IDE.</p>



<p><strong>Spring Data:</strong> Repository method completion is reworked: <a href="https://youtrack.jetbrains.com/issue/IDEA-390726" target="_blank" rel="noopener">inherited methods come first</a>, there is <a href="https://youtrack.jetbrains.com/issue/IDEA-390760" target="_blank" rel="noopener">no wrong import</a>, and <a href="https://youtrack.jetbrains.com/issue/IDEA-387457" target="_blank" rel="noopener">Kotlin named queries</a> are recognized.</p>



<p><strong>Spring Cache:</strong> SpEL and meta-annotation handling is more accurate, with <a href="https://youtrack.jetbrains.com/issue/IDEA-387522" target="_blank" rel="noopener">no false &#8220;missing cache name&#8221; warning for meta-annotations</a> and Kotlin support in the cacheable components inspection.</p>



<p><strong>Spring Modulith:</strong> <a href="https://youtrack.jetbrains.com/issue/IDEA-379856" target="_blank" rel="noopener"><code>allowedDependencies</code> with String constants</a>, <a href="https://youtrack.jetbrains.com/issue/IDEA-378404" target="_blank" rel="noopener"><code>additionalPackages</code></a>, and <a href="https://youtrack.jetbrains.com/issue/IDEA-377304" target="_blank" rel="noopener"><code>@PackageInfo</code></a> are read correctly, and violations are reported again.</p>



<p><strong>Spring Debugger:</strong> About 20 fixes, mostly in bean presentation: <a href="https://youtrack.jetbrains.com/issue/IDEA-390167" target="_blank" rel="noopener"><code>FactoryBean&lt;T&gt;</code> factories</a>, <a href="https://youtrack.jetbrains.com/issue/IDEA-390284" target="_blank" rel="noopener">init and destroy methods</a>, and the <a href="https://youtrack.jetbrains.com/issue/IDEA-391951" target="_blank" rel="noopener">security inlay</a>.</p>



<p><strong>Spring Web:</strong> Endpoint detection and URL references improved for Kotlin and Spring Boot 4, including <a href="https://youtrack.jetbrains.com/issue/IDEA-383531" target="_blank" rel="noopener">companion-function routes</a> and <a href="https://youtrack.jetbrains.com/issue/IDEA-390221" target="_blank" rel="noopener">no false nullability warning for JSpecify parameters</a>.</p>



<p><strong>Spring Core and Spring Boot:</strong> 13 fixes, including Spring XML imports <a href="https://youtrack.jetbrains.com/issue/IDEA-384663" target="_blank" rel="noopener">without a classpath prefix</a> and <a href="https://youtrack.jetbrains.com/issue/IDEA-384665" target="_blank" rel="noopener">from modules without the resource on their classpath</a>, and <a href="https://youtrack.jetbrains.com/issue/IDEA-385740" target="_blank" rel="noopener">import registration navigation for inner classes</a>.</p>



<p><strong>JPA and Hibernate:</strong> About 40 fixes, half of them performance problems. The JPA Console returns <a href="https://youtrack.jetbrains.com/issue/IDEA-393568" target="_blank" rel="noopener">correct date values</a>, <code>@MapKeyJoinColumn</code> <a href="https://youtrack.jetbrains.com/issue/IDEA-392277" target="_blank" rel="noopener">resolves on <code>@ManyToMany</code></a>, and <a href="https://youtrack.jetbrains.com/issue/IDEA-392907" target="_blank" rel="noopener">Generate DDL no longer loads forever</a>.</p>



<p><strong>Flyway and Liquibase:</strong> 22 fixes. <a href="https://youtrack.jetbrains.com/issue/IDEA-392935" target="_blank" rel="noopener">Flyway Init and Diff</a> work again, <a href="https://youtrack.jetbrains.com/issue/IDEA-390011" target="_blank" rel="noopener">Liquibase validation errors</a> are displayed, and <a href="https://youtrack.jetbrains.com/issue/IDEA-391907" target="_blank" rel="noopener">Liquibase XML no longer causes high CPU use</a>.</p>



<p><strong>JPA Buddy:</strong> <code>@OnDelete</code> SQL generation works reliably, and the <a href="https://youtrack.jetbrains.com/issue/IDEA-390932" target="_blank" rel="noopener">JPA Designer freeze</a> and a <a href="https://youtrack.jetbrains.com/issue/IDEA-390958" target="_blank" rel="noopener">slow Map To dialog</a> are fixed.</p>



<h2 class="wp-block-heading">Debugger</h2>



<h3 class="wp-block-heading">HotSwap</h3>



<p>The debugger now suggests HotSwap only where it can work. Some edits cannot be reloaded by the JVM, such as changes to a class structure, a method or field signature, or the inheritance. For these Java and Kotlin edits, the IDE <a href="https://youtrack.jetbrains.com/issue/IDEA-390761" target="_blank" rel="noopener">offers a restart instead</a>. Spring and other scenarios where reloading works differently keep the previous behavior.</p>



<h3 class="wp-block-heading">Virtual threads and tests</h3>



<p>The thread dump <a href="https://youtrack.jetbrains.com/issue/IDEA-387873" target="_blank" rel="noopener">now includes virtual threads</a>, mounted and unmounted, in a single dump. You can <a href="https://youtrack.jetbrains.com/issue/IDEA-212278" target="_blank" rel="noopener">rerun tests that failed in <code>@BeforeAll</code></a>, and the Stream Debugger <a href="https://youtrack.jetbrains.com/issue/IDEA-388450" target="_blank" rel="noopener">shows an inline hint</a> when the debugger pauses at a stream chain.</p>



<h3 class="wp-block-heading">Debugging in WSL</h3>



<p>Debugging in WSL is more reliable. The debugger no longer <a href="https://youtrack.jetbrains.com/issue/IDEA-355585" target="_blank" rel="noopener">blocks the application in WSL2 mirrored network mode</a>, <a href="https://youtrack.jetbrains.com/issue/IDEA-390446" target="_blank" rel="noopener">gets stuck while attaching</a>, or <a href="https://youtrack.jetbrains.com/issue/IDEA-391260" target="_blank" rel="noopener">disconnects after the first breakpoint</a>. Gradle tests in WSL also <a href="https://youtrack.jetbrains.com/issue/IDEA-370640" target="_blank" rel="noopener">no longer hang</a>.</p>



<h2 class="wp-block-heading">Build tools</h2>



<p>Maven and Gradle got many fixes. The most voted topic is Maven delegation.</p>



<p>With <em>Delegate IDE build/run action to Maven</em> enabled, every build, rebuild, and compile <a href="https://youtrack.jetbrains.com/issue/IDEA-198358" target="_blank" rel="noopener">ran <code>mvn install</code></a>, which is usually not the desired behavior. And the presentation of the output was not the same as with the IntelliJ IDEA runner. We fixed both, and delegated builds now run the <code>process-test-classes</code> phase by default.</p>



<p>Running <code>main()</code> from the gutter now works with <a href="https://youtrack.jetbrains.com/issue/IDEA-392539" target="_blank" rel="noopener">Gradle 9.7 Isolated Projects</a>.</p>



<h2 class="wp-block-heading">Scala</h2>



<h3 class="wp-block-heading">Scala 3</h3>



<p>The Scala plugin now supports Scala 3.10. Scala 3 code analysis is <a href="https://youtrack.jetbrains.com/issues?q=project%3A%20SCL%20%7BFixed%20in%20plugin%20build%7D%3A%202026.3.%2A%20State%3A%20Fixed%2C%20Verified%20%23%7BScala%203%7D" target="_blank" rel="noopener">more accurate</a>, with fewer false errors around overloaded extension methods and inferred collection types. Completion also distinguishes extension methods more clearly and shows fewer duplicate suggestions.  </p>



<h3 class="wp-block-heading">Twirl</h3>



<p>We&#8217;ve <a href="https://youtrack.jetbrains.com/issues?q=project%3A%20SCL%20%7BFixed%20in%20plugin%20build%7D%3A%202026.3.%2A%20State%3A%20Fixed%2C%20Verified%20Subsystem%3A%20%7BPlay%20Framework.%20Twirl%20Templates%7D" target="_blank" rel="noopener">rewritten Twirl support</a> for Play Framework to make editing and refactoring templates more reliable. Parsing, completion, formatting, and Find Usages have all improved, and template renaming updates references more consistently.</p>



<h3 class="wp-block-heading">sbt</h3>



<p><a href="https://youtrack.jetbrains.com/issues?q=project%3A%20SCL%20%7BFixed%20in%20plugin%20build%7D%3A%202026.3.%2A%20State%3A%20Fixed%2C%20Verified%20Subsystem%3A%20%7BBuild%20Tools%7D%2C%20%7BBuild%20Tools.%20SBT%7D%2C%20%7BBuild%20Tools.%20BSP%7D" target="_blank" rel="noopener">sbt 2.x projects import more reliably</a>, while build scripts show fewer false errors around <code>.value</code> and <code>/</code> expressions. We&#8217;ve also addressed slow imports with Scala 3.8 and a BSP import performance regression.</p>



<h3 class="wp-block-heading">Debugger</h3>



<p><a href="https://youtrack.jetbrains.com/issues?q=project%3A%20SCL%20%7BFixed%20in%20plugin%20build%7D%3A%202026.3.%2A%20State%3A%20Fixed%2C%20Verified%20Subsystem%3A%20Debugger" target="_blank" rel="noopener">Debugger fixes remove</a> interruptions caused by UI freezes during expression completion and watch evaluation. Breakpoints now stop execution as expected in <code>Future</code> callbacks and <code>for</code> comprehensions inside Scala 3 top-level methods.</p>



<h3 class="wp-block-heading">Compiler-based highlighting</h3>



<p><a href="https://youtrack.jetbrains.com/issues?q=project%3A%20SCL%20%7BFixed%20in%20plugin%20build%7D%3A%202026.3.%2A%20State%3A%20Fixed%2C%20Verified%20Subsystem%3A%20%7BCompiler.%20Highlighting%7D%2C%20%7BCompiler.%20Highlighting.%20BSP%7D" target="_blank" rel="noopener">Compiler-based highlighting</a> now uses fewer resources by reusing diagnostics, combining file checks, and avoiding unnecessary compilation retries. BSP checks and diagnostics after edits or cancellation are more reliable, and the editor explains blocked highlighting with links to the errors responsible. Further fixes span Scala CLI scripts and shebang syntax, dependency completion, formatting and Scalafmt integration, and incremental compilation after macro changes.</p>



You can read more in <a href="https://blog.jetbrains.com/scala/2026/11/06/intellij-scala-plugin-2026-3-is-out/">this article</a>.</p>



<h2 class="wp-block-heading">Markdown</h2>



<p>Markdown received more fixes than almost any other area, so editing specifications and documentation is smoother. <a href="https://youtrack.jetbrains.com/issue/IJPL-92231" target="_blank" rel="noopener">Absolute path links</a> in the preview open the file, and a new setting, <em>Strip trailing spaces in Markdown files on save</em>, <a href="https://youtrack.jetbrains.com/issue/IJPL-92308" target="_blank" rel="noopener">keeps whitespace out of your documents</a>. <a href="https://youtrack.jetbrains.com/issue/IJPL-91123" target="_blank" rel="noopener">GitHub wiki links</a> and <a href="https://youtrack.jetbrains.com/issue/IJPL-94682" target="_blank" rel="noopener">images embedded as base64</a> work in the preview. <a href="https://youtrack.jetbrains.com/issue/IJPL-91056" target="_blank" rel="noopener">Breadcrumbs</a> show the heading path, and you can <a href="https://youtrack.jetbrains.com/issue/IJPL-177429" target="_blank" rel="noopener">exclude headings from a generated table of contents</a>.</p>



<h2 class="wp-block-heading">Terminal</h2>



<p>The terminal got the <a href="https://blog.jetbrains.com/platform/2026/10/jetbrains-terminal-now-uses-ghostty/">ghostty</a> emulator, and <a href="https://youtrack.jetbrains.com/issues?q=Subsystem:%20%7BTools.%20Terminal%7D%20Available%20in:%202026.3%20%23Resolved" target="_blank" rel="noopener">over 40 fixes</a> on top of it. Among others, working with tabs was reworked, multiline URLs and file paths are handled better and more reliably.</p>



<h2 class="wp-block-heading">User interface</h2>



<h3 class="wp-block-heading">New Plugin management UI</h3>



<p>We’ve merged the <a href="https://youtrack.jetbrains.com/issue/IJPL-248768/Combine-Installed-and-Marketplace-tabs-in-Plugins" target="_blank" rel="noopener">Installed and Marketplace tabs</a> into a single view, so one search box now finds plugins whether they’re already installed, bundled with the IDE, or available on JetBrains Marketplace. Results are grouped into clear Installed, Bundled, and Suggested sections that you can expand as needed, so you no longer have to switch tabs to find what you’re looking for.</p>



<p>The Plugins page also opens in its own window, which leaves more room for plugin descriptions, screenshots, and release notes. Simple on/off toggles and a less crowded layout give it a cleaner look.</p>



<h3 class="wp-block-heading">Vertical tool window names and new layouts</h3>



<p>The newly released <a href="https://plugins.jetbrains.com/plugin/34198-extended-tool-windows-ui" target="_blank" rel="noopener">Extended Tool Windows UI</a> plugin adds vertical names beside tool window icons, keeping labels visible without taking extra width from the editor. You can also arrange tool window buttons in horizontal rows along the top or bottom edge and anchor tool windows in the upper-left or upper-right corners.</p>



<h3 class="wp-block-heading">Reorder status bar widgets</h3>



<p><a href="https://youtrack.jetbrains.com/issue/IJPL-43620" target="_blank" rel="noopener">Status bar widgets</a> are now movable, and indentation settings, memory indicator, or inspection widget can sit where you look first. Drag widgets into your preferred order and hide the ones you don’t need. The IDE saves your layout between sessions.</p>



<h2 class="wp-block-heading">Git</h2>



<h3 class="wp-block-heading">Git worktrees</h3>



<p>Git worktrees are the most requested fix of this release. Worktrees now <a href="https://youtrack.jetbrains.com/issue/IJPL-239027" target="_blank" rel="noopener">work in multi-root projects</a>, and you can also <a href="https://youtrack.jetbrains.com/issue/IJPL-252785" target="_blank" rel="noopener">open a merge request in a separate worktree</a>.</p>



<h3 class="wp-block-heading">Stash and remote development</h3>



<p>You can <a href="https://youtrack.jetbrains.com/issue/IJPL-76149" target="_blank" rel="noopener">include untracked and ignored files when you stash</a>. In remote development, <a href="https://youtrack.jetbrains.com/issue/IJPL-165702" target="_blank" rel="noopener">Open Diff as Editor Tab</a> now behaves as it does in a local IDE.</p>



<h3 class="wp-block-heading">GitLab connections with OAuth</h3>



<p>Connect your GitLab account to your JetBrains IDE by signing in through your browser, without creating and pasting a personal access token. OAuth works with GitLab.com and custom GitLab instances, and you can use the connected account for merge requests and Git operations over HTTPS.</p>



<h3 class="wp-block-heading">Git SHA-256 repositories</h3>



<p>JetBrains IDEs now handle the 64-character object IDs used in Git SHA-256 repositories. The fixes cover Git Log filtering and navigation, file history, interactive rebase, and commit-editing actions.</p>



<h2 class="wp-block-heading">Other improvements</h2>



<h3 class="wp-block-heading">SSH</h3>



<p>JetBrains IDEs now use OpenSSH for SSH connections. This adds support for certificate-based authentication, hardware security tokens such as YubiKey, Kerberos SSPI, X11 forwarding, and ProxyJump, along with a broader range of SSH agents and wrappers.</p>



<p>Remote JSON schemas now <a href="https://youtrack.jetbrains.com/issue/IJPL-173495" target="_blank" rel="noopener">download without a VFS error</a>.</p>



<p><a href="https://youtrack.jetbrains.com/issue/IJPL-207839" target="_blank" rel="noopener">MCP server port is configurable</a> in settings.</p>



<h2 class="wp-block-heading">Deprecated plugins</h2>



<p>In 2026.3, we deprecated several less frequently used Big Data Tools plugins: Big Data File Viewer, Metastore Core, Flink, Big Data Tools, Spark, Zeppelin, and Databricks. These plugins are now considered obsolete and no longer maintained.</p>



<p>The source code for the plugins is available in the <a href="https://github.com/JetBrains/intellij-obsolete-plugins" target="_blank" rel="noopener">Obsolete Plugins repository</a> repository, where you can build and install them manually.</p>



<p>The Big Data Tools Core and Remote File Systems plugins remain supported and are compatible with 2026.3.</p>



<h2 class="wp-block-heading">That&#8217;s it</h2>



<p>That&#8217;s it for this overview. Let us know which fixes matter most to you and where you still see friction. Update to IntelliJ IDEA 2026.3 and share your favorite updates with us on X, Bluesky, or LinkedIn.</p>



<p>Thank you for using IntelliJ IDEA!</p>

]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Where Did the Saved Bytes Go? Compact Object Headers in IntelliJ IDEA</title>
		<link>https://blog.jetbrains.com/idea/2026/11/where-did-the-saved-bytes-go-compact-object-headers-in-intellij-idea/</link>
		
		<dc:creator><![CDATA[Igor Kulakov]]></dc:creator>
		<pubDate>Tue, 03 Nov 2026 12:20:40 +0000</pubDate>
		<featuredImage>https://blog.jetbrains.com/wp-content/uploads/2026/11/JB-social-BlogFeatured-1280x720-1.png</featuredImage>		<category><![CDATA[idea]]></category>
		<category><![CDATA[intellij-platform]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[performance]]></category>
		<guid isPermaLink="false">https://blog.jetbrains.com/?post_type=idea&#038;p=751061</guid>

					<description><![CDATA[AI agents may make code faster to produce, but they don’t make it cheaper to run. In applications managing millions of objects, memory allocation and garbage collection still matter. The JVM has been addressing these costs on several fronts: ZGC targets garbage collection pauses, Project Leyden tackles startup and warmup, and Project Lilliput reduces the [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>AI agents may make code faster to produce, but they don’t make it cheaper to run. In applications managing millions of objects, memory allocation and garbage collection still matter. The JVM has been addressing these costs on several fronts:<a href="https://openjdk.org/jeps/377" target="_blank" rel="noopener"> ZGC</a> targets garbage collection pauses,<a href="https://openjdk.org/projects/leyden/" target="_blank" rel="noopener"> Project Leyden</a> tackles startup and warmup, and<a href="https://openjdk.org/projects/lilliput/" target="_blank" rel="noopener"> Project Lilliput</a> reduces the space occupied by every single object header. In Java 27, HotSpot enables compact object headers (Project Lilliput,<a href="https://openjdk.org/jeps/534" target="_blank" rel="noopener"> JEP 534</a>) by default.</p>



<p>Synthetic benchmarks frequently demonstrate smaller object footprints, but what does this change actually deliver for a massive, real-world JVM application? We evaluated the impact directly inside IntelliJ IDEA.</p>



<h2 class="wp-block-heading"><strong>What are compact headers?</strong></h2>



<p>Every Java object carries a header. It identifies the object’s class and holds or encodes state used for locking, identity hashing, and garbage collection. Because every instance incurs this tax, shrinking the header represents an attractive target for memory optimization.</p>



<p>In the 64-bit HotSpot configuration we tested, a conventional instance header takes 12 bytes: an 8-byte mark word and a 4-byte class pointer. The compact layout compresses both into a single 8-byte word.</p>



<p>Does that translate to an immediate 10%–20% reduction in total application memory? Not necessarily. Below, we trace the impact of compact headers from raw object layouts and heap dumps through to resident process memory and interactive IDE workloads, highlighting where the savings materialize and where they vanish.</p>



<h2 class="wp-block-heading"><strong>How we tested compact headers in IntelliJ IDEA</strong></h2>



<p>We measured three configurations with escalating resource demands:</p>



<ul class="wp-block-list">
<li>No project (only the <em>Welcome</em> screen open).</li>



<li>Small project: Spring Petclinic, with about 3,370 Java/Kotlin lines of code.</li>



<li>Large project: IntelliJ IDEA monorepo, with about 26.5 million lines of code.</li>
</ul>



<p>The codebase sizes differ by nearly four orders of magnitude, providing substantially different indexing profiles and memory footprints. For both project configurations, we ran an automated script that repeatedly opened Java source files, inserted and removed comments, resolved code references, saved changes, and closed the editor.</p>



<p>We used IntelliJ IDEA 2026.2.3 running on JBR 25.0.4 (the Java runtime used by JetBrains IDEs), explicitly switching compact headers on and off. Within each on/off comparison, the build, project snapshot, workload, and <kbd>-Xmx</kbd> values stayed the same. We ran multiple runs per configuration on an otherwise idle host, alternating the on/off execution order to minimize cache-warming and ordering bias.</p>



<h2 class="wp-block-heading"><strong>Resident set size (RSS)</strong></h2>



<p>Let’s start with the primary metric users tend to notice when a process looks large: its RSS (resident set size).</p>



<p>RSS counts the physical RAM pages mapped to a process. This includes private memory pages and <em>shared</em> memory pages, such as dynamic libraries. Because shared pages count toward every process mapping them, RSS does not represent the amount of RAM exclusively held by the IDE.</p>



<p>We sampled the main IDE process using the ps command. The table below lists the mean of three per-run phase medians in MiB, with the lowest and highest run medians given in brackets.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>Condition</strong></td><td><strong>Headers off, MiB</strong></td><td><strong>Headers on, MiB</strong></td><td><strong>Delta</strong></td></tr><tr><td><em>Welcome</em> screen <br>(<kbd>-Xmx2048m</kbd>)</td><td>1,226.9 [1,213.6–1,247.8]</td><td>1,266.4 [1,238.8–1,294.1]</td><td>+39.5 MiB (+3.22%)</td></tr><tr><td>Petclinic active <br>(<kbd>-Xmx2048m</kbd>)</td><td>3,576.4 [3,442.8–3,647.1]</td><td>3,531.7 [3,436.3–3,625.3]</td><td>−44.7 MiB (−1.25%)</td></tr><tr><td>Monorepo active <br>(<kbd>-Xmx4096m</kbd>)</td><td>7,352.6 [7,351.3–7,353.4]</td><td>7,376.9 [7,339.8–7,426.1]</td><td>+24.3 MiB (+0.33%)</td></tr></tbody></table></figure>



<p>Verdict: <strong>At identical <kbd>-Xmx</kbd> limits, compact headers produced no statistically significant or consistent reduction in overall RSS.</strong></p>



<p>Does this imply that compact headers yielded no practical benefit? To answer that, we need to look inside the heap and find out how compact headers actually work, rather than assuming an across-the-board drop in process memory.</p>



<h2 class="wp-block-heading"><strong>Measuring object footprints</strong></h2>



<p>Process RSS encompasses much more than live Java heap objects. Resident pages can include unallocated headroom inside the committed heap, class metadata, JIT-compiled code, thread stacks, native buffers and JVM data structures, shared libraries, and other memory-mapped files. Reducing object headers alone, therefore, might not necessarily lower the process’s&nbsp; RSS by a matching number of bytes (if it makes a visible change at all).</p>



<p>To isolate the structural savings, we compared the <em>object footprint</em> – how many bytes the same set of captured objects would occupy under each header layout model.</p>



<p>For your projects, you can explore this directly in IntelliJ IDEA. Its <a href="https://www.jetbrains.com/help/idea/read-the-memory-snapshot.html" target="_blank" rel="noopener">memory dump</a> shows instance counts, shallow sizes, and retained sizes by class, so you can see what occupies the heap. As of the 2026.3 EAP, it also offers compact-header-aware estimates using <a href="https://github.com/openjdk/jol/blob/master/README.md" target="_blank" rel="noopener">JOL</a>’s layout models.</p>



<p>The table below contrasts the modeled footprints for identical captured heaps.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>Captured population</strong></td><td><strong>Instances</strong></td><td><strong>Conventional model</strong></td><td><strong>Compact model</strong></td><td><strong>Memory saved</strong></td></tr><tr><td><em>Welcome</em> screen</td><td>2,587,924</td><td>141.533 MiB</td><td>132.619 MiB</td><td>8.914 MiB (<strong>6.3%</strong>)</td></tr><tr><td>Petclinic, headers off</td><td>9,335,990</td><td>472.304 MiB</td><td>442.633 MiB</td><td>29.671 MiB (<strong>6.3%</strong>)</td></tr><tr><td>Petclinic, headers on&nbsp;</td><td>9,314,900</td><td>470.790 MiB</td><td>441.179 MiB</td><td>29.610 MiB (<strong>6.3%</strong>)</td></tr><tr><td>Monorepo, headers off</td><td>19,102,676</td><td>924.818 MiB</td><td>848.823 MiB</td><td>75.995 MiB (<strong>8.2%</strong>)</td></tr><tr><td>Monorepo, headers on</td><td>19,980,536</td><td>953.401 MiB</td><td>873.060 MiB</td><td>80.341 MiB (<strong>8.4%</strong>)</td></tr></tbody></table></figure>



<p>Here, the savings are visible: The fixed-population model reduces the <em>Welcome</em> and Petclinic objects by about <strong>6.3%</strong>, and the monorepo objects by <strong>8.2%</strong>–<strong>8.4%</strong>. While system-level RSS obscured the effect, the memory savings within the heap are real.</p>



<h2 class="wp-block-heading"><strong>Why the win is not fixed</strong></h2>



<p>Why doesn’t removing 4 bytes from the header translate to a uniform 4-byte saving for every single object? Because two heaps of the same size can contain very different objects, and the header is only one of the variables at play.</p>



<p>An instance also stores primitive fields and references. An array stores its length and element data. Their number, type, and reference width all affect an object’s overall size. In our comparison, field types and reference width stay the same, but changing the header can move field offsets and alter padding. Here’s how that works:</p>



<p>HotSpot rounds each object’s shallow size up to a multiple of eight bytes by default. That can absorb the four-byte header reduction: An object with one int stays 16 bytes in either layout (12 + 4 bytes, or 8 + 4 bytes plus 4 bytes of padding). An empty <kbd>Object</kbd>, by contrast, shrinks from 16 to 8 bytes; one with two int fields shrinks from 24 to 16 bytes, as illustrated in the image below:</p>



<figure class="wp-block-image size-full"><img style="width:100% !important; height:auto !important; max-width:100% !important;" fetchpriority="high" decoding="async" src="https://blog.jetbrains.com/wp-content/uploads/2026/11/image-4.png" alt="" class="wp-image-751065"/></figure>



<p>There can also be padding <em>inside</em> an object. Fields have their own alignment requirements; they do not all start on eight-byte boundaries. In the HotSpot layout modeled here, ordinary field offsets follow their storage width: one byte for <kbd>byte</kbd>/<kbd>boolean</kbd>, two for <kbd>short</kbd>/<kbd>char</kbd>, four for <kbd>int</kbd>/<kbd>float</kbd> and compressed references, and eight for <kbd>long</kbd>/<kbd>double</kbd>. That is separate from rounding the whole object to an eight-byte size, and it is not a Java-language guarantee.</p>



<p>Let’s look at <kbd>Long.value</kbd>. After a 12-byte header, its eight-byte field starts at offset 16, leaving a four-byte gap. After an eight-byte header, it can start at offset 8. The whole object shrinks from 24 to 16 bytes. HotSpot can pack or reorder fields, so the exact offsets still depend on the class and the JVM’s layout rules.</p>



<figure class="wp-block-image size-full"><img style="width:100% !important; height:auto !important; max-width:100% !important;" decoding="async" src="https://blog.jetbrains.com/wp-content/uploads/2026/11/image-4.png" alt="" class="wp-image-751062"/></figure>



<p>Arrays show the same pattern: <kbd>byte[0]</kbd> stays 16 bytes, while <kbd>byte[1]</kbd> shrinks from 24 to 16 bytes. When a heap contains millions of different shapes, its total saving depends on that mix, not just the object count.</p>



<figure class="wp-block-image size-full"><img style="width:100% !important; height:auto !important; max-width:100% !important;" loading="lazy" decoding="async" src="https://blog.jetbrains.com/wp-content/uploads/2026/11/image-4.png" alt="" class="wp-image-751064"/></figure>



<p>We checked these examples against actual shallow sizes with <kbd>Instrumentation.getObjectSize</kbd> on the same JBR, with compact headers explicitly off and on. A shallow size counts the object’s header, fields, and padding, but not any objects reached through its references. We also verified compressed references and alignment. Here is what JBR 25.0.4 reported:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>Shape</strong></td><td><strong>Headers off</strong></td><td><strong>Headers on</strong></td><td><strong>Saved</strong></td></tr><tr><td>Empty Object</td><td>16 B</td><td>8 B</td><td>8 B</td></tr><tr><td>One int field</td><td>16 B</td><td>16 B</td><td>0 B</td></tr><tr><td>Two int fields</td><td>24 B</td><td>16 B</td><td>8 B</td></tr><tr><td>Integer</td><td>16 B</td><td>16 B</td><td>0 B</td></tr><tr><td>Long</td><td>24 B</td><td>16 B</td><td>8 B</td></tr><tr><td>Node shape: int + three references</td><td>32 B</td><td>24 B</td><td>8 B</td></tr><tr><td>byte[0]</td><td>16 B</td><td>16 B</td><td>0 B</td></tr><tr><td>byte[1]</td><td>24 B</td><td>16 B</td><td>8 B</td></tr><tr><td>byte[4]</td><td>24 B</td><td>16 B</td><td>8 B</td></tr><tr><td>byte[8]</td><td>24 B</td><td>24 B</td><td>0 B</td></tr><tr><td>int[4]</td><td>32 B</td><td>32 B</td><td>0 B</td></tr><tr><td>Object[1000]</td><td>4,016 B</td><td>4,016 B</td><td>0 B</td></tr></tbody></table></figure>



<p>The takeaway from the table is simple: A smaller header does not make every object smaller. Total heap reduction depends entirely on an application&#8217;s object population profile.</p>



<h2 class="wp-block-heading"><strong>Practical wins: Allocation, GC, and throughput</strong></h2>



<p>Even if the process’s RSS does not decline at a fixed <kbd>-Xmx</kbd>, does reduced object size benefit the runtime elsewhere? We looked for four effects:</p>



<ul class="wp-block-list">
<li>Does the same workflow allocate fewer total megabytes?</li>



<li>Does the garbage collector run less often or consume fewer cycles?</li>



<li>Do scripted IDE operations become faster as the result of the changes above or effects like better CPU cache locality?</li>



<li>Can the application execute reliably under a smaller <kbd>-Xmx</kbd>?</li>
</ul>



<p>For the first three questions, we compared headers off and on at the same <kbd>-Xmx</kbd>: 2,048 MiB for Petclinic and 4,096 MiB for the monorepo.</p>



<h3 class="wp-block-heading"><strong>Did JVM allocate fewer bytes?</strong></h3>



<p>For each project, our benchmark script repeated the same sequence of operations: opening a Java file, inserting and removing a comment, resolving references, saving, and closing the editor. That includes concurrent background and probe work, so it is not an allocation summary for the edits in isolation.</p>



<p>If you want to analyze allocation hotspots in your own code, IntelliJ IDEA’s<a href="https://www.jetbrains.com/help/idea/read-the-profiling-report.html" target="_blank" rel="noopener"> Memory Allocations profiler</a> tracks call paths and timelines. Like IntelliJ IDEA’s heap dump tool, it natively models compact object headers, so you can expect true numbers for your application, regardless of your target JVM version.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>Project</strong></td><td><strong>Scripted operations</strong></td><td><strong>Headers off, MiB</strong></td><td><strong>Headers on, MiB</strong></td><td><strong>Total reduction</strong></td></tr><tr><td>Petclinic</td><td>75</td><td>671.2 [655.4–683.1]</td><td>612.3 [605.4–621.0]</td><td>−58.9 MiB (<strong>−8.8%</strong>)</td></tr><tr><td>Monorepo</td><td>384</td><td>5,241.6 [5,118.0–5,341.3]</td><td>4,558.2 [4,486.8–4,598.7]</td><td>−683.4 MiB (<strong>−13.0%</strong>)</td></tr></tbody></table></figure>



<p>Under identical workloads, compact headers eliminated <strong>8.8%</strong> to <strong>13.0%</strong> of total allocated volume.</p>



<h3 class="wp-block-heading"><strong>Did the garbage collector have less to do?</strong></h3>



<p>Lower allocation volume could mean less work for the garbage collector. We compared the JVM’s GC counts and elapsed collection time during project opening/indexing, followed by GC pause times during scripted operations.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>Project and phase</strong></td><td><strong>Metric</strong></td><td><strong>Headers off</strong></td><td><strong>Headers on</strong></td><td><strong>Delta</strong></td></tr><tr><td>Petclinic, opening/indexing</td><td>GC events</td><td>90.7 [82–98]</td><td>82.3 [63–95]</td><td>−8.4 events (<strong>−9.3%</strong>)</td></tr><tr><td>Petclinic, opening/indexing</td><td>GC elapsed, ms</td><td>758.3 [733–788]</td><td>698.0 [595–783]</td><td>−60.3 ms (<strong>−8.0%</strong>)</td></tr><tr><td>Petclinic, opening/indexing</td><td>Recorded GC CPU, s</td><td>5.9 [5.6–6.1]</td><td>5.3 [4.8–5.9]</td><td>−0.6 s (<strong>−10.2%</strong>)</td></tr><tr><td>Petclinic, scripted operations</td><td>GC elapsed, ms</td><td>24.3 [10–50]</td><td>13.0 [0–25]</td><td>−11.3 ms (<strong>−46.5%</strong>)</td></tr><tr><td>Monorepo, opening/indexing</td><td>GC events</td><td>560.0 [546–574]</td><td>530.7 [527–534]</td><td>29.3 events (<strong>−5.2%</strong>)</td></tr><tr><td>Monorepo, opening/indexing</td><td>GC elapsed, ms</td><td>11,322 [10,944–11,823]</td><td>11,001 [10,965–11,061]</td><td>321 ms (<strong>−2.8%</strong>)</td></tr><tr><td>Monorepo, opening/indexing</td><td>Recorded GC CPU, s</td><td>88.9 [86.5–92.0]</td><td>85.7 [85.3–85.9]</td><td>−3.2 s (<strong>−3.6%</strong>)</td></tr><tr><td>Monorepo, scripted operations</td><td>GC elapsed, ms</td><td>92.0 [77–107]</td><td>72.0 [36–106]</td><td>−20.0 ms (<strong>−21.7%</strong>)</td></tr></tbody></table></figure>



<p>During monorepo opening/indexing, every compact-header run recorded fewer GC events than the conventional-header runs. Mean GC elapsed time and recorded GC CPU were lower in these comparisons, too.</p>



<h3 class="wp-block-heading"><strong>Did IDE work speed up?</strong></h3>



<p>This is ultimately the question developers care about most. For the same operations, we compared their total time, their 95th-percentile operation latency, and process-wide CPU utilization.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>Project</strong></td><td><strong>Metric</strong></td><td><strong>Headers off</strong></td><td><strong>Headers on</strong></td><td><strong>Delta</strong></td></tr><tr><td>Petclinic</td><td>Cumulative operation time, s</td><td>3.682 [3.632–3.710]</td><td>3.568 [3.423–3.775]</td><td>−0.114 s (<strong>−3.1%</strong>)</td></tr><tr><td>Petclinic</td><td>Per-operation p95, ms</td><td>60.63 [59.51–61.72]</td><td>59.11 [52.81–63.48]</td><td>−1.52 ms (<strong>−2.5%</strong>)</td></tr><tr><td>Petclinic</td><td>Total process CPU, s</td><td>12.92 [12.66–13.18]</td><td>12.90 [12.62–13.09]</td><td>−0.02 s (<strong>−0.2%</strong>)</td></tr><tr><td>Monorepo</td><td>Cumulative operation time, s</td><td>16.768 [16.220–17.246]</td><td>16.751 [15.565–17.422]</td><td>−0.017 s (<strong>−0.1%</strong>)</td></tr><tr><td>Monorepo</td><td>Per-operation p95, ms</td><td>69.06 [68.56–69.44]</td><td>67.46 [64.48–69.53]</td><td>−1.60 ms (<strong>−2.3%</strong>)</td></tr><tr><td>Monorepo</td><td>Total process CPU, s</td><td>52.73 [51.95–53.24]</td><td>51.55 [49.58–52.84]</td><td>−1.18 s (<strong>−2.2%</strong>)</td></tr></tbody></table></figure>



<p>The performance numbers trend slightly positive, suggesting a modest speedup.</p>



<h3 class="wp-block-heading"><strong>How low can </strong><strong>-Xmx</strong><strong> go?</strong></h3>



<p>If compact headers pack more instances into the same heap volume, how far can we drop <kbd>-Xmx</kbd> before workloads fail? </p>



<p>We stepped <kbd>-Xmx</kbd> downward until the indexing and editor scenarios could not completely reliably. A pass meant that the short scenario finished, even if it became slow.</p>



<p>The table below shows the lowest tested settings that completed every repeat for each project and header layout.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>Project</strong></td><td><strong>Headers</strong></td><td><strong>Effective </strong><strong>-Xmx</strong><strong>, MiB</strong></td><td><strong>Active RSS, MiB</strong></td><td><strong>Opening/indexing, s</strong></td><td><strong>Opening/indexing GC, s</strong></td><td><strong>Fixed-work time, s</strong></td></tr><tr><td>Petclinic</td><td>Compact</td><td>376</td><td>2,528.2 [2,465.4–2,558.2]</td><td>67.0 [60.0–71.0]</td><td>29.6 [22.9–32.6]</td><td>4.74 [4.42–5.09]</td></tr><tr><td>Petclinic</td><td>Conventional</td><td>400</td><td>2,529.3 [2,508.9–2,580.7]</td><td>69.5 [64.0–70.0]</td><td>31.9 [25.6–33.3]</td><td>5.18 [4.75–6.76]</td></tr><tr><td>Monorepo</td><td>Compact</td><td>1568</td><td>4,718.8 [4,658.6–4,837.0]</td><td>344.0 [344.0–348.0]</td><td>36.5 [36.4–39.6]</td><td>17.8 [17.8–17.8]</td></tr><tr><td>Monorepo</td><td>Conventional</td><td>1888</td><td>5,063.1 [4,804.2–5,097.9]</td><td>341.0 [338.0–344.0]</td><td>27.9 [27.8–33.5]</td><td>16.3 [16.2–17.4]</td></tr></tbody></table></figure>



<p><strong>Note</strong>: These represent the boundary thresholds where test workloads consistently completed – not suggested production configurations.</p>



<p>For Petclinic, compact headers allowed us to lower the minimum viable heap from 400 MiB to 376 MiB (a <strong>6%</strong> reduction). For the monorepo, the minimum ceiling dropped from 1,888 MiB down to 1,568 MiB – a 320 MiB (<strong>17%</strong>) saving.</p>



<h2 class="wp-block-heading"><strong>Conclusion</strong></h2>



<p>Upgrades that make existing applications more efficient without requiring a single line of application code are rare. Compact object headers achieve this by reducing a memory tax paid by millions of objects. Alongside improvements to startup and garbage collection, they are part of Java’s broader work on runtime efficiency – strengthening the JVM at a time when we’re generating more code than ever.</p>



<p>When you adopt compact headers in your own applications, the actual benefit will depend on your mix of objects and their alignment. Many objects will take up less space, which often translates into lower allocation churn, reduced GC pressure, and a smaller viable heap ceiling. However, it does not guarantee an immediate, matching drop in process RSS or faster execution across the board. Measure those metrics separately, and don’t lower your <kbd>-Xmx</kbd> just because headers are supposed to be smaller.</p>



<p>You may already be using the feature in IntelliJ IDEA. The<a href="https://youtrack.jetbrains.com/issue/IJPL-212987" target="_blank" rel="noopener"> IntelliJ Platform change</a> arrived in 2026.2, and<a href="https://openjdk.org/jeps/534" target="_blank" rel="noopener"> Java 27</a> enables company headers by default. That removes any manual configuration as soon as you migrate to the new Java version – which is well worth doing, given how much runtime work has landed recently.</p>



<p>What would you like us to explore next? Are you interested in more articles on Java performance, newer Java features, or both? Let us know in the comments!</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>IntelliJ IDEA 2026.2.4 Is Out!</title>
		<link>https://blog.jetbrains.com/idea/2026/10/intellij-idea-2026-2-4/</link>
		
		<dc:creator><![CDATA[Julia Shashkova]]></dc:creator>
		<pubDate>Fri, 30 Oct 2026 16:11:52 +0000</pubDate>
		<featuredImage>https://blog.jetbrains.com/wp-content/uploads/2026/10/IJ-social-BlogFeatured-202624.png</featuredImage>		<category><![CDATA[releases]]></category>
		<category><![CDATA[bug-fix-update]]></category>
		<guid isPermaLink="false">https://blog.jetbrains.com/?post_type=idea&#038;p=748199</guid>

					<description><![CDATA[IntelliJ IDEA 2026.2.4 is now available! You can update to this version from inside the IDE, using the Toolbox App, or using snaps if you are a Ubuntu user. You can also download it from our website. The latest update brings the following improvements: For a comprehensive overview of the fixes, see the release notes. [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>IntelliJ IDEA 2026.2.4 is now available! You can update to this version from inside the IDE, using the <a href="https://www.jetbrains.com/toolbox-app/" target="_blank" rel="noopener">Toolbox App</a>, or using snaps if you are a Ubuntu user. You can also download it from our <a href="https://www.jetbrains.com/idea/download/" target="_blank" rel="noopener">website</a>.</p>



<p>The latest update brings the following improvements:</p>



<ul class="wp-block-list">
<li>Files and directories in WSL projects no longer incorrectly appear as deleted or missing when file system prefetching fails. [<a href="https://youtrack.jetbrains.com/issue/IJPL-252022" target="_blank" rel="noopener">IJPL-252022</a>]</li>



<li>The Java onboarding tour now ensures smooth progression through its lessons. [<a href="https://youtrack.jetbrains.com/issue/IJPL-250871" target="_blank" rel="noopener">IJPL-250871</a>]</li>



<li>Import optimization now works as expected without affecting IDE responsiveness during code formatting, saving, or committing changes. [<a href="https://youtrack.jetbrains.com/issue/IJPL-249060" target="_blank" rel="noopener">IJPL-249060</a>]</li>



<li>The IDE starts up reliably even if the plugin cache file contains invalid data. [<a href="https://youtrack.jetbrains.com/issue/IJPL-250688" target="_blank" rel="noopener">IJPL-250688</a>]</li>
</ul>



<p>For a comprehensive overview of the fixes, see the <a href="https://youtrack.jetbrains.com/articles/IDEA-A-2100662762" target="_blank" rel="noopener">release notes</a>. If you spot any issues, let us know via the <a href="https://youtrack.jetbrains.com/issues/IDEA" target="_blank" rel="noopener">issue tracker</a>.</p>



<p>Happy developing!</p>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Compromised eMudhra Certificates: Update Your JetBrains IDEs, ReSharper, .NET Tools, Toolbox App, and Gateway Now</title>
		<link>https://blog.jetbrains.com/security/2026/10/compromised-emudhra-certificates-ides/</link>
					<comments>https://blog.jetbrains.com/security/2026/10/compromised-emudhra-certificates-ides/#respond</comments>
		
		<dc:creator><![CDATA[Ilya Petrov]]></dc:creator>
		<pubDate>Fri, 30 Oct 2026 15:24:48 +0000</pubDate>
		<featuredImage>https://blog.jetbrains.com/wp-content/uploads/2026/10/IS-social-BlogFeatured-1280x720-1.png</featuredImage>		<product ><![CDATA[clion]]></product>
		<product ><![CDATA[datagrip]]></product>
		<product ><![CDATA[datalore]]></product>
		<product ><![CDATA[dataspell]]></product>
		<product ><![CDATA[dotnet]]></product>
		<product ><![CDATA[go]]></product>
		<product ><![CDATA[idea]]></product>
		<product ><![CDATA[phpstorm]]></product>
		<product ><![CDATA[pycharm]]></product>
		<product ><![CDATA[ruby]]></product>
		<product ><![CDATA[rust]]></product>
		<product ><![CDATA[rustrover]]></product>
		<product ><![CDATA[toolbox-app]]></product>
		<product ><![CDATA[webstorm]]></product>
		<category><![CDATA[net-tools]]></category>
		<category><![CDATA[clion]]></category>
		<category><![CDATA[goland]]></category>
		<category><![CDATA[idea]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[pycharm]]></category>
		<category><![CDATA[resharpercplusplus]]></category>
		<category><![CDATA[rider]]></category>
		<category><![CDATA[rubymine]]></category>
		<category><![CDATA[rustrover]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[toolbox-app]]></category>
		<category><![CDATA[webstorm]]></category>
		<guid isPermaLink="false">https://blog.jetbrains.com/?post_type=security&#038;p=750273</guid>

					<description><![CDATA[Summary Available fixed versions The issue is fixed in the following versions: The 2025.2.6.* updates for all IDEs now contain only the JBR fix. They will get a separate hotfix for the JCEF problem. Until then, use a workaround to disable JCEF in your IDE (see instructions below). IDE versions 2025.1 and earlier, and Toolbox [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Summary</h2>



<ul class="wp-block-list">
<li>The private keys of eight eMudhra intermediate certificates were compromised. A network attacker could use them to impersonate websites and services that JetBrains tools connect to.</li>



<li>JetBrains IDEs, the Toolbox App, Gateway, and ReSharper are affected because they use the trust store of the bundled JetBrains Runtime (JBR). For IDEs, the embedded browser (JCEF) is also affected. Operating system updates don’t protect against this issue.&nbsp;</li>



<li>The Toolbox App and JetBrains IDEs use a background service, <code>jetbrainsd</code>. It has its own built-in list of trusted certificates and is fixed separately, in <code>jetbrainsd</code> 0.9.9728.</li>



<li>At the time of publishing, we are not aware of any exploitation of this issue against JetBrains users.</li>
</ul>



<h2 class="wp-block-heading">Available fixed versions</h2>



<p>The issue is fixed in the following versions:</p>



<ul class="wp-block-list">
<li><strong>IntelliJ IDEA:</strong> 2026.3 RC, 2026.2.4, 2026.1.5.1, 2025.3.6.2, 2025.2.6.4.</li>



<li><strong>PyCharm:</strong> 2026.3 RC, 2026.2.4, 2026.1.5.1, 2025.3.6.2, 2025.2.6.3.</li>



<li><strong>PhpStorm:</strong> 2026.3 RC, 2026.2.4, 2026.1.5.1, 2025.3.6.2, 2025.2.6.3.</li>



<li><strong>RubyMine:</strong> 2026.3 RC, 2026.2.4, 2026.1.5.1, 2025.3.6.2, 2025.2.6.3.</li>



<li><strong>WebStorm:</strong> 2026.3 RC, 2026.2.4, 2026.1.5.1, 2025.3.6.2, 2025.2.6.3.</li>



<li><strong>Rider:</strong> 2026.3 EAP 9, 2026.2.4, 2026.1.5.3, 2025.3.5.3.</li>



<li><strong>CLion:</strong> 2026.3 RC, 2026.2.4.1, 2026.1.5.2, 2025.3.6.3, 2025.2.6.3.</li>



<li><strong>DataSpell:</strong> 2026.1.3.1, 2025.3.3.1, 2025.2.4.1.</li>



<li><strong>DataGrip:</strong> 2026.3 RC, 2026.2.6.1, 2026.1.4.1, 2025.3.6.1, 2025.2.6.1.</li>



<li><strong>GoLand:</strong> 2026.3 RC, 2026.2.4, 2026.1.5.1, 2025.3.5.2, 2025.2.6.3.</li>



<li><strong>RustRover:</strong> 2026.3 EAP 8, 2026.2.5, 2026.1.4.1, 2025.3.7.1, 2025.2.6.1.</li>



<li><strong>Gateway:</strong> 2026.3 RC, 2026.2.4, 2026.1.4, 2025.3.3, 2025.2.6.</li>



<li><strong>ReSharper:</strong> 2026.3 EAP9, 2026.2.4, 2026.1.5.3, 2025.3.5.3.</li>



<li><strong>Toolbox App</strong> 3.9.1, 3.8.2.</li>
</ul>



<p>The 2025.2.6.* updates for all IDEs now contain only the JBR fix. They will get a separate hotfix for the JCEF problem. Until then, use a workaround to disable JCEF in your IDE (see instructions below).</p>



<p><strong>IDE versions 2025.1 and earlier, and Toolbox App 3.7 and earlier, will not receive this fix. </strong>You must update to a fixed version.</p>



<h2 class="wp-block-heading">Details</h2>



<p>In October 2026, the private keys of eight intermediate certificates issued by the certificate authority eMudhra were compromised. An attacker who can intercept your network traffic could use them to impersonate websites and services.<br><br><a href="https://emudhra.we-have-a-problem.com/" target="_blank" rel="noopener">Full details of the incident</a>.</p>



<p>JetBrains IDEs check certificates against the trust store of their bundled runtime, JetBrains Runtime (JBR), so updating your operating system doesn’t protect against this issue. We’ve integrated Oracle’s fixes for <a href="https://www.oracle.com/security-alerts/alert-cve-2026-91403.html" target="_blank" rel="noopener">CVE-2026-91403</a> and <a href="https://www.oracle.com/security-alerts/alert-cve-2026-114820.html" target="_blank" rel="noopener">CVE-2026-114820</a> into JBR as-is. The updated runtime blocks the compromised certificates and no longer trusts these root certificates:</p>



<ul class="wp-block-list">
<li>emSign ECC Root CA – G3</li>



<li>emSign Root CA – G1</li>



<li>emSign Root CA – G2</li>



<li>AAA Certificate Services</li>
</ul>



<p>In the fixed versions of 2025.3 and later, the embedded browser now receives Chrome&#8217;s certificate updates, which block the compromised certificates (<a href="https://www.cve.org/CVERecord?id=CVE-2026-118696" target="_blank" rel="noopener">CVE-2026-118696)</a>. It downloads them from Google&#8217;s update servers shortly after the IDE starts. If your network blocks access to Google&#8217;s update servers, the embedded browser stays unprotected. In this case, turn it off as described below.</p>



<p>The Toolbox App and JetBrains IDEs also install a background service, <code>jetbrainsd</code>. Its list of trusted certificates is built into the service itself, so updating JBR doesn&#8217;t fix it. We&#8217;ve released a separate fix in <code>jetbrainsd</code> 0.9.9728, tracked as <a href="https://www.cve.org/CVERecord?id=CVE-2026-118697" data-type="link" data-id="https://www.cve.org/CVERecord?id=CVE-2026-118697" target="_blank" rel="noopener">CVE-2026-118697</a>. Only one copy of <code>jetbrainsd</code> runs for each user, and a newer version always replaces an older one. Updating any app that includes jetbrainsd 0.9.9728 fixes it for all JetBrains apps.</p>



<h2 class="wp-block-heading">What you should do: Update now</h2>



<p>The fix is available in the latest versions of <strong>JetBrains IDEs</strong>, from 2025.2 up to 2026.3 RC. The upcoming 2026.3 release will include it too. Updating to the latest bugfix release of your current version is enough. Versions 2025.1 and earlier will not receive a fix. If you use one of them, please update to one of the versions above.</p>



<p>If you use ReSharper or other JetBrains .NET tools, update them to the latest version.</p>



<p><strong>Important for Toolbox App users:</strong> versions 3.7 and earlier won’t receive this fix. If you’re on 3.7, update to version 3.9.1 or 3.8.2.</p>



<p>If you use <strong>JetBrains Gateway</strong>, update it to one of the following versions: 2026.1.4, 2025.3.3, 2025.2.6.</p>



<p>If you use <strong>JetBrains Runtime</strong> directly, update to one of the fixed builds: <a href="https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-25.0.4.1b635.79" target="_blank" rel="noopener">jbr25.635.79</a>, <a href="https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-25.0.4.1b508.41" target="_blank" rel="noopener">jbr25.508.41</a>, <a href="https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-25.0.4.1b329.142" target="_blank" rel="noopener">jbr25.329.142</a>, <a href="https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-21.0.11b1163.125" target="_blank" rel="noopener">jbr21.1163.125</a>, <a href="https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-21.0.9b1038.91" target="_blank" rel="noopener">jbr21.1038.91</a>.</p>



<p>In rare cases, the IDE will no longer connect to a server whose certificate chains to one of the removed root certificates. The server’s owner will need to replace the certificate.</p>



<h2 class="wp-block-heading"><strong>If you can’t update right away</strong></h2>



<div class="wp-block-pb-accordion-item c-accordion__item js-accordion-item no-js" data-initially-open="false" data-click-to-close="true" data-auto-close="true" data-scroll="false" data-scroll-offset="0"><h3 id="at-7502730" class="c-accordion__title js-accordion-controller" role="button">Clean your certificates manually</h3><div id="ac-7502730" class="c-accordion__content">
<p>The Java runtime bundled with these IDEs and Toolbox App still trusts two eMudhra-related root certificates. If you can&#8217;t update the IDE, give it a cleaned copy of its certificate list and turn off its built-in browser, which has its own list that can&#8217;t be changed. It takes about five minutes and is fully reversible.</p>



<ol class="wp-block-list">
<li><strong>Copy the certificate list</strong> from the IDE folder to your home folder:<br>macOS: <code>&lt;IDE&gt;.app/Contents/jbr/Contents/Home/lib/security/cacerts</code> <br>Windows / Linux: <code>&lt;IDE&gt;/jbr/lib/security/cacerts</code><br>&nbsp;</li>



<li><strong>Remove the two affected roots</strong>, using the keytool in the IDE&#8217;s jbr/bin folder:<br><code>keytool -delete -keystore &lt;copy&gt; -storepass changeit -alias "comodoaaaca [jdk]"</code><br><code>keytool -delete -keystore &lt;copy&gt; -storepass changeit -alias "emsigneccrootcag3 [jdk]"</code><br>&nbsp;</li>



<li>Open <em>Help | Edit Custom VM Options</em>, add this line, then restart the IDE:<br><code>-Djavax.net.ssl.trustStore=&lt;full path to the copy&gt;</code><br><strong>Important:</strong> write the full path, with no ~, no variables, and no quotes. A wrong path silently leaves you unprotected.<br>&nbsp;</li>



<li>In <em>Settings | Tools | Server Certificates</em>, make sure &#8220;<em>Accept non-trusted certificates automatically</em>&#8221; is off.<br>&nbsp;</li>



<li><strong>Linux only:</strong> update the ca-certificates package.</li>
</ol>



<p><strong>What to expect: </strong>If the IDE shows an &#8220;untrusted server certificate&#8221; dialog for an eMudhra certificate, click <em>Reject</em>.</p>
</div></div>



<div class="wp-block-pb-accordion-item c-accordion__item js-accordion-item no-js" data-initially-open="false" data-click-to-close="true" data-auto-close="true" data-scroll="false" data-scroll-offset="0"><h3 id="at-7502731" class="c-accordion__title js-accordion-controller" role="button">Disable JCEF in your IDE</h3><div id="ac-7502731" class="c-accordion__content">
<p>To workaround the JCEF problem in <strong>2025.2.6.4 and previous versions, or in any version if your network blocks Google&#8217;s update servers:</strong></p>



<ol class="wp-block-list">
<li>Open <em>Search Everywhere -&gt; Actions</em></li>



<li>Type “Registry”</li>



<li>Open <em>Registry</em></li>



<li>Search for ‘<code>ide.browser.jcef.enabled</code>’ key</li>



<li>Switch it off</li>



<li>Restart</li>
</ol>



<p><strong>Note:</strong> Turning off the embedded browser affects features that use it, for example, Markdown and HTML previews and Jupyter notebook output. Some plugins may also stop working correctly. After you update to a fixed version, turn <code>ide.browser.jcef.enabled</code> back on and restart the IDE.</p>
</div></div>



<div class="wp-block-pb-accordion-item c-accordion__item js-accordion-item no-js" data-initially-open="false" data-click-to-close="true" data-auto-close="true" data-scroll="false" data-scroll-offset="0"><h3 id="at-7502732" class="c-accordion__title js-accordion-controller" role="button">Update <code>jetbrainsd</code> background service</h3><div id="ac-7502732" class="c-accordion__content">
<p>The Toolbox App and JetBrains IDEs use a background service, <code>jetbrainsd</code>. It has its own built-in list of trusted certificates, so updating JBR doesn&#8217;t fix it, and the workarounds above don&#8217;t apply to it.</p>



<p>The fix is in <code>jetbrainsd</code> 0.9.9728. You get it when you install or update a fixed version of the Toolbox App or an IDE and start it. Only one copy of <code>jetbrainsd</code> runs for each user, and the newest version replaces older ones. So updating the Toolbox App fixes <code>jetbrainsd</code> for all your IDEs, even if you can&#8217;t update the IDEs themselves.</p>



<p><strong>If you can&#8217;t update the Toolbox App or an IDE</strong>, update jetbrainsd manually:</p>



<ol class="wp-block-list">
<li><strong>Download the archive</strong> for your platform and check its SHA-256 checksum with shasum -a 256 <file> (macOS), sha256sum <file> (Linux), or Get-FileHash <file> (Windows PowerShell):</file></file></file>
<ul class="wp-block-list">
<li>Linux x64: <a href="https://download.jetbrains.com/resources/jetbrainsd/jetbrainsd-linux-x86_64-0.9.9728.tar.gz" target="_blank" rel="noopener">jetbrainsd-linux-x86_64-0.9.9728.tar.gz<br></a><code>SHA-256: 6916c5a20e9971be55caa73dc935cbabfb002e86910f2146a2e5dd01747f6b8e</code></li>



<li>Linux ARM64: <a href="https://download.jetbrains.com/resources/jetbrainsd/jetbrainsd-linux-aarch64-0.9.9728.tar.gz" target="_blank" rel="noopener">jetbrainsd-linux-aarch64-0.9.9728.tar.gz<br></a><code>SHA-256: abecdf7775475fe2073b46f6f9cae1272b2b9809355cc973de70c4e552a00420</code></li>



<li>macOS Intel: <a href="https://download.jetbrains.com/resources/jetbrainsd/jetbrainsd.app-macos-x86_64-0.9.9728.tar.gz" target="_blank" rel="noopener">jetbrainsd.app-macos-x86_64-0.9.9728.tar.gz<br></a><code>SHA-256: 2c35b0b90b4f8255de399d408ad01dd171200737f8c1aeffb6b7ba9ce11279f4</code></li>



<li>macOS Apple silicon: <a href="https://download.jetbrains.com/resources/jetbrainsd/jetbrainsd.app-macos-aarch64-0.9.9728.tar.gz" target="_blank" rel="noopener">jetbrainsd.app-macos-aarch64-0.9.9728.tar.gz<br></a><code>SHA-256: a26c459e8665a9c1bcc229384476527e1be8e7e3c1230a59e5a3eb3a8108fd08</code></li>



<li>Windows x64: <a href="https://download.jetbrains.com/resources/jetbrainsd/jetbrainsd-windows-x86_64-0.9.9728.tar.gz" target="_blank" rel="noopener">jetbrainsd-windows-x86_64-0.9.9728.tar.gz<br></a><code>SHA-256: 06b8dd29aa5c99fa9f17adfbc4417e5e8b13599aa1d8e45eea1d9590c8c493d0</code></li>



<li>Windows ARM64: <a href="https://download.jetbrains.com/resources/jetbrainsd/jetbrainsd-windows-aarch64-0.9.9728.tar.gz" target="_blank" rel="noopener">jetbrainsd-windows-aarch64-0.9.9728.tar.gz<br></a><code>SHA-256: d5186973f7ddc803d4cabbe03202e1fed942cfc64628ef65af104bb664ee8865</code><br>&nbsp;</li>
</ul>
</li>



<li><strong>Unpack the archive and run jetbrainsd once</strong> without arguments. It replaces the older version. To unpack, use <code>tar -xzf</code><file>. On Windows 10 and later, <code>tar</code> is built in.</file>
<ul class="wp-block-list">
<li>Linux: <code>./jetbrainsd/bin/jetbrainsd</code></li>



<li>macOS: <code>./jetbrainsd.app/Contents/MacOS/jetbrainsd</code></li>



<li>Windows: <code>.\jetbrainsd\bin\jetbrainsd.exe</code><br>&nbsp;</li>
</ul>
</li>



<li><strong>Check the installed version.</strong> It should be 0.9.9728 or later:
<ul class="wp-block-list">
<li>Linux: <code>"${XDG_DATA_HOME:-$HOME/.local/share}/JetBrains/Daemon/bundles/current/jetbrainsd/bin/jetbrainsd" --version</code></li>



<li>macOS: <code>"$HOME/Library/Application Support/JetBrains/Daemon/bundles/current/jetbrainsd.app/Contents/MacOS/jetbrainsd" --version</code></li>



<li>Windows (PowerShell): <code>&amp; "$env:LOCALAPPDATA\JetBrains\Daemon\bundles\current\jetbrainsd\bin\jetbrainsd.exe" --version</code></li>
</ul>
</li>
</ol>
</div></div>



<h2 class="wp-block-heading"><strong>Also check</strong></h2>



<p>Your project JDKs and any tools that bring their own runtime, such as Node.js, Python, or Go, use their own trust stores. Update them as <a href="https://emudhra.we-have-a-problem.com/#developers" target="_blank" rel="noopener">their vendors recommend</a>.</p>



<h2 class="wp-block-heading"><strong>Support</strong></h2>



<p>If you have any questions about this issue or have trouble updating, please contact <a href="https://www.jetbrains.com/support/" target="_blank" rel="noopener">our Support team</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.jetbrains.com/security/2026/10/compromised-emudhra-certificates-ides/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>IntelliJ IDEA&#8217;s Java and Kotlin for Cursor and VS Code Hits 1.0</title>
		<link>https://blog.jetbrains.com/idea/2026/10/intellij-idea-s-java-and-kotlin-for-cursor-and-vs-code-hits-1-0/</link>
		
		<dc:creator><![CDATA[Marco Behler]]></dc:creator>
		<pubDate>Thu, 15 Oct 2026 13:06:31 +0000</pubDate>
		<featuredImage>https://blog.jetbrains.com/wp-content/uploads/2026/10/IntelliJ-IDEAs-Java-and-Kotlin-LSP.png</featuredImage>		<category><![CDATA[news]]></category>
		<category><![CDATA[cursor]]></category>
		<category><![CDATA[intellij-idea]]></category>
		<category><![CDATA[lsp]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[vs-code]]></category>
		<guid isPermaLink="false">https://blog.jetbrains.com/?post_type=idea&#038;p=746051</guid>

					<description><![CDATA[Ten weeks ago, we opened up a preview of an LSP-powered extension that brings IntelliJ IDEA&#8217;s smartness for Java and Kotlin into VS Code and Cursor. As mentioned in that blog post, this is part of a bigger initiative: moving our JVM intelligence to wherever our users are, no matter what editor or agent they [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Ten weeks ago, <a href="https://blog.jetbrains.com/idea/2026/08/intellij-idea-goes-lsp/">we opened up a preview</a> of an LSP-powered extension that brings IntelliJ IDEA&#8217;s smartness for Java and Kotlin into VS Code and Cursor. As mentioned in that blog post, this is part of a bigger initiative: moving our JVM intelligence to wherever our users are, no matter what editor or agent they are using.</p>



<p>Today, we&#8217;re proud to announce <strong>1.0</strong>, the first stable release of <strong>Java and Kotlin by IntelliJ IDEA.</strong></p>



<p>And we&#8217;re not shipping it alone. This release is also the result of a close collaboration with the team at <strong>Cursor</strong>, who have worked alongside us to make Java and Kotlin a first-class experience in their development environment.&nbsp;</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="IntelliJ IDEA&#039;s Java and Kotlin for Cursor and VS Code Hits 1.0" src="https://www.youtube.com/embed/hb91v5a1VlU?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p class="has-text-align-center"><a href="https://marketplace.visualstudio.com/items?itemName=JetBrains.intellij-server" target="_blank" rel="noopener"><strong>Get </strong><strong><em>Java and Kotlin by IntelliJ IDEA</em></strong><strong> from Visual Studio Marketplace</strong></a></p>



<p class="has-text-align-center"><a href="https://open-vsx.org/extension/JetBrains/intellij-server" target="_blank" rel="noopener"><strong>Get </strong><strong><em>Java and Kotlin by IntelliJ IDEA</em></strong><strong> from Open VSX Registry</strong></a></p>



<h2 class="wp-block-heading">Why this matters</h2>



<p>Agentic development is changing how software gets built. As agents take on more implementation work, developers spend less time manually editing code – and when they do edit, they often need only a focused set of features: navigating to declarations, finding references, code completion, and renames.</p>



<p>These capabilities are exactly what the <a href="https://en.wikipedia.org/wiki/Language_Server_Protocol" target="_blank" rel="noopener">Language Server Protocol</a> was built for: implementing language support once, and reusing it in any LSP-capable editor. And it&#8217;s not only humans who benefit. Agents can call into an LSP directly, producing faster, more deterministic results – and, importantly, consuming fewer tokens.</p>



<p>These are the workflows we want to accommodate with our extension and the underlying IntelliJ IDEA’s Language Server and Debug Adapter.</p>



<h2 class="wp-block-heading">Cursor collaboration</h2>



<p>When we set out to bring IntelliJ IDEA&#8217;s language intelligence beyond our own IDE, Cursor was a natural first partner.&nbsp;</p>



<p>Their team collaborated closely with us throughout the development of the extension, battle-testing it and making sure Java and Kotlin developers get a seamless experience inside Cursor from the moment they open a project.&nbsp;</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><strong><em>We’re glad to work with JetBrains to bring Java and Kotlin language intelligence to Cursor. With Java and Kotlin by IntelliJ IDEA, developers get IntelliJ IDEA’s code analysis, navigation, and refactoring while they work with Cursor’s agents.</em></strong></p>



<p><strong><em>— Rohan Shah, Product, SpaceX AI</em></strong></p>
</blockquote>



<h2 class="wp-block-heading">What&#8217;s in 1.0</h2>



<p><strong>Java and Kotlin by IntelliJ IDEA</strong> is powered by the same Java and Kotlin language technology as the IntelliJ IDEA desktop IDE. 1.0 brings a focused set of capabilities to VS Code and Cursor, including:</p>



<ul class="wp-block-list">
<li>Java, Kotlin, and mixed-language project support</li>



<li>Smart code completion, navigation, and code analysis</li>



<li>Refactorings and editor assistance</li>



<li>Maven, Gradle, and Bazel build tool support</li>



<li>Fast, reliable performance even on large projects and monorepos</li>



<li>Support for test runners right now for JUnit</li>



<li>Powerful debugging capabilities, including emulated breakpoints and async stack traces</li>
</ul>



<p></p>



<p>The full feature list is in our <a href="https://www.jetbrains.com/help/intellij-vscode/About-instance.html" target="_blank" rel="noopener">documentation</a>.</p>



<p>For Cursor, there is dedicated support for the <em>Agents</em> <em>Window</em>. It may use its own instance of the Language Server to provide analysis capabilities based on IntelliJ IDEA’s inspections. This includes nullability support with JSpecify and for Spring Framework’s specifics.</p>



<figure class="wp-block-video"><video controls src="https://resources.jetbrains.com/storage/products/blog/wp-content/uploads/idea/LSP_2_1.0.mp4"></video></figure>



<h2 class="wp-block-heading">Getting started</h2>



<p>Install <strong>Java and Kotlin by IntelliJ IDEA</strong> from the Visual Studio Marketplace or the Open VSX registry.</p>



<h3 class="wp-block-heading">Install in Cursor</h3>



<ol class="wp-block-list">
<li>Open Cursor.</li>



<li>Switch to IDE mode (IDE↗).</li>



<li>Copy the installation command <code>.ext install JetBrains.intellij-server</code></li>



<li>Press <code>Ctrl/Cmd+P</code>, paste the command, and press Enter</li>
</ol>



<p><a href="https://open-vsx.org/extension/JetBrains/intellij-server" target="_blank" rel="noopener">Or get in from Open VSX Registry</a></p>



<h3 class="wp-block-heading">Install in VS Code</h3>



<ol class="wp-block-list">
<li>Open VS Code or another compatible editor.</li>



<li>Copy the installation command <code>.ext install JetBrains.intellij-server</code></li>



<li>Press <code>Ctrl/Cmd+P</code>, paste the command, and press Enter.</li>
</ol>



<p><a href="https://marketplace.visualstudio.com/items?itemName=JetBrains.intellij-server" target="_blank" rel="noopener">Or get it from Visual Studio Marketplace</a></p>



<p>Once installed, open your Java or Kotlin project in VS Code or Cursor. The extension analyzes your project, imports it based on any Maven, Gradle, or Bazel build files it finds, and enables Java and Kotlin language features in the editor.</p>



<h2 class="wp-block-heading">Compatibility notice</h2>



<p>Java and Kotlin by IntelliJ IDEA includes code analysis and quick-fixes that overlap with Red Hat&#8217;s and Oracle&#8217;s Java extensions. To avoid duplicated or conflicting behavior, we recommend disabling those extensions while using ours.</p>



<p>We have, however, made sure that our extension works well with others, like <a href="https://marketplace.visualstudio.com/items?itemName=vmware.vscode-spring-boot" target="_blank" rel="noopener">Spring Tools from the Spring Team</a>.</p>



<h2 class="wp-block-heading">Licensing</h2>



<p>With version 1.0, the extension moves out of its free preview phase. Using it now requires an <strong>IntelliJ IDEA Ultimate subscription</strong> after a 30-day trial period during which you can try out its full feature set for free.</p>



<p>The same license covers IntelliJ IDEA&#8217;s Java and Kotlin capabilities everywhere you work – the IntelliJ IDEA desktop IDE, VS Code-based editors like Cursor, and other supported environments. You can review pricing <a href="https://www.jetbrains.com/idea/buy/?section=commercial&amp;billing=yearly" target="_blank" rel="noopener">here</a>.</p>



<p><strong>Note:</strong> <strong>The license is explicitly designed for human use; we’ll release an update regarding licensing models for purely agentic use soon.</strong></p>



<h2 class="wp-block-heading">Coming next: Agentic and terminal-based workflows</h2>



<p><strong>Java and Kotlin by IntelliJ IDEA</strong> <strong>1.0</strong> in the editor is just one milestone.&nbsp;</p>



<p>In one of the next releases, agents that you orchestrate in the <em>Agents</em> view in Cursor or VS Code will also be able to call the LSP directly when writing code, leading to faster, better, or cheaper results.</p>



<p>In parallel, we&#8217;ve been running experiments applying the same LSP- and DAP-backed intelligence to fully agentic, terminal-based workflows – think Claude Code or Codex calling directly into IntelliJ IDEA&#8217;s Java and Kotlin understanding. News on this will also be announced soon.</p>



<h2 class="wp-block-heading">Feedback and support</h2>



<p>We&#8217;re still listening – Java and Kotlin by IntelliJ IDEA 1.0 is a milestone, not the finish line. Tell us what works, what doesn&#8217;t, and what you want next. Leave a comment here, open a ticket in our <a href="https://youtrack.jetbrains.com/issues/LSP" target="_blank" rel="noopener">issue tracker</a>, or submit a support request using <a href="https://intellij-support.jetbrains.com/hc/en-us/requests/new?ticket_form_id=66731&amp;product=intellij_for_vs_code" target="_blank" rel="noopener">this form</a>.</p>



<p>Thank you to everyone who tested the preview, and to the Cursor team for launching this with us.</p>
]]></content:encoded>
					
		
		
		                    <language>
                        <code><![CDATA[zh-hans]]></code>
                        <url>https://blog.jetbrains.com/zh-hans/idea/2026/10/intellij-idea-s-java-and-kotlin-for-cursor-and-vs-code-hits-1-0/</url>
                    </language>
                	</item>
		<item>
		<title>How Netflix Made AI Coding Agents More Efficient with JetBrains IDE Intelligence</title>
		<link>https://blog.jetbrains.com/ai/2026/10/how-netflix-made-ai-coding-agents-more-efficient/</link>
		
		<dc:creator><![CDATA[Anastasia Kazakova]]></dc:creator>
		<pubDate>Thu, 15 Oct 2026 09:29:14 +0000</pubDate>
		<featuredImage>https://blog.jetbrains.com/wp-content/uploads/2026/10/Blog-Featured_1280x720.png</featuredImage>		<product ><![CDATA[idea]]></product>
		<category><![CDATA[agentic-ai]]></category>
		<category><![CDATA[ai]]></category>
		<category><![CDATA[case-study]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[use-case]]></category>
		<category><![CDATA[air]]></category>
		<category><![CDATA[case-studies]]></category>
		<guid isPermaLink="false">https://blog.jetbrains.com/?post_type=ai&#038;p=747014</guid>

					<description><![CDATA[Netflix plugged JetBrains&#8217; headless code-intelligence engine – the same one behind IntelliJ IDEA – into Claude Code and Codex, then benchmarked it against a variety of scenarios. The details and numbers are available below. At a glance Company Netflix – Application Development Platform (ADP), GenAI Platform, and Agentic SDLC teams Challenge Coding agents were struggling [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Netflix plugged JetBrains&#8217; headless code-intelligence engine – the same one behind IntelliJ IDEA – into Claude Code and Codex, then benchmarked it against a variety of scenarios. The details and numbers are available below.</p>



<figure class="wp-block-image size-full"><img style="width:100% !important; height:auto !important; max-width:100% !important;" loading="lazy" decoding="async" src="https://blog.jetbrains.com/wp-content/uploads/2026/10/article-img.png" alt="" class="wp-image-747135"/></figure>



<h2 class="wp-block-heading">At a glance</h2>



<figure class="wp-block-table"><table><tbody><tr><td><strong>Company</strong></td><td>Netflix – Application Development Platform (ADP), GenAI Platform, and Agentic SDLC teams</td></tr><tr><td><strong>Challenge</strong></td><td>Coding agents were struggling to navigate Java/Kotlin code, especially across compiled library (JAR) boundaries</td></tr><tr><td><strong>Technology</strong></td><td><a href="https://blog.jetbrains.com/idea/2026/08/intellij-idea-goes-lsp/">JetBrains IDE code intelligence for Java</a>, built on the same code-indexing engine that powers IntelliJ IDEA, run headlessly with no IDE open.</td></tr><tr><td><strong>Netflix&#8217;s role</strong></td><td>Built the daemon and CLI needed to make the LSP callable by an agent – infrastructure that JetBrains hadn&#8217;t shipped yet</td></tr><tr><td><strong>Result</strong></td><td>Typically 20–30% more efficient (fewer tokens, less time), and up to about 65% in the best case, on real programming tasks – the size of the gain depends on the model, the agent, and the task, generally larger for stronger models and higher effort settings</td></tr><tr><td><strong>Evaluated on</strong></td><td>Two real codebases – an internal production service and Netflix&#8217;s open-source DGS Framework – across several current coding agents and models, July–August 2026</td></tr></tbody></table></figure>



<h2 class="wp-block-heading">The goal: Increase agent ROI</h2>



<p>JetBrains and Netflix set out to give coding agents accurate, IntelliJ IDEA-grade code understanding in headless environments – with no IntelliJ IDEA instance running.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>“Coding agents like Claude Code are slow and unreliable at navigating Java/Kotlin code, especially across library (JAR) boundaries. We integrated a headless JetBrains IDE’s code engine to give agents IntelliJ IDE-grade code intelligence in headless environments, with no IDE running. We created a benchmark with real programming tasks, which shows that with the JetBrains IDE’s code engine, agents are consistently more efficient – using fewer tokens and less time, with the exact gain depending on the model.”</p>
<cite>— Paul Bakker, Staff Software Engineer, Netflix</cite></blockquote>



<p>The JAR problem Netflix is trying to solve that Paul describes above: JVM projects typically ship libraries as JAR files only, never as source. Agents have to unzip the JARs (guessing which ones matter), potentially decompile class files, then grep through that incomplete view.</p>



<h2 class="wp-block-heading">The solution: JetBrains IDE intelligence</h2>



<p>JetBrains has spent years building the code intelligence engine behind IntelliJ IDEA. It is based on a deterministic index of your project source files, including all libraries. This intelligence is now exposed via an LSP and available in <a href="https://blog.jetbrains.com/idea/2026/08/intellij-idea-goes-lsp/">VS Code-compatible editors</a>. Netflix worked with a headless build of that engine.</p>



<p>The LSP alone isn&#8217;t enough for a coding agent to use directly: It&#8217;s just a server speaking a protocol, with no easy way for an agent to call it and no built-in process management to reuse a running instance between calls. Netflix closed that gap themselves using the daemon and CLI described in the next section.</p>



<h2 class="wp-block-heading">Architecture in detail: Keeping the index warm</h2>



<p>Building an index for a project takes real time, just as opening a large project in IntelliJ IDEA for the first time does. A coding agent calls the LSP in many small, fine-grained steps, and a realistic task needs several such calls. If each one spun up a fresh LSP server, every single call would incur a multi-second cold-start cost – even on a project whose index had already been built a minute earlier.</p>



<p>A daemon process is required to avoid the overhead of cold-starting the LSP server process on repeated calls. JetBrains is working on delivering a daemon, but no daemon was available by the time of evaluation, so Netflix has built one for their own needs:</p>



<ol class="wp-block-list">
<li>Each tool call was short-lived and stateless – it just shelled out to the CLI.</li>



<li>The daemon is the part that stays up: Its session manager routes each call by project root to the matching server process, which holds that project&#8217;s index in memory.</li>



<li>A second call against the same project skips indexing entirely and goes straight to a warm server over stdio.</li>



<li>Both the daemon and CLI are developed in Java and distributed as a GraalVM executable, so there is no startup or runtime overhead from the JVM.</li>
</ol>



<h2 class="wp-block-heading">How Netflix measured the ROI of JetBrains IDE intelligence</h2>



<p>To understand if (and to what extent) JetBrains IDE intelligence improves the performance of a coding agent, a benchmark suite was developed. Same model, same task, same codebase – the only variable was whether the agent could invoke the JetBrains IDE intelligence. Results are reported as the performance difference between runs with JetBrains IDE intelligence versus runs without it.</p>



<p>Evaluation environment and approach:</p>



<figure class="wp-block-table"><table><tbody><tr><td><strong>Datasets</strong></td><td>Two real codebases: An internal service (medium-size project) using Spring Boot 4 and Gradle.<br>Netflix&#8217;s own open-source <a href="https://github.com/Netflix/dgs-framework" target="_blank" rel="noopener">DGS Framework</a> – a public, mixed Kotlin/Java GraphQL framework.</td></tr><tr><td><strong>Tasks</strong></td><td>Two task types:<br>Small/focused tasks where the agent attempts to understand specifics in the codebase, e.g. “where is this interface used in the project”, “what implementations exist of this interface”, “what is the structure of this class”.<br>Full end-to-end tasks, such as implementing a new feature, refactoring a class, or removing code.</td></tr><tr><td><strong>Models</strong></td><td>Claude Code with Opus 5 (medium/high effort)<br>Claude Code with Sonnet 5 (medium/high effort)<br>Codex with GPT-5.6 Sol (medium/high effort)</td></tr><tr><td><strong>Scoring</strong></td><td>While the most important metrics in the experiment were token consumption and time to completion, LLM as a judge was implemented for checking correctness. It works against a reference change set for end-to-end tasks and applies deterministic scoring metric for navigation tasks.</td></tr><tr><td><strong>Outlier handling</strong></td><td>A task that crashed, hit a budget cap, or thrashed in either arm was excluded from both, so one blow-up couldn&#8217;t skew the comparison.</td></tr></tbody></table></figure>



<p>The benchmarks were run multiple times to validate the results and see the effects of changes from new LSP releases.</p>



<h2 class="wp-block-heading">Results</h2>



<p>Across every model, agent, and task type tested, JetBrains IDE intelligence made coding agents more efficient overall – typically <strong>20–30%</strong> more efficient, and up to about <strong>65%</strong> in the best case, depending on the specific model, agent, and task. The stronger models, with higher effort, saw the largest gains. These models are more expensive, so efficiency improvements matter more, but these models are also better at using indexes effectively.</p>



<div class="jb-nflx-eff-root" data-jb-nflx-eff-widget>
  <style>
    .jb-nflx-eff-root {
      --jb-nflx-eff-border: #e2e5ea;
      --jb-nflx-eff-bg: #ffffff;
      --jb-nflx-eff-bg-soft: #f8f9fb;
      --jb-nflx-eff-text: #1a1d24;
      --jb-nflx-eff-text-soft: #5b6270;
      --jb-nflx-eff-good-bg: #e7f5ec;
      --jb-nflx-eff-good-text: #1e7a42;
      font-family: inherit;
      color: var(--jb-nflx-eff-text);
      max-width: 760px;
      margin: 32px auto;
    }
    .jb-nflx-eff-root * { box-sizing: border-box; }
    .jb-nflx-eff-intro {
      font-size: 13.5px;
      color: var(--jb-nflx-eff-text-soft);
      margin: 0 0 14px 0;
      line-height: 1.5;
    }
    .jb-nflx-eff-badges {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 10px;
      margin-bottom: 16px;
    }
    .jb-nflx-eff-badge {
      border-radius: 8px;
      padding: 14px 10px;
      text-align: center;
      background: var(--jb-nflx-eff-good-bg);
      color: var(--jb-nflx-eff-good-text);
    }
    .jb-nflx-eff-badge .jb-nflx-eff-value { font-size: 22px; font-weight: 700; line-height: 1.1; }
    .jb-nflx-eff-badge .jb-nflx-eff-label {
      font-size: 10.5px;
      text-transform: uppercase;
      letter-spacing: 0.05em;
      font-weight: 600;
      opacity: 0.85;
      margin-top: 4px;
    }
    .jb-nflx-eff-scroll {
      overflow-x: auto;
      border: 1px solid var(--jb-nflx-eff-border);
      border-radius: 8px;
    }
    table.jb-nflx-eff-table {
      width: 100%;
      min-width: 480px;
      border-collapse: collapse;
      font-size: 13.5px;
      background: var(--jb-nflx-eff-bg);
    }
    table.jb-nflx-eff-table th, table.jb-nflx-eff-table td {
      padding: 10px 12px;
      text-align: right;
      border-bottom: 1px solid var(--jb-nflx-eff-border);
    }
    table.jb-nflx-eff-table th:first-child, table.jb-nflx-eff-table td:first-child { text-align: left; }
    table.jb-nflx-eff-table thead th {
      background: var(--jb-nflx-eff-bg-soft);
      font-size: 10.5px;
      text-transform: uppercase;
      letter-spacing: 0.04em;
      color: var(--jb-nflx-eff-text-soft);
      font-weight: 600;
    }
    table.jb-nflx-eff-table tbody tr:last-child td { border-bottom: none; }
    .jb-nflx-eff-config { font-weight: 500; }
    .jb-nflx-eff-gain { color: var(--jb-nflx-eff-good-text); font-weight: 600; white-space: nowrap; }
    .jb-nflx-eff-best { background: var(--jb-nflx-eff-good-bg); font-weight: 700; }
    .jb-nflx-eff-caption {
      font-size: 11.5px;
      color: var(--jb-nflx-eff-text-soft);
      margin-top: 10px;
      line-height: 1.5;
    }
    @media (max-width: 480px) {
      .jb-nflx-eff-badges { gap: 6px; }
      .jb-nflx-eff-badge { padding: 12px 4px; min-width: 0; }
      .jb-nflx-eff-badge .jb-nflx-eff-value { font-size: 18px; }
      .jb-nflx-eff-badge .jb-nflx-eff-label { font-size: 9.5px; letter-spacing: 0.03em; }
      table.jb-nflx-eff-table { min-width: 0; font-size: 13px; }
      table.jb-nflx-eff-table th, table.jb-nflx-eff-table td { padding: 9px 8px; }
      table.jb-nflx-eff-table thead th { font-size: 9.5px; letter-spacing: 0.02em; }
    }
  </style>

  <p class="jb-nflx-eff-intro">
    Efficiency gain per configuration, combining token and time savings. Each comparison runs the same task,
    model, and codebase twice &ndash; once with JetBrains IDE intelligence available, once without it.
  </p>

  <div class="jb-nflx-eff-badges">
    <div class="jb-nflx-eff-badge">
      <div class="jb-nflx-eff-value">~25%</div>
      <div class="jb-nflx-eff-label">Average gain</div>
    </div>
    <div class="jb-nflx-eff-badge">
      <div class="jb-nflx-eff-value">20&ndash;30%</div>
      <div class="jb-nflx-eff-label">Typical range</div>
    </div>
    <div class="jb-nflx-eff-badge">
      <div class="jb-nflx-eff-value">~65%</div>
      <div class="jb-nflx-eff-label">Best case</div>
    </div>
  </div>

  <div class="jb-nflx-eff-scroll">
    <table class="jb-nflx-eff-table">
      <thead>
        <tr>
          <th>Configuration</th>
          <th>Code navigation</th>
          <th>End-to-end</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td class="jb-nflx-eff-config">Strongest model, high effort</td>
          <td class="jb-nflx-eff-gain jb-nflx-eff-best">~65%</td>
          <td class="jb-nflx-eff-gain">~24%</td>
        </tr>
        <tr>
          <td class="jb-nflx-eff-config">Mid model, high effort</td>
          <td class="jb-nflx-eff-gain">~29%</td>
          <td class="jb-nflx-eff-gain">~30%</td>
        </tr>
        <tr>
          <td class="jb-nflx-eff-config">Mid model, medium effort</td>
          <td class="jb-nflx-eff-gain">~24%</td>
          <td class="jb-nflx-eff-gain">~22%</td>
        </tr>
        <tr>
          <td class="jb-nflx-eff-config">Lighter configuration, high effort</td>
          <td class="jb-nflx-eff-gain">~17%*</td>
          <td class="jb-nflx-eff-gain">~21%</td>
        </tr>
      </tbody>
    </table>
  </div>

  <p class="jb-nflx-eff-caption">
    Efficiency is the average of token and time savings for each configuration. Correctness held steady
    or improved in every run. *Tokens only: this configuration&#8217;s batched search calls made the
    code-navigation time comparison unrepresentative &ndash; see the article text. Figures are a snapshot
    and will shift with new model releases.
  </p>
</div>



<p>These numbers are a snapshot, not a fixed benchmark result. Every new model release changes how agents search, reason, and use tools, so the exact percentages will keep moving – which is why this write-up reports ranges rather than per-model results. What held up across Netflix&#8217;s runs is the general shape: every model and agent tested became more efficient, the largest gains came from the strongest model at a high-effort setting, and the size of the gain differed noticeably from one model to the next.</p>



<h3 class="wp-block-heading">Code-navigation tasks: More efficient across the board, correctness held or improved</h3>



<p>Every model and effort level tested used fewer tokens with JetBrains IDE intelligence – no exceptions there – with savings ranging from roughly <strong>15% to 60%</strong>. The size of the gain depended mostly on the model: the strongest model saw by far the largest improvements, while lighter-weight configurations landed at the lower end of both ranges. Correctness held steady in most runs and improved in two – it never dropped.</p>



<p>For the code-navigation tasks specifically, one tool/model combination already batches multiple search calls into a single command, so both with and without JetBrains IDE intelligence, it only makes one tool call there. Calling into JetBrains IDE intelligence is a little slower for that one call than the batched search command – which is what produced the clear lack of time benefit for that combination, not a fair reflection of real-world use. That&#8217;s why the broader end-to-end task suite is the more reliable read on time instead, where JetBrains IDE intelligence was faster across every model and agent tested.</p>



<h3 class="wp-block-heading">End-to-end tasks: Consistently more efficient, correctness unaffected</h3>



<p>On the expanded end-to-end run, correctness held steady everywhere across every model and agent tested, so the benefit shows up entirely in efficiency, not in whether the task got done. Every model and agent combination was roughly <strong>10–30%</strong> more efficient with JetBrains IDE intelligence, looking at time to completion and token spend. A lot of this is explained by requiring fewer tool calls to come to the same conclusions.</p>



<h2 class="wp-block-heading">Other evaluated alternatives</h2>



<p>Before committing to the described approach, Netflix ruled out two others. The first rejected was a homegrown internal CLI that connected to a running IntelliJ IDEA instance to get access to a project index. The process is similar to what this article describes, but it requires an IDE to be running. This approach didn’t fit headless agents for environments like Otto, Bitbot, distributed refactoring tooling, CI, etc.</p>



<p>Second, an existing Eclipse LSP, which is used for Java in VS Code, was considered. But for Netflix’s build system (Gradle-based), it just didn’t work.</p>



<h2 class="wp-block-heading">What&#8217;s next</h2>



<h3 class="wp-block-heading">Where Netflix goes from here</h3>



<p>After the test, Netflix concluded that “the benchmarks show that there is a benefit to having a deterministic intelligence layer alongside your agent”. Of course, it doesn’t cut every coding-agent task by a fixed percentage. But for this specific problem – resolving real structure across JAR boundaries – the benefit is large, holds across models, and doesn&#8217;t cost anything in correctness.</p>



<p>Netflix plans to run the same benchmark methodology against Python, TypeScript/JavaScript, and Go. Coding agents for those languages have similar problems. But of course, the ways libraries are downloaded in a project vary by language, so the mechanics of the issues and possible solutions differ. JetBrains plans to continue the collaboration and support this evaluation further.</p>



<h3 class="wp-block-heading">JetBrains&#8217; take: The LSP is just one step, not the destination</h3>



<p>JetBrains IDE intelligence for Java has been tested by Netflix and is now shipped as part of the <a href="https://blog.jetbrains.com/idea/2026/08/intellij-idea-goes-lsp/">Java &amp; Kotlin by IntelliJ IDEA</a> extension. JetBrains also continues experiments with the LSP+CLI approach and will report the results once ready.</p>



<p>The LSP&#8217;s basic primitive is a position in a text document. The specification defines a position as “between two characters, like an insert cursor in an editor”. That&#8217;s a natural primitive for a human working at a keyboard. But agents don&#8217;t really think in terms of cursor locations. They ask questions about the program, like “Why is this call inside <code>createUser()</code> unresolved?” and “Which tests are covering this method?”, etc. It&#8217;s about understanding relationships between parts of the code rather than looking at cursor positions. And a text position is a fragile identity – inserting one character before any given position causes that position to move.</p>



<p>What an agent needs isn&#8217;t a sharper cursor, but a layer that provides answers formulated in the same way as the tasks themselves – i.e. in terms of symbols, diagnostics, test relations, runtime behavior – and returns enough context to reason about the answer, not just locations in a text document.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>“That&#8217;s what I mean by a code engine: not another protocol that lets an agent imitate editor interaction, but a set of precise operations over program structure and execution – one that returns enough context to actually reason about the result. LSP is useful, but it shouldn&#8217;t define the final agent-facing abstraction. Build agent tooling as if the agent were a tiny human at an editor, and you force it to speak in cursor coordinates. Agents need a code engine, not a virtual editor.”</p>
<cite>— Aleksey Stukalov, IDE Division Lead, JetBrains</cite></blockquote>



<p>The Netflix numbers prove code intelligence is worth paying for. Deciding what shape that intelligence takes is the challenge that lies ahead.</p>
]]></content:encoded>
					
		
		
		                    <language>
                        <code><![CDATA[zh-hans]]></code>
                        <url>https://blog.jetbrains.com/zh-hans/ai/2026/10/how-netflix-made-ai-coding-agents-more-efficient/</url>
                    </language>
                                    <language>
                        <code><![CDATA[ko]]></code>
                        <url>https://blog.jetbrains.com/ko/ai/2026/10/how-netflix-made-ai-coding-agents-more-efficient/</url>
                    </language>
                                    <language>
                        <code><![CDATA[ja]]></code>
                        <url>https://blog.jetbrains.com/ja/ai/2026/10/how-netflix-made-ai-coding-agents-more-efficient/</url>
                    </language>
                                    <language>
                        <code><![CDATA[fr]]></code>
                        <url>https://blog.jetbrains.com/fr/ai/2026/10/how-netflix-made-ai-coding-agents-more-efficient/</url>
                    </language>
                	</item>
		<item>
		<title>Your Next Action Is Two Dots Away</title>
		<link>https://blog.jetbrains.com/idea/2026/10/your-next-action-is-two-dots-away/</link>
		
		<dc:creator><![CDATA[Igor Kulakov]]></dc:creator>
		<pubDate>Wed, 07 Oct 2026 07:38:06 +0000</pubDate>
		<featuredImage>https://blog.jetbrains.com/wp-content/uploads/2026/10/IJ-social-BlogFeatured-1280x720-1-1.png</featuredImage>		<category><![CDATA[idea]]></category>
		<category><![CDATA[product-updates]]></category>
		<guid isPermaLink="false">https://blog.jetbrains.com/?post_type=idea&#038;p=744602</guid>

					<description><![CDATA[What’s new for command completion in IntelliJ IDEA&#160; Modern IDEs are packed with power. The real challenge isn’t whether your IDE can do something – it’s remembering how to trigger it. Some features live behind shortcuts. Others are available through intention menus, Search Everywhere, postfix completion, live templates, or tool windows. Discoverability is a constant [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p><strong>What’s new for command completion in IntelliJ IDEA&nbsp;</strong></p>



<p>Modern IDEs are packed with power. The real challenge isn’t whether your IDE can do something – it’s remembering how to trigger it.</p>



<p>Some features live behind shortcuts. Others are available through intention menus, <em>Search Everywhere</em>, postfix completion, live templates, or tool windows. Discoverability is a constant tax on developer focus: As an IDE grows more capable, keeping every feature within reach gets harder.</p>



<p>That&#8217;s why we created <a href="https://foojay.io/today/command-completion-intellij-idea/" target="_blank" rel="noopener">command completion</a>, a context-aware entry point to useful functionality from the place where you spend most of your time – the editor.</p>



<figure class="wp-block-image size-full"><img style="width:100% !important; height:auto !important; max-width:100% !important;" decoding="async" src="https://blog.jetbrains.com/wp-content/uploads/2026/10/image.png" alt="" class="wp-image-744603"/></figure>



<p>Typing <kbd>..</kbd> anywhere in a file surfaces intelligent actions tailored to your current code and caret position. Whether you need to refactor, navigate, generate, document, explain, or fix code, you can act immediately without breaking your flow.</p>



<p>Rather than answering <em>&#8220;What can I type here?&#8221;</em>, command completion addresses a more useful question: <em>&#8220;What can I do here?&#8221;</em></p>



<p>This feature has already been around for a while. In IntelliJ IDEA 2026.3 EAP, it is taking another big step toward becoming your primary interface for everyday coding assistance.</p>



<p>Here&#8217;s what’s new and improved:</p>



<h2 class="wp-block-heading">Logpoints are easier to reach</h2>



<p>Debugging with temporary <kbd>println()</kbd> statements is a habit many of us struggle to break. You add print statements, re-run the app, read the console, and then manually clean up the code afterward.</p>



<p>Logpoints are a cleaner, non-intrusive alternative – and now they are accessible right through command completion:</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="Logpoints / Command Completion" src="https://www.youtube.com/embed/cu8DgW-W0ZE?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p>Simply type <kbd>..</kbd> over an expression or block to drop a logpoint instantly, using the current expression or context as the logged value. Even better: IntelliJ IDEA will now suggest replacing existing print statements with logpoints, helping you move from messy code edits to clean, debugger-supported logging.</p>



<p>If you’re new to logpoints, take a look at the <a href="https://blog.jetbrains.com/idea/2026/09/logpoints-walkthrough/">logpoints tutorial</a>. It explains how to combine them with your AI agents in IntelliJ IDEA. If you missed our 2026.2 updates, logpoints got a revised UI, AI agent support, improved navigation, and faster evaluation, making them one of the most versatile debugging tools in your toolkit.</p>



<h2 class="wp-block-heading">In-context AI assistance</h2>



<p>You can now trigger AI actions using the same .. workflow. Need to explain a complex method, generate docstrings, or refactor a block? You no longer have to interrupt your flow, switch tools, or describe the exact location to the agent. Because the IDE already knows your active file, language, line number, and selected expression, it can give the agent this rich context.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="AIR in Command Completion" src="https://www.youtube.com/embed/Wbm3NaxNlxI?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p>Note: If you have the <a href="https://plugins.jetbrains.com/plugin/33314-air" data-type="link" data-id="https://plugins.jetbrains.com/plugin/33314-air" target="_blank" rel="noopener">Air plugin</a> installed, your requests will be automatically routed through it.</p>



<p>For actions that affect a specific class, method, or declaration, IntelliJ IDEA now highlights the target so it is clearer what the selected command will apply to before you run it.</p>



<h2 class="wp-block-heading">Postfix completion and live templates</h2>



<p>As part of our effort to unify completion workflows, postfix completion, live templates, and command completion now share a consistent interface. You’ll notice clearer filtering, sharper preview panels, and more intuitive discoverability directly from the completion popup.</p>



<figure class="wp-block-image size-full"><img style="width:100% !important; height:auto !important; max-width:100% !important;" loading="lazy" decoding="async" src="https://blog.jetbrains.com/wp-content/uploads/2026/10/image.png" alt="" class="wp-image-744604"/></figure>



<h2 class="wp-block-heading">More contexts</h2>



<p>Command completion is also becoming useful in more contexts, including binary files and decompiled code.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="Logpoints in libraries" src="https://www.youtube.com/embed/PaCDJqE7sdA?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p>We’ve also expanded support to structured and framework-specific environments. You can now use <kbd>..</kbd> inside properties files, Spring workflows, and other domain-specific formats, with support for build scripts coming soon.</p>



<h2 class="wp-block-heading">Why this matters</h2>



<p>Command completion isn’t just another flavor of autocompletion. It is a fundamental shift in how you discover IDE functionality.&nbsp;</p>



<p>Instead of searching through top-level menus or memorizing hotkeys, you can start from where you already are – the code. IntelliJ IDEA continuously analyzes your syntax tree, scope, inspection state, and available actions to present only what is relevant in the moment.</p>



<p>For high-frequency actions, shortcuts remain the fastest choice. For everything else, command completion gives you a discoverable path directly from your code.</p>



<h2 class="wp-block-heading">Try it out today</h2>



<p>Open any Java, Kotlin, or Scala file in IntelliJ IDEA 2026.2 or 2026.3 EAP and type <kbd>..</kbd> anywhere in the editor. Try it near a method, an expression, a regular expression, a declaration that needs documentation, or a place where you would normally open <em>Search Everywhere</em>. The completion popup will reflect what’s possible in that exact spot.</p>



<p>Command completion is continuously evolving, and we have big plans for future releases. Our core mission remains simple: one familiar entry point for whatever you want to do next in code.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Java and Kotlin by IntelliJ IDEA: The LSP-Based Extension Reaches Release Candidate</title>
		<link>https://blog.jetbrains.com/idea/2026/10/java-and-kotlin-by-intellij-idea-the-lsp-based-extension-reaches-release-candidate/</link>
		
		<dc:creator><![CDATA[Andrei Kogun]]></dc:creator>
		<pubDate>Tue, 06 Oct 2026 09:54:39 +0000</pubDate>
		<featuredImage>https://blog.jetbrains.com/wp-content/uploads/2026/10/LSP_RC_blog.png</featuredImage>		<category><![CDATA[news]]></category>
		<guid isPermaLink="false">https://blog.jetbrains.com/?post_type=idea&#038;p=744673</guid>

					<description><![CDATA[Two months ago, we announced the preview of Java and Kotlin by IntelliJ IDEA – an LSP-based extension that brings IntelliJ IDEA’s Java and Kotlin intelligence to third-party editors, starting with VS Code and its forks, such as Cursor. This was our first step towards bringing IntelliJ IDEA’s Java and Kotlin intelligence beyond the IDE, [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Two months ago, <a href="https://blog.jetbrains.com/idea/2026/08/intellij-idea-goes-lsp/">we announced the preview of Java and Kotlin by IntelliJ IDEA</a> – an LSP-based extension that brings IntelliJ IDEA’s Java and Kotlin intelligence to third-party editors, starting with VS Code and its forks, such as Cursor.</p>



<p>This was our first step towards bringing IntelliJ IDEA’s Java and Kotlin intelligence beyond the IDE, giving developers and their agents accurate, project-aware code understanding across their tools and workflows.</p>



<p>We’re moving fast on that commitment, and today marks another big step: Java and Kotlin by IntelliJ IDEA has reached the Release Candidate stage. The foundation for a stable 1.0 release is now in place, and the release itself will arrive very soon.</p>



<p>This RC is the final Early Access Program build and will remain available under the EAP terms for 30 days.</p>



<p>If you’ve been waiting for the right moment to try the extension on a real project, this is it.</p>



<p class="has-text-align-center"><strong><a href="https://marketplace.visualstudio.com/items?itemName=JetBrains.intellij-server" target="_blank" rel="noreferrer noopener">Install from Visual Studio Marketplace</a></strong></p>



<p class="has-text-align-center"><strong><a href="https://open-vsx.org/extension/JetBrains/intellij-server" target="_blank" rel="noreferrer noopener">Install from Open VSX registry</a></strong></p>



<figure class="wp-block-video"><video autoplay controls src="https://resources.jetbrains.com/storage/products/blog/wp-content/uploads/idea/LSP_RC_1_v3.mp4" playsinline></video></figure>



<h2 class="wp-block-heading">From preview to Release Candidate</h2>



<p>Since the first public preview, we’ve shipped several intermediate builds, improving performance, reliability, and the extension’s feature set along the way.</p>



<p>The extension has now been downloaded over 20,000 times across Visual Studio Marketplace and Open VSX Registry.</p>



<p>Early adopters helped us get here by reporting issues, sharing projects and logs, and telling us which capabilities they wanted to see next. We’ve also been dogfooding the extension ourselves, including on the large repository used to build IntelliJ-based IDEs.</p>



<p>The RC brings IntelliJ IDEA’s Java and Kotlin language technology to the whole development workflow. Alongside IntelliJ IDEA’s core coding assistance – including smart code completion, navigation, inspections, quick-fixes, and code analysis – the extension provides more advanced capabilities, such as project-wide refactorings, DAP-based debugging, Maven, Gradle, and Bazel project support, built-in test running, Spring tooling interoperability, and more.</p>



<p>It also makes this intelligence available to coding agents. When the extension is installed in Cursor, Cursor Agent can use the same language server for semantic code search, navigation, and code analysis, leading to faster and more deterministic results.</p>



<figure class="wp-block-video"><video autoplay controls src="https://resources.jetbrains.com/storage/products/blog/wp-content/uploads/idea/LSP_RC_2.mp4" playsinline></video></figure>



<p>We’re continuing to invest in this direction. The goal is not simply to reproduce IDE features in another editor. It is to make IntelliJ IDEA’s understanding of JVM code useful to developers and their tools wherever they choose to work.</p>



<p>Over the coming weeks, we’ll take a closer look at these capabilities and share more about where we’re taking the technology next, including fully agentic, terminal-based workflows.</p>



<h2 class="wp-block-heading">What the Release Candidate means for licensing</h2>



<p>The RC build is part of the Early Access Program and can be used for 30 days without a license.</p>



<p>Starting with the stable release, new users will receive a 30-day free trial. After the trial period, using the extension will require an IntelliJ IDEA Ultimate subscription.</p>



<h2 class="wp-block-heading">Try the Release Candidate</h2>



<p>Install Java and Kotlin by IntelliJ IDEA in VS Code, Cursor, or another compatible VS Code-based editor, open a real project, and tell us what you think.</p>



<p>You can leave a comment here or <a href="https://intellij-support.jetbrains.com/hc/en-us/requests/new?ticket_form_id=66731&amp;product=intellij_for_vs_code" target="_blank" rel="noopener">submit a request to us</a>.</p>



<p>Thank you!</p>



<p class="has-text-align-center"><strong><a href="https://marketplace.visualstudio.com/items?itemName=JetBrains.intellij-server" target="_blank" rel="noopener">Get <em>Java and Kotlin by IntelliJ IDEA</em> from Visual Studio Marketplace</a></strong></p>



<p class="has-text-align-center"><strong><a href="https://open-vsx.org/extension/JetBrains/intellij-server" target="_blank" rel="noopener">Get <em>Java and Kotlin by IntelliJ IDEA</em> from Open VSX Registry</a></strong></p>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Java Annotated Monthly – October 2026</title>
		<link>https://blog.jetbrains.com/idea/2026/10/java-annotated-monthly-october-2026/</link>
		
		<dc:creator><![CDATA[Irina Mariasova]]></dc:creator>
		<pubDate>Mon, 05 Oct 2026 13:05:48 +0000</pubDate>
		<featuredImage>https://blog.jetbrains.com/wp-content/uploads/2026/10/IJ-social-BlogFeatured-1280x720-1.png</featuredImage>		<category><![CDATA[news]]></category>
		<category><![CDATA[ai]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[java-annotated]]></category>
		<category><![CDATA[java-annotated-monthly]]></category>
		<category><![CDATA[kotlin]]></category>
		<category><![CDATA[spring]]></category>
		<guid isPermaLink="false">https://blog.jetbrains.com/?post_type=idea&#038;p=744339</guid>

					<description><![CDATA[September gave us plenty to talk about, with major releases and thought-provoking reads. Java 27 arrived, and JetBrains opened a new chapter in agentic development with the announcement of JetBrains Air, a system of products for agentic software development, followed by the EAP of JetBrains Air in IDEs. Marit van Dijk kicks off this edition [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>September gave us plenty to talk about, with major releases and thought-provoking reads. Java 27 arrived, and JetBrains opened a new chapter in agentic development with the announcement of JetBrains Air, a system of products for agentic software development, followed by the EAP of JetBrains Air in IDEs. <a href="https://maritvandijk.com/" target="_blank" rel="noopener">Marit van Dijk</a> kicks off this edition with her favorite news of the month and a closer look at these highlights. Then comes our usual selection of news, tutorials, and community stories. Let’s dive in!</p>



<h2 class="wp-block-heading">Featured Content</h2>


    <div class="about-author ">
        <div class="about-author__box">
            <div class="row">
                                                            <div class="about-author__box-img">
                            <img style="width:100% !important; height:auto !important; max-width:100% !important;" decoding="async" src="https://blog.jetbrains.com/wp-content/uploads/2026/10/Screenshot-2026-10-05-at-13.16.56.png" alt="" loading="lazy">
                        </div>
                                        <div class="about-author__box-text">
                                                    <h4>Marit van Dijk</h4>
                                                <p>Marit van Dijk is a Java Champion and Developer Advocate at JetBrains with over 20 years of software development experience. She’s passionate about building great software with great people, and making developers’ lives easier.</p>
                    </div>
                            </div>
        </div>
    </div>



<p><a href="https://openjdk.org/projects/jdk/27/" target="_blank" rel="noopener">Java 27</a> was released last month. Of course, we support it from day 1 in IntelliJ IDEA. You can read all about it in <a href="https://blog.jetbrains.com/idea/2026/09/java-27-in-intellij-idea/">Java 27 in IntelliJ IDEA</a> or watch the <a href="https://www.youtube.com/watch?v=4V2jooUo8O0" target="_blank" rel="noopener">release stream</a> if you missed it. <a href="https://softwaregarden.dev/en/" target="_blank" rel="noopener">Piotr Przybył</a> and I updated our talk <a href="https://maritvandijk.com/presentations/modern-java-playful/" target="_blank" rel="noopener">Learning modern Java the playful way</a> and <a href="https://gotocph.com/2026/sessions/4000/learning-modern-java-the-playful-way" target="_blank" rel="noopener">presented</a> it at <a href="https://gotocph.com/2026" target="_blank" rel="noopener">GOTO Copenhagen</a> last week, where I was also on stage for two other sessions. This week, Piotr and I will be doing a <a href="https://m.devoxx.com/events/dvbe26/talks/9752/learning-modern-java-the-playful-way" target="_blank" rel="noopener">Deep Dive</a> version at <a href="https://devoxx.be/" target="_blank" rel="noopener">Devoxx Belgium</a>. Later this month you can find us at <a href="https://jdd.org.pl/" target="_blank" rel="noopener">JDD</a> and <a href="https://www.hellostavanger.no/" target="_blank" rel="noopener">Hello Stavanger</a>.</p>



<p>In other news, <a href="https://www.jetbrains.com/air/" target="_blank" rel="noopener">JetBrains Air</a> was <a href="https://blog.jetbrains.com/blog/2026/09/22/introducing-jetbrains-air/">announced</a>; one system for building software with agents. Please try out <a href="https://blog.jetbrains.com/ai/2026/10/air-in-ides-eap/">Air in the IDE</a> and let us know what you think!&nbsp;</p>



<p><a href="https://www.linkedin.com/in/inspector-patronum/" target="_blank" rel="noopener">Igor Kulakov</a> wrote a <a href="https://blog.jetbrains.com/idea/2026/09/logpoints-walkthrough/">Logpoints Walkthrough</a> on how to use Logpoints; a new debugging feature in IntelliJ IDEA. <a href="https://www.linkedin.com/in/antonarhipov/" target="_blank" rel="noopener">Anton Arhipov</a> shows <a href="https://www.linkedin.com/posts/antonarhipov_automated-debugging-by-ai-agents-in-air-with-ugcPost-7511922897389510656-C_rl/" target="_blank" rel="noopener">how to tie that all together</a>. And <a href="https://www.linkedin.com/in/ksivaprasadreddy/" target="_blank" rel="noopener">Siva Prasad Reddy K</a> announced a course <a href="https://www.youtube.com/watch?v=tmMwM1c8PAc" target="_blank" rel="noopener">Building with AI Agents From Idea to Production</a> where he will teach you about agentic development with IntelliJ IDEA and Spring Boot.</p>



<p>Finally, we are starting to release the videos from IntelliJ IDEA Conf 2026 on the <a href="https://www.youtube.com/intellijidea" target="_blank" rel="noopener">IntelliJ IDEA YouTube channel</a>, or catch up on <a href="https://www.youtube.com/watch?v=ILn2GX8s1FM&amp;list=PLBolw4tavnAY" target="_blank" rel="noopener">IntelliJ IDEA Tech Talks episodes</a>.</p>



<h2 class="wp-block-heading">Java News</h2>



<p>Here’s what’s new in the Java world:&nbsp;</p>



<ul class="wp-block-list">
<li>Java News Roundup <a href="https://www.infoq.com/news/2026/09/java-news-roundup-aug31-2026/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global" target="_blank" rel="noopener">1</a>, <a href="https://www.infoq.com/news/2026/09/java-news-roundup-sep07-2026/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global" target="_blank" rel="noopener">2</a>, <a href="https://www.infoq.com/news/2026/09/java-news-roundup-sep14-2026/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global%D1%8A" target="_blank" rel="noopener">3</a>, <a href="https://www.infoq.com/news/2026/09/java-news-roundup-sep21-2026/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global" target="_blank" rel="noopener">4</a></li>



<li><a href="https://inside.java/2026/09/15/jdk-27-available/" target="_blank" rel="noopener">The Arrival of Java 27!</a></li>



<li><a href="https://blog.jetbrains.com/idea/2026/09/java-27-in-intellij-idea/">Java 27 in IntelliJ IDEA</a></li>



<li><a href="https://inside.java/2026/09/16/jdk27-security-enhancements/" target="_blank" rel="noopener">JDK 27 Security Enhancements</a></li>



<li><a href="https://inside.java/2026/09/28/performance-update-jdk27/" target="_blank" rel="noopener">Performance Improvements in JDK 27</a></li>



<li><a href="https://inside.java/2026/09/12/jdk-27-runtime-updates/" target="_blank" rel="noopener">JDK 27 Runtime Updates Release Notes</a></li>



<li><a href="https://inside.java/2026/09/13/jdk-27-in-2-min/" target="_blank" rel="noopener">Java 27 Technically Within 2 Minutes</a></li>



<li><a href="https://spring.io/blog/2026/09/16/spring-office-hours-podcast-S5E23" target="_blank" rel="noopener">Spring Office Hours Podcast: S5E23 &#8211; Java 27 Release Party with Billy Korando</a></li>



<li><a href="https://nipafx.dev/talk-java-next" target="_blank" rel="noopener">Java Next</a></li>



<li><a href="https://inside.java/2026/09/21/jit-for-java-performance/" target="_blank" rel="noopener">Just-In-Time Compilation for Java Performance: Recent and Ongoing Improvements</a></li>



<li><a href="https://inside.java/2026/09/23/quality-heads-up/" target="_blank" rel="noopener">Quality Outreach Heads-up &#8211; JDK 28: Rich JavaDoc Notes</a></li>



<li><a href="https://inside.java/2026/09/26/jep539-target-jdk28/" target="_blank" rel="noopener">JEP targeted to JDK 28: 539: Strict Field Initialization in the JVM (Preview)</a></li>



<li><a href="https://inside.java/2026/09/29/jep541-target-jdk28/" target="_blank" rel="noopener">JEP targeted to JDK 28: 541: Deprecate the macOS/x64 Port for Removal</a></li>
</ul>



<h2 class="wp-block-heading">Java Tutorials and Tips</h2>



<p>Give your next coding session a head start with these practical guides:</p>



<ul class="wp-block-list">
<li><a href="https://foojay.io/today/from-spec-driven-development-to-living-specifications-in-java-projects/" target="_blank" rel="noopener">From Spec-Driven Development to Living Specifications in Java Projects</a></li>



<li><a href="https://inside.java/2026/09/04/memory-management-principles-java/" target="_blank" rel="noopener">Principles of Memory Management in Java</a></li>
</ul>



<ul class="wp-block-list">
<li>IntelliJ IDEA Tech Talks:
<ul class="wp-block-list">
<li><a href="https://www.youtube.com/watch?v=2L7zLdHeyY0" target="_blank" rel="noopener">Beyond Virtual Threads: Structured Concurrency &#8211; Balkrishna Rawool&nbsp;</a></li>



<li><a href="https://www.youtube.com/watch?v=9yiRYrQAPv0" target="_blank" rel="noopener">Agent Client Protocol for Java Developers &#8211; Mark Pollack</a></li>



<li><a href="https://www.youtube.com/watch?v=ILn2GX8s1FM" target="_blank" rel="noopener">Agentic Patterns and Tool Calling with Spring AI &#8211; Christian Tzolov</a></li>
</ul>
</li>



<li><a href="https://www.youtube.com/watch?v=LNcr40P0viw" target="_blank" rel="noopener">Native Calls in IntelliJ Platform Plugins: JNA vs FFM</a></li>



<li><a href="https://foojay.io/today/masking-a-jvm-thread-dump-without-breaking-the-analysis/" target="_blank" rel="noopener">Masking a JVM thread dump without breaking the analysis</a></li>



<li><a href="https://donraab.medium.com/my-ten-year-quest-to-evolve-java-collections-beyond-java-stream-310f0c287be0" target="_blank" rel="noopener">My Ten Year Quest to Evolve Java Collections Beyond Java Stream</a>&nbsp;</li>



<li><a href="https://www.infoq.com/articles/when-spec-driven-development-pays-off/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global" target="_blank" rel="noopener">When Spec-Driven Development Pays Off</a></li>



<li><a href="https://inside.java/2026/08/27/podcast-068/" target="_blank" rel="noopener">Episode 68 “Operator Overloading with Type Classes” [AtA]</a>&nbsp;</li>



<li><a href="https://foojay.io/today/come-for-java-get-a-whole-lot-more/" target="_blank" rel="noopener">Come for Java. Get a Whole Lot More.</a></li>



<li><a href="https://foojay.io/today/the-java-21-doomsday-clock-countdown/" target="_blank" rel="noopener">The Java 21 Doomsday Clock Countdown</a></li>



<li><a href="https://vimeo.com/1223300523" target="_blank" rel="noopener">Async is the New `goto`- Rethinking Structured Concurrency &#8211; Wout Werkman</a></li>



<li><a href="https://vimeo.com/1223642327" target="_blank" rel="noopener">Getting more out of Maven &#8211; Marit van Dijk and Andres Almiray</a></li>



<li><a href="https://www.javaspecialists.eu/archive/Issue337-Module-Imports.html" target="_blank" rel="noopener">Module Imports</a></li>
</ul>



<h2 class="wp-block-heading">Kotlin Corner</h2>



<p>A little Kotlin inspiration? Right this way:&nbsp;</p>



<ul class="wp-block-list">
<li><a href="https://surveys.jetbrains.com/s3/kotlin-developer-survey-2026" target="_blank" rel="noopener">Kotlin Developer Survey is ongoing</a>&nbsp;</li>



<li><a href="https://kotlinconf.com/" target="_blank" rel="noopener">KotlinConf 2027 is coming to Krakow</a></li>



<li><a href="https://blog.jetbrains.com/kotlin/2026/09/state-of-kotlin-2026-report/">The State of Kotlin in 2026 Report&nbsp;</a></li>



<li><a href="https://blog.jetbrains.com/kotlin/2026/09/the-companions-to-come/">Companions to come</a></li>
</ul>



<h2 class="wp-block-heading">AI&nbsp;</h2>



<p>Beyond the AI buzz, there’s plenty to explore:</p>



<ul class="wp-block-list">
<li><a href="https://www.infoq.com/presentations/context-engineering-redis-llm-architecture/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global" target="_blank" rel="noopener">Beyond Prompting: Context Engineering for Production-Grade AI</a></li>



<li><a href="https://www.infoq.com/news/2026/09/human-reviews-AI-era/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global" target="_blank" rel="noopener">Rigorous Yet Sustainable Human Reviews in the AI Era</a></li>



<li><a href="https://foojay.io/today/did-your-ai-agent-run-the-debugger-one-jvm-bug-two-agent-runs/" target="_blank" rel="noopener">Did Your AI Agent Run the Debugger? One JVM Bug, Two Agent Runs</a></li>



<li><a href="https://foojay.io/today/building-an-agentic-warehouse-management-system-part-1-where-ai-agents-add-value/" target="_blank" rel="noopener">Building an Agentic Warehouse Management System — Part 1: Where AI Agents Add Value</a></li>



<li><a href="https://foojay.io/today/building-an-agentic-warehouse-management-system-part-2-java-and-spring-ai/" target="_blank" rel="noopener">Building an Agentic Warehouse Management System — Part 2: Java and Spring AI</a></li>



<li><a href="https://foojay.io/today/building-an-agentic-warehouse-management-system-part-3-tools-decisions-and-actions/" target="_blank" rel="noopener">Building an Agentic Warehouse Management System — Part 3: Tools, Decisions, and Actions</a></li>



<li><a href="https://www.infoq.com/news/2026/09/figma-security-agents/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global" target="_blank" rel="noopener">How Figma Uses AI Agents for Security</a></li>



<li><a href="https://martinfowler.com/articles/making-data-ready-for-agentic-ai.html" target="_blank" rel="noopener">Making Your Data Ready for Agentic AI</a></li>



<li><a href="https://www.infoq.com/presentations/ai-platform-engineering-roundtable/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global" target="_blank" rel="noopener">Platform Engineering in the Age of AI</a></li>



<li><a href="https://foojay.io/today/debugging-is-invariant-discovery-what-one-kafka-session-taught-us-about-ai-agents/" target="_blank" rel="noopener">Debugging Is Invariant Discovery: What One Kafka Session Taught Us About AI Agents</a></li>



<li><a href="https://netflixtechblog.medium.com/the-lifecycle-of-llm-as-a-judge-building-aligning-and-monitoring-at-scale-c95bd8283508" target="_blank" rel="noopener">The Lifecycle of LLM-as-a-Judge: Building, Aligning, and Monitoring at Scale</a>&nbsp;</li>



<li><a href="https://www.infoq.com/news/2026/09/metr-hugging-face-hack-report/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global" target="_blank" rel="noopener">Independent Investigation of Hugging Face Incident Reveals How Agents Collaborated and Behaved</a></li>



<li><a href="https://foojay.io/today/did-your-ai-agent-run-the-debugger-one-jvm-bug-two-agent-runs/" target="_blank" rel="noopener">Did Your AI Agent Ever Run a Debugger? One JVM Bug, Two Agent Runs</a>&nbsp;</li>



<li><a href="https://foojay.io/today/how-i-built-an-ai-assistant-for-my-career-with-java-spring-ai-and-mongodb/" target="_blank" rel="noopener">How I Built an AI Assistant for My Career with Java, Spring AI, and MongoDB</a></li>



<li><a href="https://foojay.io/today/can-you-explain-the-diff-your-ai-agent-just-wrote/" target="_blank" rel="noopener">Can You Explain the Diff Your AI Agent Just Wrote?</a></li>



<li><a href="https://kpavlov.me/blog/tachyon-mcp-1.0/" target="_blank" rel="noopener">Tachyon MCP 1.0 is here!</a></li>
</ul>



<h2 class="wp-block-heading">Languages, Frameworks, Libraries, and Technologies</h2>



<p>Your next useful discovery might be outside your usual stack:</p>



<ul class="wp-block-list">
<li>This Week in Spring – <a href="https://spring.io/blog/2026/09/01/this-week-in-spring-september-1-2026" target="_blank" rel="noopener">1</a>, <a href="https://spring.io/blog/2026/09/08/this-week-in-spring-september-8th-2026" target="_blank" rel="noopener">2</a>, <a href="https://spring.io/blog/2026/09/15/this-week-in-spring-september-15th-2026" target="_blank" rel="noopener">3</a>, <a href="https://spring.io/blog/2026/09/22/this-week-in-spring-september-22-2026" target="_blank" rel="noopener">4</a>, <a href="https://spring.io/blog/2026/09/29/this-week-in-spring-september-29th-2026" target="_blank" rel="noopener">5</a></li>



<li><a href="https://spring.io/blog/2026/08/31/spring-office-hours-podcast-S5E21" target="_blank" rel="noopener">Spring Office Hours Podcast: S5E21 &#8211; Pro Spring Boot 4 with Felipe Gutierrez</a></li>



<li><a href="https://spring.io/blog/2026/08/31/spring-office-hours-podcast-S5E21" target="_blank" rel="noopener">Spring Office Hours Podcast: S5E21 – Pro Spring Boot 4 with Felipe Gutierrez</a>&nbsp;</li>



<li><a href="https://quarkus.io/blog/quarkus-insights-258-quarkus-feature-flags/" target="_blank" rel="noopener">Quarkus Insights #258: Quarkus Feature Flags</a>&nbsp;</li>



<li><a href="https://foojay.io/today/aggregation-optimization-in-mongodb-sorting-with-indexes-part-5/" target="_blank" rel="noopener">Aggregation Optimization in MongoDB: Sorting With Indexes (Part 5)</a></li>



<li><a href="https://www.infoq.com/news/2026/09/kubernetes-kyaml-manifests/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global" target="_blank" rel="noopener">Kubernetes Promotes KYAML as a Safer, More Consistent Way to Work with Manifests</a></li>



<li><a href="https://spring.io/blog/2026/09/10/a-bootiful-podcast-paul-bakker" target="_blank" rel="noopener">A Bootiful Podcast: Netflix&#8217;s Paul Bakker</a></li>



<li><a href="https://www.infoq.com/news/2026/09/andrew-kelley-zig-no-ai/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global" target="_blank" rel="noopener">Andrew Kelley Interview: Why He Built Zig, Banned AI Contributions, and Moved Zig off GitHub</a></li>



<li><a href="https://www.infoq.com/presentations/context-as-code-devops-agents/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global" target="_blank" rel="noopener">Context Is the New Code</a></li>
</ul>



<h2 class="wp-block-heading">Conferences and Events</h2>



<p>Clear some space on your calendar for these conferences:&nbsp;</p>



<ul class="wp-block-list">
<li><a href="https://devoxx.be" target="_blank" rel="noopener">Devoxx Belgium</a> – Antwerp, Belgium, October 5-9; Come meet JetBrains people and learn the recent news at our booth.&nbsp;</li>



<li><a href="https://2026.javacro.hr/eng" target="_blank" rel="noopener">JavaCro</a> – Rovinj, Croatia, October 11-14</li>



<li><a href="https://www.dev2next.com" target="_blank" rel="noopener">Dev2Next</a> – Lone Tree, USA, October 12-15</li>



<li><a href="https://baselone.org/" target="_blank" rel="noopener">BaselOne</a> – Basel, Switzerland, October 14-15</li>



<li><a href="https://jdd.org.pl" target="_blank" rel="noopener">{j}DD</a> – Kraków, Poland, October 20-21; Join the session by <a href="mailto:marit.van.dijk@jetbrains.com">Marit van Dijk</a>.&nbsp;</li>



<li><a href="https://2026.usa.jcon.one" target="_blank" rel="noopener">JCon USA</a> – Atlanta, USA, October 26-29</li>



<li><a href="https://www.jonthebeach.com" target="_blank" rel="noopener">J On the Beach</a> – Malaga, Spain, October 29-30</li>
</ul>



<h2 class="wp-block-heading">Culture and Community</h2>



<p>Great software starts with people, and people have stories to tell:</p>



<ul class="wp-block-list">
<li><a href="https://www.infoq.com/podcasts/personality-over-skillset/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global" target="_blank" rel="noopener">Personality Over Skillset: How Adam Wachtel Builds Engineering Teams</a></li>



<li><a href="https://blog.codinghorror.com/you-cant-vibe-code-love/" target="_blank" rel="noopener">You Can’t “Vibe Code” Love</a></li>



<li><a href="https://martinfowler.com/articles/2026-dont-like-llms.html" target="_blank" rel="noopener">I don’t like LLMs</a></li>



<li><a href="https://ai.baeldung.com/build-your-agentic-ai-harness-course/" target="_blank" rel="noopener">Build your Agentic Harness is Out</a></li>
</ul>



<h2 class="wp-block-heading">And Finally…</h2>



<p>One last detour before you go:&nbsp;</p>



<ul class="wp-block-list">
<li><a href="https://blog.jetbrains.com/idea/2026/08/project-loom-in-intellij-idea-virtual-threads-scoped-values-and-structured-concurrency/">Project Loom in IntelliJ IDEA: Virtual Threads, Scoped Values, and Structured Concurrency</a></li>



<li><a href="https://blog.jetbrains.com/idea/2026/09/the-grails-plugin-has-a-new-home-apache-grails/">The Grails Plugin Has a New Home: Apache Grails</a></li>



<li><a href="https://blog.jetbrains.com/idea/2026/09/debug-past-an-http-403-without-breaking-spring-security/">Debug Past an HTTP 403 Without Breaking Spring Security</a></li>



<li><a href="https://blog.jetbrains.com/platform/2026/09/the-evolution-of-wsl-support-in-jetbrains-ides/">The Evolution of WSL Support in JetBrains IDEs</a></li>
</ul>



<p>That’s it for today! We’re always collecting ideas for the next Java Annotated Monthly – send us your suggestions via <a href="https://mail.google.com/mail/u/0/?fs=1&amp;tf=cm&amp;source=mailto&amp;to=JAM@jetbrains.com" target="_blank" rel="noopener">email</a> or <a href="https://x.com/intellijidea?ref_src=twsrc%5Egoogle%7Ctwcamp%5Eserp%7Ctwgr%5Eauthor">X</a> by October 20. Don’t forget to check out our archive of <a href="https://www.jetbrains.com/lp/jam/" target="_blank" rel="noopener">past JAM issues</a> for any articles you might have missed!</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>A New Agentic Experience: JetBrains Air in IDEs – EAP Now Open</title>
		<link>https://blog.jetbrains.com/ai/2026/10/air-in-ides-eap/</link>
		
		<dc:creator><![CDATA[Dominique Rolink]]></dc:creator>
		<pubDate>Thu, 01 Oct 2026 12:42:32 +0000</pubDate>
		<featuredImage>https://blog.jetbrains.com/wp-content/uploads/2026/09/AIR-releases-BlogFeatured-1280x720-1-5.png</featuredImage>		<product ><![CDATA[air]]></product>
		<product ><![CDATA[idea]]></product>
		<category><![CDATA[agentic-ai]]></category>
		<category><![CDATA[ai]]></category>
		<guid isPermaLink="false">https://blog.jetbrains.com/?post_type=ai&#038;p=740340</guid>

					<description><![CDATA[Last week, we shared our point of view on where we think agentic development is headed and introduced JetBrains&#8217; answer to it: JetBrains Air, an open system of products for agentic development. Today, we&#8217;re launching the Early Access Program for Air in JetBrains IDEs. It&#8217;s available now as a plugin on JetBrains Marketplace or natively [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p></p>



<p>Last week, we shared our point of view on where we think agentic development is headed and introduced JetBrains&#8217; answer to it: <a href="https://www.jetbrains.com/air/" data-type="link" data-id="https://www.jetbrains.com/air/" target="_blank" rel="noopener">JetBrains Air</a>, an open system of products for agentic development.</p>



<p>Today, we&#8217;re launching the Early Access Program for Air in JetBrains IDEs. It&#8217;s available now as a <a href="https://plugins.jetbrains.com/plugin/33314-air-alpha" target="_blank" rel="noopener">plugin on JetBrains Marketplace</a> or natively in the 2026.3 EAP builds of JetBrains IDEs. <a href="#offer">Try Air with free Junie Lite</a> runs, our efficient coding agent for everyday tasks.</p>



<p>The Air plugin for JetBrains IDEs is a conduit for agents and subscriptions you already use. It is not an AI provider, and it ships with no agents installed.</p>


    <div class="buttons">
        <div class="buttons__row">
                                                <a href="https://plugins.jetbrains.com/plugin/33314-air-alpha" class="btn " target="" rel="noopener">Try Air in Your IDE</a>
                                    </div>
    </div>







<p><br></p>



<figure class="wp-block-image size-full"><img style="width:100% !important; height:auto !important; max-width:100% !important;" loading="lazy" decoding="async" src="https://blog.jetbrains.com/wp-content/uploads/2026/09/image-27-1.png" alt="" class="wp-image-743234"/></figure>



<h2 class="wp-block-heading">Why a new experience?</h2>



<p>AI in the IDE has traditionally centered around AI chat. Agentic development, however, changes the established interaction model: You delegate larger tasks and allow agents to work in parallel. This means you need to be able to see what they&#8217;re doing and steer them along the way. We tried to integrate that function into our existing AI Assistant solution by adding more agents to the AI chat. But as these workflows evolved, one thing became clear: Orchestrating several tasks concurrently is fundamentally different from having a conversation with AI.&nbsp;</p>



<p>Air is designed around that difference.</p>



<p>Behind this lies a bigger paradigm shift, and we won’t mince our words: Agentic development is becoming the norm, and an IDE that keeps agents at arm&#8217;s length will struggle to stay relevant.&nbsp;</p>



<p>That makes the IDE more important, not less: As agents do more of the work, verifying and owning the result becomes the hard part, and that is what the IDE is for. The center of gravity in JetBrains IDEs is shifting towards agentic development, and Air is how we get there.</p>



<h2 class="wp-block-heading">Introducing JetBrains Air in IDEs</h2>



<p>Air brings agentic development into the IDE without locking you into a particular agent or changing the way you already work. It&#8217;s built around three principles – the first two you&#8217;ve heard from us before. What&#8217;s new is a product designed around them from the start.</p>



<ol class="wp-block-list">
<li>Bring your existing agents into the IDE</li>
</ol>



<p>Air works with the agents you already use, such as Codex, GitHub Copilot, Junie, Cursor, and other ACP-compatible agents. It detects agents already installed on your machine and makes it easy to bring them directly into the IDE. With JetBrains Air in IDEs you can also use your Claude subscription in Air&#8217;s terminal and full-screen tab.&nbsp;</p>



<p><strong>You don’t need a JetBrains AI subscription to use your agents with Air.</strong> Use your existing AI provider subscriptions or JetBrains AI if you already have it.&nbsp;</p>



<ol start="2" class="wp-block-list">
<li>IDE intelligence for you and your agents</li>
</ol>



<p>Development doesn’t end when code is generated – it still needs to be run, reviewed, and validated. That’s exactly what an IDE is built for. It gives you the tools to understand and review the agent’s work – from diffs and navigation to inspections and more.</p>



<p><strong>And agents benefit from the IDE, too.</strong> Built-in IDE skills and tools give supported agents access to specialized JetBrains expertise and workflows for tasks like debugging, performance profiling, database exploration, and semantic code search. This can help agents produce better results and, for some tasks, use fewer tokens.</p>



<ol start="3" class="wp-block-list">
<li>An agentic-first UX</li>
</ol>



<p>Air is designed for working with <strong>multiple agents in parallel</strong>, not just interacting with one at a time. Agent work is organized into sessions, with all your sessions visible in one place, so you can track progress, see what needs your attention, steer agents, and review their work across projects.</p>



<h2 class="wp-block-heading">Working with Air</h2>



<p>Here’s what that looks like in practice:</p>



<p><strong>Stay on top of parallel agent work. </strong>View sessions across projects in one place, with activity, unread updates, changed files, and outgoing commits at a glance. See what each session costs as you work, so spend stays visible across agents and tasks. This makes it easy to track progress and quickly see what has changed and what requires your attention.<br></p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://blog.jetbrains.com/wp-content/uploads/2026/09/image-28-1.png" alt="" class="wp-image-743270" style="width:648px;height:auto; width:100% !important; height:auto !important; max-width:100% !important;"/></figure></div>


<p><strong>Delegate a task in one keystroke.</strong> Double-tap Ctrl from anywhere in the IDE to open a prompt window and start a new agent session, with your current context already attached.</p>



<p><strong>Choose the preferred UI for an agent session</strong>. Sessions themselves open right in the editor as tabs, giving agent work a real screen space alongside your code. If you prefer the terminal UI, you can keep using it directly in the IDE. Or choose a graphical chat when that works better for the task.&nbsp;</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://blog.jetbrains.com/wp-content/uploads/2026/09/image-29-1.png" alt="" class="wp-image-743285" style="width:611px;height:auto; width:100% !important; height:auto !important; max-width:100% !important;"/></figure></div>


<p><strong>Run agents locally or in the cloud. </strong>For tasks that are complex, long-running or can be done in the background, run agents in the cloud, and close your machine. Follow along on mobile (coming soon) to steer the agent. Currently available to orgs with AI seats.</p>



<p><br><strong>Keep parallel agent work isolated with temporary worktrees.</strong> Start a session from any branch, either on a new branch or in a detached way. Track changes and commits from the chat, then cherry-pick the result back into your main project when it’s ready.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://blog.jetbrains.com/wp-content/uploads/2026/09/image-30-1.png" alt="" class="wp-image-743319" style="width:686px;height:auto; width:100% !important; height:auto !important; max-width:100% !important;"/></figure></div>


<h2 class="wp-block-heading">You stay in control</h2>



<p>AI Assistant remains available while you try Air in your IDE. Over time, we expect Air to become the primary experience for agentic workflows in JetBrains IDEs.</p>



<p>As Air becomes a bigger part of JetBrains IDEs, the first question from many of you will be about control: Can I keep this off, and where does my code go?&nbsp;</p>



<p><strong>No agents? Nothing leaves your machine. </strong>Air is a tool window, not an AI provider, and it ships with no agents installed. It detects agents already on your machine, the way the IDE detects your terminal, but nothing runs, and no data leaves your machine until you sign in to an agent or a JetBrains AI plan. If your organization doesn&#8217;t allow agents, there&#8217;s nothing for Air to run and nothing to send.</p>



<p><strong>Your data goes to your provider, not to JetBrains. </strong>With a third-party subscription, data goes directly to that provider under the agreement you already have with them. It doesn&#8217;t pass through JetBrains. If you use JetBrains AI, the JetBrains AI Terms of Service apply, as is already the case with AI Assistant. Air adds no new data processing terms.</p>



<p><strong>You can turn it off. </strong>Disable the Air plugin, and nothing else changes.</p>



<h2 class="wp-block-heading" id="offer">Try it — with Free Junie Lite</h2>



<p>We believe we should provide some version of free AI in our IDEs, so we’re offering Junie Lite for free*. This is our coding agent with a cost efficient model for everyday tasks so you can experience Air without paying for anything.&nbsp;</p>



<p>Give Air a real task: Run agent sessions across multiple projects and tell us how it fits into your workflow. Share your feedback <a href="https://youtrack.jetbrains.com/newIssue?project=IJAI" target="_blank" rel="noopener">via YouTrack</a> so it lands in our teams’ backlog, or drop your thoughts in the comments below.<br><br>Install Air from <a href="https://plugins.jetbrains.com/plugin/33314-air-alpha" target="_blank" rel="noopener">JetBrains Marketplace</a>, via the notification in AI Assistant, or as part of the 2026.3 EAP builds of JetBrains IDEs, then connect the agents you already use, or use the ones available through JetBrains AI. If you install Air from the notification in AI Assistant, AI Assistant will be disabled to prevent both from running side by side. You can re-enable it at any time in <em>Settings | Plugins</em>, or reinstall it from Marketplace.</p>



<p><strong>*Applies to Junie Lite configuration, after signing in with your JetBrains Account. Terms and available models may change.</strong></p>



<h2 class="wp-block-heading">Frequently Asked Questions:&nbsp;</h2>



<p><strong>What is going to happen to AI Assistant?<br></strong>We believe Air is the future of agentic development in JetBrains IDEs, but AI Assistant will remain available and supported as a separate plugin you can install from the marketplace. <br><br><strong>Which agents and models are supported?<br></strong>Air supports Codex, Gemini, GitHub Copilot, Claude Agent, and Junie out of the box, and many others can be connected via ACP. You can use your own third-party subscriptions where possible, or use JetBrains AI.<br><br><strong>Can I use my Claude subscription? <br></strong>Yes, You can use your Claude subscription in Air&#8217;s terminal surface which opens as a full-screen IDE tab. <br><br><strong>Do I need a JetBrains AI subscription?<br></strong>You can use your JetBrains AI subscription, but it’s not mandatory. However, a JetBrains AI subscription is currently required for cloud runs and a JetBrains Account is required to access Junie Lite runs. </p>



<p></p>


    <div class="buttons">
        <div class="buttons__row">
                                                <a href="https://plugins.jetbrains.com/plugin/33314-air-alpha" class="btn " target="" rel="noopener">Try Air in Your IDE</a>
                                    </div>
    </div>







<p></p>
]]></content:encoded>
					
		
		
		                    <language>
                        <code><![CDATA[zh-hans]]></code>
                        <url>https://blog.jetbrains.com/zh-hans/ai/2026/10/air-in-ides-eap/</url>
                    </language>
                                    <language>
                        <code><![CDATA[pt-br]]></code>
                        <url>https://blog.jetbrains.com/pt-br/ai/2026/10/air-in-ides-eap/</url>
                    </language>
                                    <language>
                        <code><![CDATA[ko]]></code>
                        <url>https://blog.jetbrains.com/ko/ai/2026/10/air-in-ides-eap/</url>
                    </language>
                                    <language>
                        <code><![CDATA[ja]]></code>
                        <url>https://blog.jetbrains.com/ja/ai/2026/10/air-in-ides-eap/</url>
                    </language>
                                    <language>
                        <code><![CDATA[fr]]></code>
                        <url>https://blog.jetbrains.com/fr/ai/2026/10/air-in-ides-eap/</url>
                    </language>
                                    <language>
                        <code><![CDATA[es]]></code>
                        <url>https://blog.jetbrains.com/es/ai/2026/10/air-in-ides-eap/</url>
                    </language>
                                    <language>
                        <code><![CDATA[de]]></code>
                        <url>https://blog.jetbrains.com/de/ai/2026/10/air-in-ides-eap/</url>
                    </language>
                	</item>
	</channel>
</rss>
