{"id":2794,"name":"org.jetbrains.kotlin.plugin.serialization","ecosystem":"maven","repository_url":null,"issues_count":1862,"created_at":"2025-06-06T15:02:12.647Z","updated_at":"2025-06-06T15:02:12.647Z","purl":"pkg:maven/org.jetbrains.kotlin.plugin.serialization","unique_repositories_count":826,"unique_repositories_count_past_30_days":75,"recent_issues":[{"uuid":"5456107824","node_id":"PR_kwDOT8v_qc8AAAABDiIEkQ","number":53,"state":"open","title":"chore(deps): bump the gradle group across 1 directory with 11 updates","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-15T00:42:02.000Z","updated_at":"2026-09-15T00:43:51.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"gradle","update_count":11,"packages":[{"name":"org.jetbrains.kotlin:kotlin-gradle-plugin","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin:kotlin-test","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.compose","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.multiplatform","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.jvm","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.compose.runtime:runtime","old_version":"1.11.1","new_version":"1.12.0","repository_url":"https://github.com/JetBrains/compose-multiplatform"},{"name":"org.jetbrains.compose.ui:ui-test-junit4","old_version":"1.11.1","new_version":"1.12.0","repository_url":"https://github.com/JetBrains/compose-multiplatform"},{"name":"org.jetbrains.compose","old_version":"1.11.1","new_version":"1.12.0","repository_url":"https://github.com/JetBrains/compose-multiplatform"},{"name":"com.squareup.okio:okio-fakefilesystem","old_version":"3.18.1","new_version":"3.18.2","repository_url":"https://github.com/lysine-dev/okio"},{"name":"org.jetbrains.kotlinx.binary-compatibility-validator","old_version":"0.18.1","new_version":"0.18.2","repository_url":"https://github.com/Kotlin/binary-compatibility-validator"}],"path":null,"ecosystem":"maven"},"body":"Bumps the gradle group with 11 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [org.jetbrains.kotlin:kotlin-gradle-plugin](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin:kotlin-test](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.compose](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.multiplatform](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.jvm](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.serialization](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.compose.runtime:runtime](https://github.com/JetBrains/compose-multiplatform) | `1.11.1` | `1.12.0` |\n| [org.jetbrains.compose.ui:ui-test-junit4](https://github.com/JetBrains/compose-multiplatform) | `1.11.1` | `1.12.0` |\n| [org.jetbrains.compose](https://github.com/JetBrains/compose-multiplatform) | `1.11.1` | `1.12.0` |\n| [com.squareup.okio:okio-fakefilesystem](https://github.com/lysine-dev/okio) | `3.18.1` | `3.18.2` |\n| [org.jetbrains.kotlinx.binary-compatibility-validator](https://github.com/Kotlin/binary-compatibility-validator) | `0.18.1` | `0.18.2` |\n\n\nUpdates `org.jetbrains.kotlin:kotlin-gradle-plugin` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin:kotlin-gradle-plugin's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin:kotlin-gradle-plugin's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin:kotlin-test` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin:kotlin-test's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin:kotlin-test's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.plugin.compose` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.plugin.compose's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.plugin.compose's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.multiplatform` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.multiplatform's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.multiplatform's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.jvm` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.jvm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.jvm's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e Jv...\n\n_Description has been truncated_","html_url":"https://github.com/jdbenitez94/criollo-kmp-foundation/pull/53","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdbenitez94%2Fcriollo-kmp-foundation/issues/53","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/53/packages"},{"uuid":"5455688955","node_id":"PR_kwDOFyQuU88AAAABDhy5ug","number":71,"state":"open","title":"Bump the kotlin-dependencies group with 3 updates","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-14T23:35:42.000Z","updated_at":"2026-09-14T23:36:25.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"kotlin-dependencies","update_count":3,"packages":[{"name":"org.jetbrains.kotlin:kotlin-gradle-plugin","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.compose","old_version":"2.4.10","new_version":"2.4.20"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.4.10","new_version":"2.4.20"},{"name":"org.jetbrains.kotlin.plugin.compose","old_version":"2.4.10","new_version":"2.4.20"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.4.10","new_version":"2.4.20"}],"path":null,"ecosystem":"maven"},"body":"Bumps the kotlin-dependencies group with 3 updates: [org.jetbrains.kotlin:kotlin-gradle-plugin](https://github.com/JetBrains/kotlin), org.jetbrains.kotlin.plugin.compose and org.jetbrains.kotlin.plugin.serialization.\n\nUpdates `org.jetbrains.kotlin:kotlin-gradle-plugin` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin:kotlin-gradle-plugin's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin:kotlin-gradle-plugin's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.plugin.compose` from 2.4.10 to 2.4.20\n\nUpdates `org.jetbrains.kotlin.plugin.serialization` from 2.4.10 to 2.4.20\n\nUpdates `org.jetbrains.kotlin.plugin.compose` from 2.4.10 to 2.4.20\n\nUpdates `org.jetbrains.kotlin.plugin.serialization` from 2.4.10 to 2.4.20\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/OHoussein/CryptoApp/pull/71","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/OHoussein%2FCryptoApp/issues/71","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/71/packages"},{"uuid":"5455469512","node_id":"PR_kwDOS1M5gM8AAAABDhnm5Q","number":89,"state":"open","title":"chore(deps): bump the minor-and-patch group with 15 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-14T23:02:06.000Z","updated_at":"2026-09-14T23:02:13.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"minor-and-patch","update_count":15,"packages":[{"name":"androidx.compose:compose-bom","old_version":"2026.08.00","new_version":"2026.09.00"},{"name":"androidx.navigation:navigation-compose","old_version":"2.10.0","new_version":"2.10.1"},{"name":"com.google.firebase:firebase-bom","old_version":"34.18.0","new_version":"34.19.0"},{"name":"org.robolectric:robolectric","old_version":"4.16.1","new_version":"4.17","repository_url":"https://github.com/robolectric/robolectric"},{"name":"androidx.room:room-ktx","old_version":"2.8.4","new_version":"2.8.5"},{"name":"androidx.room:room-compiler","old_version":"2.8.4","new_version":"2.8.5"},{"name":"androidx.room:room-paging","old_version":"2.8.4","new_version":"2.8.5"},{"name":"androidx.room:room-testing","old_version":"2.8.4","new_version":"2.8.5"},{"name":"androidx.media3:media3-exoplayer","old_version":"1.11.0","new_version":"1.11.1","repository_url":"https://github.com/androidx/media"},{"name":"androidx.media3:media3-ui","old_version":"1.11.0","new_version":"1.11.1","repository_url":"https://github.com/androidx/media"},{"name":"androidx.media3:media3-session","old_version":"1.11.0","new_version":"1.11.1","repository_url":"https://github.com/androidx/media"},{"name":"org.jetbrains.kotlin.plugin.compose","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.android","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"com.google.devtools.ksp","old_version":"2.3.11","new_version":"2.3.12","repository_url":"https://github.com/google/ksp"}],"path":null,"ecosystem":"maven"},"body":"Bumps the minor-and-patch group with 15 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| androidx.compose:compose-bom | `2026.08.00` | `2026.09.00` |\n| androidx.navigation:navigation-compose | `2.10.0` | `2.10.1` |\n| com.google.firebase:firebase-bom | `34.18.0` | `34.19.0` |\n| [org.robolectric:robolectric](https://github.com/robolectric/robolectric) | `4.16.1` | `4.17` |\n| androidx.room:room-ktx | `2.8.4` | `2.8.5` |\n| androidx.room:room-compiler | `2.8.4` | `2.8.5` |\n| androidx.room:room-paging | `2.8.4` | `2.8.5` |\n| androidx.room:room-testing | `2.8.4` | `2.8.5` |\n| [androidx.media3:media3-exoplayer](https://github.com/androidx/media) | `1.11.0` | `1.11.1` |\n| [androidx.media3:media3-ui](https://github.com/androidx/media) | `1.11.0` | `1.11.1` |\n| [androidx.media3:media3-session](https://github.com/androidx/media) | `1.11.0` | `1.11.1` |\n| [org.jetbrains.kotlin.plugin.compose](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.serialization](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [com.google.devtools.ksp](https://github.com/google/ksp) | `2.3.11` | `2.3.12` |\n\nUpdates `androidx.compose:compose-bom` from 2026.08.00 to 2026.09.00\n\nUpdates `androidx.navigation:navigation-compose` from 2.10.0 to 2.10.1\n\nUpdates `com.google.firebase:firebase-bom` from 34.18.0 to 34.19.0\n\nUpdates `org.robolectric:robolectric` from 4.16.1 to 4.17\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/robolectric/robolectric/releases\"\u003eorg.robolectric:robolectric's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eRobolectric 4.17 supports SDK 37 and contains many other features and enhancements.\u003c/p\u003e\n\u003cp\u003ePlease note you may need to add jvmFlags configuration when using JDKs \u0026gt;= 17 at \u003ca href=\"https://robolectric.org/getting-started/\"\u003ehttps://robolectric.org/getting-started/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eIf you have any issues, please file them \u003ca href=\"https://github.com/robolectric/robolectric/issues\"\u003ehere\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cp\u003eAndroidVersions has been removed in favor of using android.os.Build constants\nShadowCameraCharacteristics.set(Key, Object) has been changed to set(Key, T), in order to correctly reflect type enforcement in the framework\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDisable httpclient tests in Github CI by \u003ca href=\"https://github.com/hoisie\"\u003e\u003ccode\u003e@​hoisie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10553\"\u003erobolectric/robolectric#10553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse Java 21 for CodeQL by \u003ca href=\"https://github.com/hoisie\"\u003e\u003ccode\u003e@​hoisie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10554\"\u003erobolectric/robolectric#10554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate roborazzi to v1.48.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10561\"\u003erobolectric/robolectric#10561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependency com.googlecode.libphonenumber:libphonenumber to v9.0.12 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10557\"\u003erobolectric/robolectric#10557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003eAndroidVersions\u003c/code\u003e Javadoc by \u003ca href=\"https://github.com/MGaetan89\"\u003e\u003ccode\u003e@​MGaetan89\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10556\"\u003erobolectric/robolectric#10556\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake Scheduler#size as unsupported on SDKs \u0026gt; Baklava. by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10564\"\u003erobolectric/robolectric#10564\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate shadows/httpclient to use prebuilt legacy http client for tests by \u003ca href=\"https://github.com/hoisie\"\u003e\u003ccode\u003e@​hoisie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10562\"\u003erobolectric/robolectric#10562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd shadow for getDeviceOwnerComponentOnAnyUser. by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10565\"\u003erobolectric/robolectric#10565\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd ShadowTelMan implementation of get/setPreferredOpportunisticDataSubscription by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10567\"\u003erobolectric/robolectric#10567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix UiModeManager contrast handling in in-development SDK. by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10568\"\u003erobolectric/robolectric#10568\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake all static fields emitted by Reflector volatile. by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10569\"\u003erobolectric/robolectric#10569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate listener logic of getProfileProxy to match actual behavior. by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10570\"\u003erobolectric/robolectric#10570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate mockito monorepo to v5.19.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10560\"\u003erobolectric/robolectric#10560\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate kotlin monorepo to v2.2.10 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10558\"\u003erobolectric/robolectric#10558\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix ShadowPausedLooper#poll when sync barrier is blocking the queue. by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10571\"\u003erobolectric/robolectric#10571\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003eShadowTelephonyManager\u003c/code\u003e to support \u003ccode\u003eupdateAvailalbeNetworks\u003c/code\u003e by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10574\"\u003erobolectric/robolectric#10574\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Android V (SDK 35) to build id 13954326 by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10575\"\u003erobolectric/robolectric#10575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix UserManager.isMainUser on in-development SDK. by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10576\"\u003erobolectric/robolectric#10576\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdds robolectric support for AccessibilityWindowInfo.get/setRegionInScreen(). by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10577\"\u003erobolectric/robolectric#10577\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused dependencies by \u003ca href=\"https://github.com/MGaetan89\"\u003e\u003ccode\u003e@​MGaetan89\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10566\"\u003erobolectric/robolectric#10566\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for mouse wheel scroll events to the simulator by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10578\"\u003erobolectric/robolectric#10578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Javadoc of {get,peek}NextStartedService to better reflect the actual implementation by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10585\"\u003erobolectric/robolectric#10585\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a script to generate a legacy http client bundle by \u003ca href=\"https://github.com/hoisie\"\u003e\u003ccode\u003e@​hoisie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10555\"\u003erobolectric/robolectric#10555\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd SurroundingTextCallback to ShadowAccessibilityInputConnection. by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10591\"\u003erobolectric/robolectric#10591\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdds setInformationElements() to WifiScanResultBuilder by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10593\"\u003erobolectric/robolectric#10593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd isWallpaperBackupEligible and getWallpaperFile with cropping by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10594\"\u003erobolectric/robolectric#10594\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMention Baklava support in the Readme by \u003ca href=\"https://github.com/MGaetan89\"\u003e\u003ccode\u003e@​MGaetan89\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10588\"\u003erobolectric/robolectric#10588\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix AccessibilityWindowInfoBuilderTest by \u003ca href=\"https://github.com/hoisie\"\u003e\u003ccode\u003e@​hoisie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10595\"\u003erobolectric/robolectric#10595\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused method in \u003ccode\u003eAndroidVersionInitTools\u003c/code\u003e by \u003ca href=\"https://github.com/MGaetan89\"\u003e\u003ccode\u003e@​MGaetan89\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10563\"\u003erobolectric/robolectric#10563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate roborazzi to v1.50.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10582\"\u003erobolectric/robolectric#10582\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate GitHub Actions to v5 (major) by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10583\"\u003erobolectric/robolectric#10583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Android Gradle Plugin by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10580\"\u003erobolectric/robolectric#10580\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependency com.googlecode.libphonenumber:libphonenumber to v9.0.13 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10596\"\u003erobolectric/robolectric#10596\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate AndroidX by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10559\"\u003erobolectric/robolectric#10559\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate a workflow to automate the sync of \u003ccode\u003egoogle\u003c/code\u003e into \u003ccode\u003emaster\u003c/code\u003e by \u003ca href=\"https://github.com/MGaetan89\"\u003e\u003ccode\u003e@​MGaetan89\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10339\"\u003erobolectric/robolectric#10339\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump toolchains in devcontainer's Dockerfile by \u003ca href=\"https://github.com/utzcoz\"\u003e\u003ccode\u003e@​utzcoz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10597\"\u003erobolectric/robolectric#10597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Robolectric icon for IDE by \u003ca href=\"https://github.com/utzcoz\"\u003e\u003ccode\u003e@​utzcoz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10598\"\u003erobolectric/robolectric#10598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeclare File? as type for toolsJar explicitly by \u003ca href=\"https://github.com/utzcoz\"\u003e\u003ccode\u003e@​utzcoz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10599\"\u003erobolectric/robolectric#10599\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisable parallel for aggregateDocs task temporarily by \u003ca href=\"https://github.com/utzcoz\"\u003e\u003ccode\u003e@​utzcoz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10600\"\u003erobolectric/robolectric#10600\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/robolectric/robolectric/commit/0706415db828e1bdcf4f0c820784fa760d0185a2\"\u003e\u003ccode\u003e0706415\u003c/code\u003e\u003c/a\u003e Bump version to 4.17.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/robolectric/robolectric/commit/f3c17bd2aeb66035ec3ece695f94ebc81588b79c\"\u003e\u003ccode\u003ef3c17bd\u003c/code\u003e\u003c/a\u003e Bump version to 4.17-beta-4.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/robolectric/robolectric/commit/04b84f6f3778743e27b4c82a5da488ddf2046d41\"\u003e\u003ccode\u003e04b84f6\u003c/code\u003e\u003c/a\u003e \u0026quot;fixed ResTable_package.SIZEOF value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/robolectric/robolectric/commit/f4ee543bf78a429be44ab914b045736ddfda58dc\"\u003e\u003ccode\u003ef4ee543\u003c/code\u003e\u003c/a\u003e Apply suggestion from \u003ca href=\"https://github.com/gemini-code-assist\"\u003e\u003ccode\u003e@​gemini-code-assist\u003c/code\u003e\u003c/a\u003e[bot]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/robolectric/robolectric/commit/fb99bfbcbcb9ca9c7fe3b3937df1afb0ac23c74d\"\u003e\u003ccode\u003efb99bfb\u003c/code\u003e\u003c/a\u003e Expose BouncyCastle BoM as api dependency\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/robolectric/robolectric/commit/a453192a93423d5c4f93f520609aed69d60572a1\"\u003e\u003ccode\u003ea453192\u003c/code\u003e\u003c/a\u003e Fix Javadoc for \u003ccode\u003eVersionCalculator\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/robolectric/robolectric/commit/6f268925237080530b7cdf9ff7a001cc138c1043\"\u003e\u003ccode\u003e6f26892\u003c/code\u003e\u003c/a\u003e Bump version to 4.17-beta-3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/robolectric/robolectric/commit/ceffe96a63b3565ac8337c334b770ef76db7a2f2\"\u003e\u003ccode\u003eceffe96\u003c/code\u003e\u003c/a\u003e Only adjust frameinfo timestamp values (including vsync).\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/robolectric/robolectric/commit/ea5879f7e3fc9d354833d73acd73f089388f42b9\"\u003e\u003ccode\u003eea5879f\u003c/code\u003e\u003c/a\u003e Add opt-in fix for stale screenshots on SDK 37.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/robolectric/robolectric/commit/8bea42181c6a1ecdd60ab50e502157ab4aed3f6d\"\u003e\u003ccode\u003e8bea421\u003c/code\u003e\u003c/a\u003e Fix jank log spam on SDK 37+ by translating FrameInfo timestamps.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/robolectric/robolectric/compare/robolectric-4.16.1...robolectric-4.17\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `androidx.room:room-ktx` from 2.8.4 to 2.8.5\n\nUpdates `androidx.room:room-compiler` from 2.8.4 to 2.8.5\n\nUpdates `androidx.room:room-paging` from 2.8.4 to 2.8.5\n\nUpdates `androidx.room:room-compiler` from 2.8.4 to 2.8.5\n\nUpdates `androidx.room:room-testing` from 2.8.4 to 2.8.5\n\nUpdates `androidx.room:room-paging` from 2.8.4 to 2.8.5\n\nUpdates `androidx.media3:media3-exoplayer` from 1.11.0 to 1.11.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/androidx/media/releases\"\u003eandroidx.media3:media3-exoplayer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.11.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExoPlayer:\n\u003cul\u003e\n\u003cli\u003eMove the flag to enable/disable HAGC metadata for progressive media from \u003ccode\u003eMediaSource.Factory\u003c/code\u003e to \u003ccode\u003eExtractorsFactory\u003c/code\u003e. The previous \u003ccode\u003esetExperimentalEnableHagcPlayback\u003c/code\u003e method is removed and replaced by \u003ccode\u003eExtractorsFactory.setParseHagcMetadata\u003c/code\u003e. This also resolves an issue where disabling didn't work for Matroska/WebM containers.\u003c/li\u003e\n\u003cli\u003eFix a playback stall caused when prewarming a non-transitioning secondary renderer.\u003c/li\u003e\n\u003cli\u003eFix pre-warming issue where the \u003ccode\u003eSurface\u003c/code\u003e should be returned to the primary renderer when a seek resets and disables both renderers.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eArrayIndexOutOfBoundsException\u003c/code\u003e when a live timeline refresh moves the default position past a server-side inserted ad that is currently being played (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3348\"\u003e#3348\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix a scrubbing mode issue where stale video frames could be briefly displayed when seeking with \u003ccode\u003eScrubbingModeParameters.allowSkippingMediaCodecFlush\u003c/code\u003e enabled.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eExtractors:\n\u003cul\u003e\n\u003cli\u003eMatroska: Fix issue where Tracks placed after clusters wouldn't result in a seekable timeline (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3377\"\u003e#3377\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAudio:\n\u003cul\u003e\n\u003cli\u003eFix buffer size calculation in \u003ccode\u003eSilenceSkippingAudioProcessor\u003c/code\u003e so that the minimum silence duration is not incorrectly scaled down by the frame size (\u003ca href=\"https://redirect.github.com/androidx/media/pull/3271\"\u003e#3271\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix 8-bit PCM handling in \u003ccode\u003ePcmAudioUtil\u003c/code\u003e to treat samples as unsigned as defined by Android (\u003ca href=\"https://redirect.github.com/androidx/media/pull/3271\"\u003e#3271\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix offload issue in which playback could stall during pre-roll or gapless transitions due to limited hardware buffer sizes.\u003c/li\u003e\n\u003cli\u003eFix bug in \u003ccode\u003eDefaultAudioSink\u003c/code\u003e where release count doesn't decrease when playback thread is no longer alive (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3338\"\u003e#3338\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eSession:\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eNullPointerException\u003c/code\u003e when an in-process \u003ccode\u003eMediaController\u003c/code\u003e is released from a \u003ccode\u003ePlayer.Listener\u003c/code\u003e callback (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3375\"\u003e#3375\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix deadlock on the main thread when a legacy \u003ccode\u003eMediaBrowser\u003c/code\u003e connects to a service returning an asynchronous result from \u003ccode\u003eonGetLibraryRoot()\u003c/code\u003e or \u003ccode\u003eonConnectAsync()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3393\"\u003e#3393\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eHLS extension:\n\u003cul\u003e\n\u003cli\u003eFix calculation of content resume offset when the target segment for snapping is not yet in the playlist (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3322\"\u003e#3322\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where a fully consumed \u003ccode\u003eHlsMediaChunk\u003c/code\u003e retries loading on receiving \u003ccode\u003eEOFException\u003c/code\u003e from the extractor (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3350\"\u003e#3350\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDASH extension:\n\u003cul\u003e\n\u003cli\u003eFix incorrect sample timestamp calculation for image tracks with a \u003ccode\u003epresentationTimeOffset\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3334\"\u003e#3334\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDecoder extensions (FFmpeg, VP9, AV1, etc.):\n\u003cul\u003e\n\u003cli\u003eOpus: Fix memory corruption when multiple \u003ccode\u003eOpusDecoder\u003c/code\u003e instances are initialized concurrently.\u003c/li\u003e\n\u003cli\u003eMPEG-H: Fix memory leak, truncation of non-ASCII characters, and potential native crash under low-memory conditions when sending commands to the \u003ccode\u003eMpeghUiManager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3365\"\u003e#3365\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/androidx/media/blob/release/RELEASENOTES.md\"\u003eandroidx.media3:media3-exoplayer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e1.11.1 (2026-09-10)\u003c/h3\u003e\n\u003cp\u003eThis release includes the following changes since the\n\u003ca href=\"https://github.com/androidx/media/blob/release/#1110-2026-08-05\"\u003e1.11.0 release\u003c/a\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eExoPlayer:\n\u003cul\u003e\n\u003cli\u003eMove the flag to enable/disable HAGC metadata for progressive media from\n\u003ccode\u003eMediaSource.Factory\u003c/code\u003e to \u003ccode\u003eExtractorsFactory\u003c/code\u003e. The previous\n\u003ccode\u003esetExperimentalEnableHagcPlayback\u003c/code\u003e method is removed and replaced by\n\u003ccode\u003eExtractorsFactory.setParseHagcMetadata\u003c/code\u003e. This also resolves an issue\nwhere disabling didn't work for Matroska/WebM containers.\u003c/li\u003e\n\u003cli\u003eFix a playback stall caused when prewarming a non-transitioning\nsecondary renderer.\u003c/li\u003e\n\u003cli\u003eFix pre-warming issue where the \u003ccode\u003eSurface\u003c/code\u003e should be returned to the\nprimary renderer when a seek resets and disables both renderers.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eArrayIndexOutOfBoundsException\u003c/code\u003e when a live timeline refresh moves\nthe default position past a server-side inserted ad that is currently\nbeing played (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3348\"\u003e#3348\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix a scrubbing mode issue where stale video frames could be briefly\ndisplayed when seeking with\n\u003ccode\u003eScrubbingModeParameters.allowSkippingMediaCodecFlush\u003c/code\u003e enabled.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eExtractors:\n\u003cul\u003e\n\u003cli\u003eMatroska: Fix issue where Tracks placed after clusters wouldn't result\nin a seekable timeline\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3377\"\u003e#3377\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAudio:\n\u003cul\u003e\n\u003cli\u003eFix buffer size calculation in \u003ccode\u003eSilenceSkippingAudioProcessor\u003c/code\u003e so that\nthe minimum silence duration is not incorrectly scaled down by the frame\nsize (\u003ca href=\"https://redirect.github.com/androidx/media/pull/3271\"\u003e#3271\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix 8-bit PCM handling in \u003ccode\u003ePcmAudioUtil\u003c/code\u003e to treat samples as unsigned as\ndefined by Android\n(\u003ca href=\"https://redirect.github.com/androidx/media/pull/3271\"\u003e#3271\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix offload issue in which playback could stall during pre-roll or\ngapless transitions due to limited hardware buffer sizes.\u003c/li\u003e\n\u003cli\u003eFix bug in \u003ccode\u003eDefaultAudioSink\u003c/code\u003e where release count doesn't decrease when\nplayback thread is no longer alive\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3338\"\u003e#3338\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eSession:\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eNullPointerException\u003c/code\u003e when an in-process \u003ccode\u003eMediaController\u003c/code\u003e is\nreleased from a \u003ccode\u003ePlayer.Listener\u003c/code\u003e callback\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3375\"\u003e#3375\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix deadlock on the main thread when a legacy \u003ccode\u003eMediaBrowser\u003c/code\u003e connects to\na service returning an asynchronous result from \u003ccode\u003eonGetLibraryRoot()\u003c/code\u003e or\n\u003ccode\u003eonConnectAsync()\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3393\"\u003e#3393\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eHLS extension:\n\u003cul\u003e\n\u003cli\u003eFix calculation of content resume offset when the target segment for\nsnapping is not yet in the playlist\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3322\"\u003e#3322\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where a fully consumed \u003ccode\u003eHlsMediaChunk\u003c/code\u003e retries loading on\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/8c6678b657ede1e7883fc164ef73ed483c7796c3\"\u003e\u003ccode\u003e8c6678b\u003c/code\u003e\u003c/a\u003e Bump version to 1.11.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/4b610b15d2b924e059e4f605ad912ff978e86e92\"\u003e\u003ccode\u003e4b610b1\u003c/code\u003e\u003c/a\u003e Update release notes for 1.11.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/e9757e6d11208d66d1ae020664dad2ce16a962ef\"\u003e\u003ccode\u003ee9757e6\u003c/code\u003e\u003c/a\u003e Fix deadlock when legacy MediaBrowser connects to async root or session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/9b8000d7eb57b347b2c40092b83a18c6a49173b2\"\u003e\u003ccode\u003e9b8000d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/androidx/media/issues/3271\"\u003e#3271\u003c/a\u003e from nift4:oddmath\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/6ada45cd1644582657afd0f0c750521f86a9e7b7\"\u003e\u003ccode\u003e6ada45c\u003c/code\u003e\u003c/a\u003e Add end-to-end test for ITU-T T.35 track muxing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/d23ba393a05c29244f9a184e7844411dc0dcd000\"\u003e\u003ccode\u003ed23ba39\u003c/code\u003e\u003c/a\u003e Normalize non-positive frame rates in MediaFormatUtil\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/383e770282f6ed31ffdea3362545282e4efc916b\"\u003e\u003ccode\u003e383e770\u003c/code\u003e\u003c/a\u003e Generalize useInputBuffer to useBuffer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/71e41121baddc80d2d175d4ce270d2cbe88f5aca\"\u003e\u003ccode\u003e71e4112\u003c/code\u003e\u003c/a\u003e MPEG-H: Fix UI manager command encoding and memory leak\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/eb2965ce41951e8f8437fba7a4dfc318585eb08a\"\u003e\u003ccode\u003eeb2965c\u003c/code\u003e\u003c/a\u003e Matroska: Fix seekable timeline with Tracks after Clusters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/a827bd5689d896868a10758a5caf19ce315a5741\"\u003e\u003ccode\u003ea827bd5\u003c/code\u003e\u003c/a\u003e Fix incorrect render of stale frames after a seek with skipped flush.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/androidx/media/compare/1.11.0...1.11.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `androidx.media3:media3-ui` from 1.11.0 to 1.11.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/androidx/media/releases\"\u003eandroidx.media3:media3-ui's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.11.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExoPlayer:\n\u003cul\u003e\n\u003cli\u003eMove the flag to enable/disable HAGC metadata for progressive media from \u003ccode\u003eMediaSource.Factory\u003c/code\u003e to \u003ccode\u003eExtractorsFactory\u003c/code\u003e. The previous \u003ccode\u003esetExperimentalEnableHagcPlayback\u003c/code\u003e method is removed and replaced by \u003ccode\u003eExtractorsFactory.setParseHagcMetadata\u003c/code\u003e. This also resolves an issue where disabling didn't work for Matroska/WebM containers.\u003c/li\u003e\n\u003cli\u003eFix a playback stall caused when prewarming a non-transitioning secondary renderer.\u003c/li\u003e\n\u003cli\u003eFix pre-warming issue where the \u003ccode\u003eSurface\u003c/code\u003e should be returned to the primary renderer when a seek resets and disables both renderers.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eArrayIndexOutOfBoundsException\u003c/code\u003e when a live timeline refresh moves the default position past a server-side inserted ad that is currently being played (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3348\"\u003e#3348\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix a scrubbing mode issue where stale video frames could be briefly displayed when seeking with \u003ccode\u003eScrubbingModeParameters.allowSkippingMediaCodecFlush\u003c/code\u003e enabled.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eExtractors:\n\u003cul\u003e\n\u003cli\u003eMatroska: Fix issue where Tracks placed after clusters wouldn't result in a seekable timeline (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3377\"\u003e#3377\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAudio:\n\u003cul\u003e\n\u003cli\u003eFix buffer size calculation in \u003ccode\u003eSilenceSkippingAudioProcessor\u003c/code\u003e so that the minimum silence duration is not incorrectly scaled down by the frame size (\u003ca href=\"https://redirect.github.com/androidx/media/pull/3271\"\u003e#3271\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix 8-bit PCM handling in \u003ccode\u003ePcmAudioUtil\u003c/code\u003e to treat samples as unsigned as defined by Android (\u003ca href=\"https://redirect.github.com/androidx/media/pull/3271\"\u003e#3271\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix offload issue in which playback could stall during pre-roll or gapless transitions due to limited hardware buffer sizes.\u003c/li\u003e\n\u003cli\u003eFix bug in \u003ccode\u003eDefaultAudioSink\u003c/code\u003e where release count doesn't decrease when playback thread is no longer alive (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3338\"\u003e#3338\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eSession:\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eNullPointerException\u003c/code\u003e when an in-process \u003ccode\u003eMediaController\u003c/code\u003e is released from a \u003ccode\u003ePlayer.Listener\u003c/code\u003e callback (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3375\"\u003e#3375\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix deadlock on the main thread when a legacy \u003ccode\u003eMediaBrowser\u003c/code\u003e connects to a service returning an asynchronous result from \u003ccode\u003eonGetLibraryRoot()\u003c/code\u003e or \u003ccode\u003eonConnectAsync()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3393\"\u003e#3393\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eHLS extension:\n\u003cul\u003e\n\u003cli\u003eFix calculation of content resume offset when the target segment for snapping is not yet in the playlist (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3322\"\u003e#3322\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where a fully consumed \u003ccode\u003eHlsMediaChunk\u003c/code\u003e retries loading on receiving \u003ccode\u003eEOFException\u003c/code\u003e from the extractor (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3350\"\u003e#3350\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDASH extension:\n\u003cul\u003e\n\u003cli\u003eFix incorrect sample timestamp calculation for image tracks with a \u003ccode\u003epresentationTimeOffset\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3334\"\u003e#3334\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDecoder extensions (FFmpeg, VP9, AV1, etc.):\n\u003cul\u003e\n\u003cli\u003eOpus: Fix memory corruption when multiple \u003ccode\u003eOpusDecoder\u003c/code\u003e instances are initialized concurrently.\u003c/li\u003e\n\u003cli\u003eMPEG-H: Fix memory leak, truncation of non-ASCII characters, and potential native crash under low-memory conditions when sending commands to the \u003ccode\u003eMpeghUiManager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3365\"\u003e#3365\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/androidx/media/blob/release/RELEASENOTES.md\"\u003eandroidx.media3:media3-ui's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e1.11.1 (2026-09-10)\u003c/h3\u003e\n\u003cp\u003eThis release includes the following changes since the\n\u003ca href=\"https://github.com/androidx/media/blob/release/#1110-2026-08-05\"\u003e1.11.0 release\u003c/a\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eExoPlayer:\n\u003cul\u003e\n\u003cli\u003eMove the flag to enable/disable HAGC metadata for progressive media from\n\u003ccode\u003eMediaSource.Factory\u003c/code\u003e to \u003ccode\u003eExtractorsFactory\u003c/code\u003e. The previous\n\u003ccode\u003esetExperimentalEnableHagcPlayback\u003c/code\u003e method is removed and replaced by\n\u003ccode\u003eExtractorsFactory.setParseHagcMetadata\u003c/code\u003e. This also resolves an issue\nwhere disabling didn't work for Matroska/WebM containers.\u003c/li\u003e\n\u003cli\u003eFix a playback stall caused when prewarming a non-transitioning\nsecondary renderer.\u003c/li\u003e\n\u003cli\u003eFix pre-warming issue where the \u003ccode\u003eSurface\u003c/code\u003e should be returned to the\nprimary renderer when a seek resets and disables both renderers.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eArrayIndexOutOfBoundsException\u003c/code\u003e when a live timeline refresh moves\nthe default position past a server-side inserted ad that is currently\nbeing played (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3348\"\u003e#3348\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix a scrubbing mode issue where stale video frames could be briefly\ndisplayed when seeking with\n\u003ccode\u003eScrubbingModeParameters.allowSkippingMediaCodecFlush\u003c/code\u003e enabled.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eExtractors:\n\u003cul\u003e\n\u003cli\u003eMatroska: Fix issue where Tracks placed after clusters wouldn't result\nin a seekable timeline\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3377\"\u003e#3377\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAudio:\n\u003cul\u003e\n\u003cli\u003eFix buffer size calculation in \u003ccode\u003eSilenceSkippingAudioProcessor\u003c/code\u003e so that\nthe minimum silence duration is not incorrectly scaled down by the frame\nsize (\u003ca href=\"https://redirect.github.com/androidx/media/pull/3271\"\u003e#3271\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix 8-bit PCM handling in \u003ccode\u003ePcmAudioUtil\u003c/code\u003e to treat samples as unsigned as\ndefined by Android\n(\u003ca href=\"https://redirect.github.com/androidx/media/pull/3271\"\u003e#3271\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix offload issue in which playback could stall during pre-roll or\ngapless transitions due to limited hardware buffer sizes.\u003c/li\u003e\n\u003cli\u003eFix bug in \u003ccode\u003eDefaultAudioSink\u003c/code\u003e where release count doesn't decrease when\nplayback thread is no longer alive\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3338\"\u003e#3338\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eSession:\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eNullPointerException\u003c/code\u003e when an in-process \u003ccode\u003eMediaController\u003c/code\u003e is\nreleased from a \u003ccode\u003ePlayer.Listener\u003c/code\u003e callback\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3375\"\u003e#3375\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix deadlock on the main thread when a legacy \u003ccode\u003eMediaBrowser\u003c/code\u003e connects to\na service returning an asynchronous result from \u003ccode\u003eonGetLibraryRoot()\u003c/code\u003e or\n\u003ccode\u003eonConnectAsync()\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3393\"\u003e#3393\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eHLS extension:\n\u003cul\u003e\n\u003cli\u003eFix calculation of content resume offset when the target segment for\nsnapping is not yet in the playlist\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3322\"\u003e#3322\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where a fully consumed \u003ccode\u003eHlsMediaChunk\u003c/code\u003e retries loading on\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/8c6678b657ede1e7883fc164ef73ed483c7796c3\"\u003e\u003ccode\u003e8c6678b\u003c/code\u003e\u003c/a\u003e Bump version to 1.11.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/4b610b15d2b924e059e4f605ad912ff978e86e92\"\u003e\u003ccode\u003e4b610b1\u003c/code\u003e\u003c/a\u003e Update release notes for 1.11.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/e9757e6d11208d66d1ae020664dad2ce16a962ef\"\u003e\u003ccode\u003ee9757e6\u003c/code\u003e\u003c/a\u003e Fix deadlock when legacy MediaBrowser connects to async root or session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/9b8000d7eb57b347b2c40092b83a18c6a49173b2\"\u003e\u003ccode\u003e9b8000d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/androidx/media/issues/3271\"\u003e#3271\u003c/a\u003e from nift4:oddmath\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/6ada45cd1644582657afd0f0c750521f86a9e7b7\"\u003e\u003ccode\u003e6ada45c\u003c/code\u003e\u003c/a\u003e Add end-to-end test for ITU-T T.35 track muxing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/d23ba393a05c29244f9a184e7844411dc0dcd000\"\u003e\u003ccode\u003ed23ba39\u003c/code\u003e\u003c/a\u003e Normalize non-positive frame rates in MediaFormatUtil\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/383e770282f6ed31ffdea3362545282e4efc916b\"\u003e\u003ccode\u003e383e770\u003c/code\u003e\u003c/a\u003e Generalize useInputBuffer to useBuffer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/71e41121baddc80d2d175d4ce270d2cbe88f5aca\"\u003e\u003ccode\u003e71e4112\u003c/code\u003e\u003c/a\u003e MPEG-H: Fix UI manager command encoding and memory leak\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/eb2965ce41951e8f8437fba7a4dfc318585eb08a\"\u003e\u003ccode\u003eeb2965c\u003c/code\u003e\u003c/a\u003e Matroska: Fix seekable timeline with Tracks after Clusters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/a827bd5689d896868a10758a5caf19ce315a5741\"\u003e\u003ccode\u003ea827bd5\u003c/code\u003e\u003c/a\u003e Fix incorrect render of stale frames after a seek with skipped flush.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/androidx/media/compare/1.11.0...1.11.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `androidx.media3:media3-session` from 1.11.0 to 1.11.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/androidx/media/releases\"\u003eandroidx.media3:media3-session's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.11.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExoPlayer:\n\u003cul\u003e\n\u003cli\u003eMove the flag to enable/disable HAGC metadata for progressive media from \u003ccode\u003eMediaSource.Factory\u003c/code\u003e to \u003ccode\u003eExtractorsFactory\u003c/code\u003e. The previous \u003ccode\u003esetExperimentalEnableHagcPlayback\u003c/code\u003e method is removed and replaced by \u003ccode\u003eExtractorsFactory.setParseHagcMetadata\u003c/code\u003e. This also resolves an issue where disabling didn't work for Matroska/WebM containers.\u003c/li\u003e\n\u003cli\u003eFix a playback stall caused when prewarming a non-transitioning secondary renderer.\u003c/li\u003e\n\u003cli\u003eFix pre-warming issue where the \u003ccode\u003eSurface\u003c/code\u003e should be returned to the primary renderer when a seek resets and disables both renderers.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eArrayIndexOutOfBoundsException\u003c/code\u003e when a live timeline refresh moves the default position past a server-side inserted ad that is currently being played (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3348\"\u003e#3348\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix a scrubbing mode issue where stale video frames could be briefly displayed when seeking with \u003ccode\u003eScrubbingModeParameters.allowSkippingMediaCodecFlush\u003c/code\u003e enabled.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eExtractors:\n\u003cul\u003e\n\u003cli\u003eMatroska: Fix issue where Tracks placed after clusters wouldn't result in a seekable timeline (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3377\"\u003e#3377\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAudio:\n\u003cul\u003e\n\u003cli\u003eFix buffer size calculation in \u003ccode\u003eSilenceSkippingAudioProcessor\u003c/code\u003e so that the minimum silence duration is not incorrectly scaled down by the frame size (\u003ca href=\"https://redirect.github.com/androidx/media/pull/3271\"\u003e#3271\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix 8-bit PCM handling in \u003ccode\u003ePcmAudioUtil\u003c/code\u003e to treat samples as unsigned as defined by Android (\u003ca href=\"https://redirect.github.com/androidx/media/pull/3271\"\u003e#3271\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix offload issue in which playback could stall during pre-roll or gapless transitions due to limited hardware buffer sizes.\u003c/li\u003e\n\u003cli\u003eFix bug in \u003ccode\u003eDefaultAudioSink\u003c/code\u003e where release count doesn't decrease when playback thread is no longer alive (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3338\"\u003e#3338\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eSession:\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eNullPointerException\u003c/code\u003e when an in-process \u003ccode\u003eMediaController\u003c/code\u003e is released from a \u003ccode\u003ePlayer.Listener\u003c/code\u003e callback (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3375\"\u003e#3375\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix deadlock on the main thread when a legacy \u003ccode\u003eMediaBrowser\u003c/code\u003e connects to a service returning an asynchronous result from \u003ccode\u003eonGetLibraryRoot()\u003c/code\u003e or \u003ccode\u003eonConnectAsync()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3393\"\u003e#3393\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eHLS extension:\n\u003cul\u003e\n\u003cli\u003eFix calculation of content resume offset when the target segment for snapping is not yet in the playlist (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3322\"\u003e#3322\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where a fully consumed \u003ccode\u003eHlsMediaChunk\u003c/code\u003e retries loading on receiving \u003ccode\u003eEOFException\u003c/code\u003e from the extractor (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3350\"\u003e#3350\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDASH extension:\n\u003cul\u003e\n\u003cli\u003eFix incorrect sample timestamp calculation for image tracks with a \u003ccode\u003epresentationTimeOffset\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3334\"\u003e#3334\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDecoder extensions (FFmpeg, VP9, AV1, etc.):\n\u003cul\u003e\n\u003cli\u003eOpus: Fix memory corruption when multiple \u003ccode\u003eOpusDecoder\u003c/code\u003e instances are initialized concurrently.\u003c/li\u003e\n\u003cli\u003eMPEG-H: Fix memory leak, truncation of non-ASCII characters, and potential native crash under low-memory conditions when sending commands to the \u003ccode\u003eMpeghUiManager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3365\"\u003e#3365\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/androidx/media/blob/release/RELEASENOTES.md\"\u003eandroidx.media3:media3-session's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e1.11.1 (2026-09-10)\u003c/h3\u003e\n\u003cp\u003eThis release includes the following changes since the\n\u003ca href=\"https://github.com/androidx/media/blob/release/#1110-2026-08-05\"\u003e1.11.0 release\u003c/a\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eExoPlayer:\n\u003cul\u003e\n\u003cli\u003eMove the flag to enable/disable HAGC metadata for progressive media from\n\u003ccode\u003eMediaSource.Factory\u003c/code\u003e to \u003ccode\u003eExtractorsFactory\u003c/code\u003e. The previous\n\u003ccode\u003esetExperimentalEnableHagcPlayback\u003c/code\u003e method is removed and replaced by\n\u003ccode\u003eExtractorsFactory.setParseHagcMetadata\u003c/code\u003e. This also resolves an issue\nwhere disabling didn't work for Matroska/WebM containers.\u003c/li\u003e\n\u003cli\u003eFix a playback stall caused when prewarming a non-transitioning\nsecondary renderer.\u003c/li\u003e\n\u003cli\u003eFix pre-warming issue where the \u003ccode\u003eSurface\u003c/code\u003e should be returned to the\nprimary renderer when a seek resets and disables both renderers.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eArrayIndexOutOfBoundsException\u003c/code\u003e when a live timeline refresh moves\nthe default position past a server-side inserted ad that is currently\nbeing played (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3348\"\u003e#3348\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix a scrubbing mode issue where stale video frames could be briefly\ndisplayed when seeking with\n\u003ccode\u003eScrubbingModeParameters.allowSkippingMediaCodecFlush\u003c/code\u003e enabled.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eExtractors:\n\u003cul\u003e\n\u003cli\u003eMatroska: Fix issue where Tracks placed after clusters wouldn't result\nin a seekable timeline\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3377\"\u003e#3377\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAudio:\n\u003cul\u003e\n\u003cli\u003eFix buffer size calculation in \u003ccode\u003eSilenceSkippingAudioProcessor\u003c/code\u003e so that\nthe minimum silence duration is not incorrectly scaled down by the frame\nsize (\u003ca href=\"https://redirect.github.com/androidx/media/pull/3271\"\u003e#3271\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix 8-bit PCM handling in \u003ccode\u003ePcmAudioUtil\u003c/code\u003e to treat samples as unsigned as\ndefined by Android\n(\u003ca href=\"https://redirect.github.com/androidx/media/pull/3271\"\u003e#3271\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix offload issue in which playback could stall during pre-roll or\ngapless transitions due to limited hardware buffer sizes.\u003c/li\u003e\n\u003cli\u003eFix bug in \u003ccode\u003eDefaultAudioSink\u003c/code\u003e where release count doesn't decrease when\nplayback thread is no longer alive\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3338\"\u003e#3338\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eSession:\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eNullPointerException\u003c/code\u003e when an in-process \u003ccode\u003eMediaController\u003c/code\u003e is\nreleased from a \u003ccode\u003ePlayer.Listener\u003c/code\u003e callback\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3375\"\u003e#3375\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix deadlock on the main thread when a legacy \u003ccode\u003eMediaBrowser\u003c/code\u003e connects to\na service returning an asynchronous result from \u003ccode\u003eonGetLibraryRoot()\u003c/code\u003e or\n\u003ccode\u003eonConnectAsync()\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3393\"\u003e#3393\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eHLS extension:\n\u003cul\u003e\n\u003cli\u003eFix calculation of content resume offset when the target segment for\nsnapping is not yet in the playlist\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3322\"\u003e#3322\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where a fully consumed \u003ccode\u003eHlsMediaChunk\u003c/code\u003e retries loading on\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/8c6678b657ede1e7883fc164ef73ed483c7796c3\"\u003e\u003ccode\u003e8c6678b\u003c/code\u003e\u003c/a\u003e Bump version to 1.11.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/4b610b15d2b924e059e4f605ad912ff978e86e92\"\u003e\u003ccode\u003e4b610b1\u003c/code\u003e\u003c/a\u003e Update release notes for 1.11.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/e9757e6d11208d66d1ae020664dad2ce16a962ef\"\u003e\u003ccode\u003ee9757e6\u003c/code\u003e\u003c/a\u003e Fix deadlock when legacy MediaBrowser connects to async root or session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/9b8000d7eb57b347b2c40092b83a18c6a49173b2\"\u003e\u003ccode\u003e9b8000d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/androidx/media/issues/3271\"\u003e#3271\u003c/a\u003e from nift4:oddmath\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/6ada45cd1644582657afd0f0c750521f86a9e7b7\"\u003e\u003ccode\u003e6ada45c\u003c/code\u003e\u003c/a\u003e Add end-to-end test for ITU-T T.35 track muxing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/d23ba393a05c29244f9a184e7844411dc0dcd000\"\u003e\u003ccode\u003ed23ba39\u003c/code\u003e\u003c/a\u003e Normalize non-positive frame rates in MediaFormatUtil\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/383e770282f6ed31ffdea3362545282e4efc916b\"\u003e\u003ccode\u003e383e770\u003c/code\u003e\u003c/a\u003e Generalize useInputBuffer to useBuffer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/71e41121baddc80d2d175d4ce270d2cbe88f5aca\"\u003e\u003ccode\u003e71e4112\u003c/code\u003e\u003c/a\u003e MPEG-H: Fix UI manager command encoding and memory leak\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/eb2965ce41951e8f8437fba7a4dfc318585eb08a\"\u003e\u003ccode\u003eeb2965c\u003c/code\u003e\u003c/a\u003e Matroska: Fix seekable timeline with Tracks after Clusters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/a827bd5689d896868a10758a5caf19ce315a5741\"\u003e\u003ccode\u003ea827bd5\u003c/code\u003e\u003c/a\u003e Fix incorrect render of stale frames after a seek with skipped flush.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/androidx/media/compare/1.11.0...1.11.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `androidx.media3:media3-ui` from 1.11.0 to 1.11.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/androidx/media/releases\"\u003eandroidx.media3:media3-ui's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.11.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExoPlayer:\n\u003cul\u003e\n\u003cli\u003eMove the flag to enable/disable HAGC metadata for progressive media from \u003ccode\u003eMediaSource.Factory\u003c/code\u003e to \u003ccode\u003eExtractorsFactory\u003c/code\u003e. The previous \u003ccode\u003esetExperimentalEnableHagcPlayback\u003c/code\u003e method is removed and replaced by \u003ccode\u003eExtractorsFactory.setParseHagcMetadata\u003c/code\u003e. This also resolves an issue where disabling didn't work for Matroska/WebM containers.\u003c/li\u003e\n\u003cli\u003eFix a playback stall caused when prewarming a non-transitioning secondary renderer.\u003c/li\u003e\n\u003cli\u003eFix pre-warming issue where the \u003ccode\u003eSurface\u003c/code\u003e should be returned to the primary renderer when a seek resets and disables both renderers.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eArrayIndexOutOfBoundsException\u003c/code\u003e when a live timeline refresh moves the default position past a server-side inserted ad that is currently being played (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3348\"\u003e#3348\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix a scrubbing mode issue where stale video frames could be briefly displayed when seeking with \u003ccode\u003eScrubbingModeParameters.allowSkippingMediaCodecFlush\u003c/code\u003e enabled.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eExtractors:\n\u003cul\u003e\n\u003cli\u003eMatroska: Fix issue where Tracks placed after clusters wouldn't result in a seekable timeline (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3377\"\u003e#3377\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAudio:\n\u003cul\u003e\n\u003cli\u003eFix buffer size calculation in \u003ccode\u003eSilenceSkippingAudioProcessor\u003c/code\u003e so that the minimum silence duration is not incorrectly scaled down by the frame size (\u003ca href=\"https://redirect.github.com/androidx/media/pull/3271\"\u003e#3271\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix 8-bit PCM handling in \u003ccode\u003ePcmAudioUtil\u003c/code\u003e to treat samples as unsigned as defined by Android (\u003ca href=\"https://redirect.github.com/androidx/media/pull/3271\"\u003e#3271\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix offload issue in which playback could stall during pre-roll or gapless transitions due to limited hardware buffer sizes.\u003c/li\u003e\n\u003cli\u003eFix bug in \u003ccode\u003eDefaultAudioSink\u003c/code\u003e where release count doesn't decrease when playback thread is no longer alive (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3338\"\u003e#3338\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eSession:\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eNullPointerException\u003c/code\u003e when an in-process \u003ccode\u003eMediaController\u003c/code\u003e is released from a \u003ccode\u003ePlayer.Listener\u003c/code\u003e callback (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3375\"\u003e#3375\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix deadlock on the main thread when a legacy \u003ccode\u003eMediaBrowser\u003c/code\u003e connects to a service returning an asynchronous result from \u003ccode\u003eonGetLibraryRoot()\u003c/code\u003e or \u003ccode\u003eonConnectAsync()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3393\"\u003e#3393\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eHLS extension:\n\u003cul\u003e\n\u003cli\u003eFix calculation of content resume offset when the target segment for snapping is not yet in the playlist (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3322\"\u003e#3322\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where a fully consumed \u003ccode\u003eHlsMediaChunk\u003c/code\u003e retries loading on receiving \u003ccode\u003eEOFException\u003c/code\u003e from the extractor (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3350\"\u003e#3350\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDASH extension:\n\u003cul\u003e\n\u003cli\u003eFix incorrect sample timestamp calculation for image tracks with a \u003ccode\u003epresentationTimeOffset\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3334\"\u003e#3334\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDecoder extensions (FFmpeg, VP9, AV1, etc.):\n\u003cul\u003e\n\u003cli\u003eOpus: Fix memory corruption when multiple \u003ccode\u003eOpusDecoder\u003c/code\u003e instances are initialized concurrently.\u003c/li\u003e\n\u003cli\u003eMPEG-H: Fix memory leak, truncation of non-ASCII characters, and potential native crash under low-memory conditions when sending commands to the \u003ccode\u003eMpeghUiManager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3365\"\u003e#3365\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/androidx/media/blob/release/RELEASENOTES.md\"\u003eandroidx.media3:media3-ui's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e1.11.1 (2026-09-10)\u003c/h3\u003e\n\u003cp\u003eThis release includes the following changes since the\n\u003ca href=\"https://github.com/androidx/media/blob/release/#1110-2026-08-05\"\u003e1.11.0 release\u003c/a\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eExoPlayer:\n\u003cul\u003e\n\u003cli\u003eMove the flag to enable/disable HAGC metadata for progressive media from\n\u003ccode\u003eMediaSource.Factory\u003c/code\u003e to \u003ccode\u003eExtractorsFactory\u003c/code\u003e. The previous\n\u003ccode\u003esetExperimentalEnableHagcPlayback\u003c/code\u003e method is removed and replaced by\n\u003ccode\u003eExtractorsFactory.setParseHagcMetadata\u003c/code\u003e. This also resolves an issue\nwhere disabling didn't work for Matroska/WebM containers.\u003c/li\u003e\n\u003cli\u003eFix a playback stall caused when prewarming a non-transitioning\nsecondary renderer.\u003c/li\u003e\n\u003cli\u003eFix pre-warming issue where the \u003ccode\u003eSurface\u003c/code\u003e should be returned to the\nprimary renderer when a seek resets and disables both renderers.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eArrayIndexOutOfBoundsException\u003c/code\u003e when a live timeline refresh moves\nthe default position past a server-side inserted ad that is currently\nbeing played (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3348\"\u003e#3348\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix a scrubbing mode issue where stale video frames could be briefly\ndisplayed when seeking with\n\u003ccode\u003eScrubbingModeParameters.allowSkippingMediaCodecFlush\u003c/code\u003e enabled.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eExtractors:\n\u003cul\u003e\n\u003cli\u003eMatroska: Fix issue where Tracks placed after clusters wouldn't result\nin a seekable timeline\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3377\"\u003e#3377\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAudio:\n\u003cul\u003e\n\u003cli\u003eFix buffer size calculation in \u003ccode\u003eSilenceSkippingAudioProcessor\u003c/code\u003e so that\nthe minimum silence duration is not incorrectly scaled down by the frame\nsize (\u003ca href=\"https://redirect.github.com/androidx/media/pull/3271\"\u003e#3271\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix 8-bit PCM handling in \u003ccode\u003ePcmAudioUtil\u003c/code\u003e to treat samples as unsigned as\ndefined by Android\n(\u003ca href=\"https://redirect.github.com/androidx/media/pull/3271\"\u003e#3271\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix offload issue in which playback could stall during pre-roll or\ngapless transitions due to limited hardware buffer sizes.\u003c/li\u003e\n\u003cli\u003eFix bug in \u003ccode\u003eDefaultAudioSink\u003c/code\u003e where release count doesn't decrease when\nplayback thread is no longer alive\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3338\"\u003e#3338\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eSession:\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eNullPointerException\u003c/code\u003e when an in-process \u003ccode\u003eMediaController\u003c/code\u003e is\nreleased from a \u003ccode\u003ePlayer.Listener\u003c/code\u003e callback\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3375\"\u003e#3375\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix deadlock on the main thread when a legacy \u003ccode\u003eMediaBrowser\u003c/code\u003e connects to\na service returning an asynchronous result from \u003ccode\u003eonGetLibraryRoot()\u003c/code\u003e or\n\u003ccode\u003eonConnectAsync()\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3393\"\u003e#3393\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eHLS extension:\n\u003cul\u003e\n\u003cli\u003eFix calculation of content resume offset when the target segment for\nsnapping is not yet in the playlist\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3322\"\u003e#3322\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where a fully consumed \u003ccode\u003eHlsMediaChunk\u003c/code\u003e retries loading on\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/8c6678b657ede1e7883fc164ef73ed483c7796c3\"\u003e\u003ccode\u003e8c6678b\u003c/code\u003e\u003c/a\u003e Bump version to 1.11.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/4b610b15d2b924e059e4f605ad912ff978e86e92\"\u003e\u003ccode\u003e4b610b1\u003c/code\u003e\u003c/a\u003e Update release notes for 1.11.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/e9757e6d11208d66d1ae020664dad2ce16a962ef\"\u003e\u003ccode\u003ee9757e6\u003c/code\u003e\u003c/a\u003e Fix deadlock when legacy MediaBrowser connects to async root or session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/9b8000d7eb57b347b2c40092b83a18c6a49173b2\"\u003e\u003ccode\u003e9b8000d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/androidx/media/issues/3271\"\u003e#3271\u003c/a\u003e from nift4:oddmath\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/6ada45cd1644582657afd0f0c750521f86a9e7b7\"\u003e\u003ccode\u003e6ada45c\u003c/code\u003e\u003c/a\u003e Add end-to-end test for ITU-T T.35 track muxing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/d23ba393a05c29244f9a184e7844411dc0dcd000\"\u003e\u003ccode\u003ed23ba39\u003c/code\u003e\u003c/a\u003e Normalize non-positive frame rates in MediaFormatUtil\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/383e770282f6ed31ffdea3362545282e4efc916b\"\u003e\u003ccode\u003e383e770\u003c/code\u003e\u003c/a\u003e Generalize useInputBuffer to useBuffer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/71e41121baddc80d2d175d4ce270d2cbe88f5aca\"\u003e\u003ccode\u003e71e4112\u003c/code\u003e\u003c/a\u003e MPEG-H: Fix UI manager command encoding and memory leak\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/eb2965ce41951e8f8437fba7a4dfc318585eb08a\"\u003e\u003ccode\u003eeb2965c\u003c/code\u003e\u003c/a\u003e Matroska: Fix seekable timeline with Tracks after Clusters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/a827bd5689d896868a10758a5caf19ce315a5741\"\u003e\u003ccode\u003ea827bd5\u003c/code\u003e\u003c/a\u003e Fix incorrect render of stale frames after a seek with skipped flush.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/androidx/media/compare/1.11.0...1.11.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `androidx.media3:media3-session` from 1.11.0 to 1.11.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/androidx/media/releases\"\u003eandroidx.media3:media3-session's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.11.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExoPlayer:\n\u003cul\u003e\n\u003cli\u003eMove the flag to enable/disable HAGC metadata for progressive media from \u003ccode\u003eMediaSource.Factory\u003c/code\u003e to \u003ccode\u003eExtractorsFactory\u003c/code\u003e. The previous \u003ccode\u003esetExperimentalEnableHagcPlayback\u003c/code\u003e method is removed and replaced by \u003ccode\u003eExtractorsFactory.setParseHagcMetadata\u003c/code\u003e. This also resolves an issue where disabling didn't work for Matroska/WebM containers.\u003c/li\u003e\n\u003cli\u003eFix a playback stall caused when prewarming a non-transitioning secondary renderer.\u003c/li\u003e\n\u003cli\u003eFix pre-warming issue where the \u003ccode\u003eSurface\u003c/code\u003e should be returned to the primary renderer when a seek resets and disables both renderers.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eArrayIndexOutOfBoundsException\u003c/code\u003e when a live timeline refresh moves the default position past a server-side inserted ad that is currently being played (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3348\"\u003e#3348\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix a scrubbing mode issue where stale video frames could be briefly displayed when seeking with \u003ccode\u003eScrubbingModeParameters.allowSkippingMediaCodecFlush\u003c/code\u003e enabled.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eExtractors:\n\u003cul\u003e\n\u003cli\u003eMatroska: Fix issue where Tracks placed after clusters wouldn't result in a seekable timeline (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3377\"\u003e#3377\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAudio:\n\u003cul\u003e\n\u003cli\u003eFix buffer size calculation in \u003ccode\u003eSilenceSkippingAudioProcessor\u003c/code\u003e so that the minimum silence duration is not incorrectly scaled down by the frame size (\u003ca href=\"https://redirect.github.com/androidx/media/pull/3271\"\u003e#3271\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix 8-bit PCM handling in \u003ccode\u003ePcmAudioUtil\u003c/code\u003e to treat samples as unsigned as defined by Android (\u003ca href=\"https://redirect.github.com/androidx/media/pull/3271\"\u003e#3271\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix offload issue in which playback could stall during pre-roll or gapless transitions due to limited hardware buffer sizes.\u003c/li\u003e\n\u003cli\u003eFix bug in \u003ccode\u003eDefaultAudioSink\u003c/code\u003e where release count doesn't decrease when playback thread is no longer alive (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3338\"\u003e#3338\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eSession:\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eNullPointerException\u003c/code\u003e when an in-process \u003ccode\u003eMediaController\u003c/code\u003e is released from a \u003ccode\u003ePlayer.Listener\u003c/code\u003e callback (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3375\"\u003e#3375\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix deadlock on the main thread when a legacy \u003ccode\u003eMediaBrowser\u003c/code\u003e connects to a service returning an asynchronous result from \u003ccode\u003eonGetLibraryRoot()\u003c/code\u003e or \u003ccode\u003eonConnectAsync()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3393\"\u003e#3393\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eHLS extension:\n\u003cul\u003e\n\u003cli\u003eFix calculation of content resume offset when the target segment for snapping is not yet in the playlist (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3322\"\u003e#3322\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where a fully consumed \u003ccode\u003eHlsMediaChunk\u003c/code\u003e retries loading on receiving \u003ccode\u003eEOFException\u003c/code\u003e from the extractor (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3350\"\u003e#3350\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDASH extension:\n\u003cul\u003e\n\u003cli\u003eFix incorrect sample timestamp calculation for image tracks with a \u003ccode\u003epresentationTimeOffset\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3334\"\u003e#3334\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDecoder extensions (FFmpeg, VP9, AV1, etc.):\n\u003cul\u003e\n\u003cli\u003eOpus: Fix memory corruption when multiple \u003ccode\u003eOpusDecoder\u003c/code\u003e instances are initialized concurrently.\u003c/li\u003e\n\u003cli\u003eMPEG-H: Fix memory leak, truncation of non-ASCII characters, and potential native crash under low-memory conditions when sending commands to the \u003ccode\u003eMpeghUiManager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3365\"\u003e#3365\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/androidx/media/blob/release/RELEASENOTES.md\"\u003eandroidx.media3:media3-session's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e1.11.1 (2026-09-10)\u003c/h3\u003e\n\u003cp\u003eThis release includes the following changes since the\n\u003ca href=\"https://github.com/androidx/media/blob/release/#1110-2026-08-05\"\u003e1.11.0 release\u003c/a\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eExoPlayer:\n\u003cul\u003e\n\u003cli\u003eMove the flag to enable/disable HAGC metadata for progressive media from\n\u003ccode\u003eMediaSource.Factory\u003c/code\u003e to \u003ccode\u003eExtractorsFactory\u003c/code\u003e. The previous\n\u003ccode\u003esetExperimentalEnableHagcPlayback\u003c/code\u003e method is removed and replaced by\n\u003ccode\u003eExtractorsFactory.setParseHagcMetadata\u003c/code\u003e. This also resolves an issue\nwhere disabling didn't work for Matroska/WebM containers.\u003c/li\u003e\n\u003cli\u003eFix a playback stall caused when prewarming a non-transitioning\nsecondary renderer.\u003c/li\u003e\n\u003cli\u003eFix pre-warming issue where the \u003ccode\u003eSurface\u003c/code\u003e should be returned to the\nprimary renderer when a seek resets and disables both renderers.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eArrayIndexOutOfBoundsException\u003c/code\u003e when a live timeline refresh moves\nthe default position past a server-side inserted ad that is currently\nbeing played (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3348\"\u003e#3348\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix a scrubbing mode issue where stale video frames could be briefly\ndisplayed when seeking with\n\u003ccode\u003eScrubbingModeParameters.allowSkippingMediaCodecFlush\u003c/code\u003e enabled.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eExtractors:\n\u003cul\u003e\n\u003cli\u003eMatroska: Fix issue where Tracks placed after clusters wouldn't result\nin a seekable timeline\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3377\"\u003e#3377\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAudio:\n\u003cul\u003e\n\u003cli\u003eFix buffer size calculation in \u003ccode\u003eSilenceSkippingAudioProcessor\u003c/code\u003e so that\nthe minimum silence duration is not incorrectly scaled down by the frame\nsize (\u003ca href=\"https://redirect.github.com/androidx/media/pull/3271\"\u003e#3271\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix 8-bit PCM handling in \u003ccode\u003ePcmAudioUtil\u003c/code\u003e to treat samples as unsigned as\ndefined by Android\n(\u003ca href=\"https://redirect.github.com/androidx/media/pull/3271\"\u003e#3271\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix offload issue in which playback could stall during pre-roll or\ngapless transitions due to limited hardware buffer sizes.\u003c/li\u003e\n\u003cli\u003eFix bug in \u003ccode\u003eDefaultAudioSink\u003c/code\u003e where release count doesn't decrease when\nplayback thread is no longer alive\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3338\"\u003e#3338\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eSession:\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eNullPointerException\u003c/code\u003e when an in-process \u003ccode\u003eMediaController\u003c/code\u003e is\nreleased from a \u003ccode\u003ePlayer.Listener\u003c/code\u003e callback\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3375\"\u003e#3375\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix deadlock on the main thread when a legacy \u003ccode\u003eMediaBrowser\u003c/code\u003e connects to\na service returning an asynchronous result from \u003ccode\u003eonGetLibraryRoot()\u003c/code\u003e or\n\u003ccode\u003eonConnectAsync()\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3393\"\u003e#3393\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eHLS extension:\n\u003cul\u003e\n\u003cli\u003eFix calculation of content resume offset when the target segment for\nsnapping is not yet in the playlist\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3322\"\u003e#3322\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where a fully consumed \u003ccode\u003eHlsMediaChunk\u003c/code\u003e retries loading on\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/8c6678b657ede1e7883fc164ef73ed483c7796c3\"\u003e\u003ccode\u003e8c6678b\u003c/code\u003e\u003c/a\u003e Bump version to 1.11.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/4b610b15d2b924e059e4f605ad912ff978e86e92\"\u003e\u003ccode\u003e4b610b1\u003c/code\u003e\u003c/a\u003e Update release notes for 1.11.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/e9757e6d11208d66d1ae020664dad2ce16a962ef\"\u003e\u003ccode\u003ee9757e6\u003c/code\u003e\u003c/a\u003e Fix deadlock when legacy MediaBrowser connects to async root or session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/9b8000d7eb57b347b2c40092b83a18c6a49173b2\"\u003e\u003ccode\u003e9b8000d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/androidx/media/issues/3271\"\u003e#3271\u003c/a\u003e from nift4:oddmath\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/6ada45cd1644582657afd0f0c750521f86a9e7b7\"\u003e\u003ccode\u003e6ada45c\u003c/code\u003e\u003c/a\u003e Add end-to-end test for ITU-T T.35 track muxing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/d23ba393a05c29244f9a184e7844411dc0dcd000\"\u003e\u003ccode\u003ed23ba39\u003c/code\u003e\u003c/a\u003e Normalize non-positive frame rates in MediaFormatUtil\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/383e770282f6ed31ffdea3362545282e4efc916b\"\u003e\u003ccode\u003e383e770\u003c/code\u003e\u003c/a\u003e Generalize useInputBuffer to useBuffer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/71e41121baddc80d2d175d4ce270d2cbe88f5aca\"\u003e\u003ccode\u003e71e4112\u003c/code\u003e\u003c/a\u003e MPEG-H: Fix UI manager command encoding and memory leak\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/eb2965ce41951e8f8437fba7a4dfc318585eb08a\"\u003e\u003ccode\u003eeb2965c\u003c/code\u003e\u003c/a\u003e Matroska: Fix seekable timeline with Tracks after Clusters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/a827bd5689d896868a10758a5caf19ce315a5741\"\u003e\u003ccode\u003ea827bd5\u003c/code\u003e\u003c/a\u003e Fix incorrect render of stale frames after a seek with skipped flush.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/androidx/media/compare/1.11.0...1.11.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.plugin.compose` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.plugin.compose's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a s...\n\n_Description has been truncated_","html_url":"https://github.com/keanehatescoding/CyberShield/pull/89","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/keanehatescoding%2FCyberShield/issues/89","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/89/packages"},{"uuid":"5454473500","node_id":"PR_kwDOQFR_FM8AAAABDg078w","number":650,"state":"open","title":"chore(deps): bump the gradle-minor-patch group in /mobile with 12 updates","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-14T20:50:54.000Z","updated_at":"2026-09-15T20:45:33.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"gradle-minor-patch","update_count":12,"packages":[{"name":"org.jetbrains.kotlin:kotlin-test-junit","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"androidx.navigation:navigation-testing","old_version":"2.10.0","new_version":"2.10.1"},{"name":"androidx.compose:compose-bom","old_version":"2026.08.00","new_version":"2026.09.00"},{"name":"androidx.navigation:navigation-compose","old_version":"2.10.0","new_version":"2.10.1"},{"name":"io.sentry:sentry-android","old_version":"8.55.0","new_version":"8.56.0","repository_url":"https://github.com/getsentry/sentry-java"},{"name":"org.jetbrains.kotlin:kotlin-test","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.multiplatform","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.android","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.compose","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.robolectric:robolectric","old_version":"4.16.1","new_version":"4.17","repository_url":"https://github.com/robolectric/robolectric"},{"name":"io.sentry.android.gradle","old_version":"6.21.0","new_version":"6.22.0","repository_url":"https://github.com/getsentry/sentry-android-gradle-plugin"}],"path":"/mobile","ecosystem":"maven"},"body":"[//]: # (dependabot-start)\n⚠️  **Dependabot is rebasing this PR** ⚠️ \n\nRebasing might not happen immediately, so don't worry if this takes some time.\n\nNote: if you make any changes to this PR yourself, they will take precedence over the rebase.\n\n---\n\n[//]: # (dependabot-end)\n\nBumps the gradle-minor-patch group in /mobile with 12 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [org.jetbrains.kotlin:kotlin-test-junit](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| androidx.navigation:navigation-testing | `2.10.0` | `2.10.1` |\n| androidx.compose:compose-bom | `2026.08.00` | `2026.09.00` |\n| androidx.navigation:navigation-compose | `2.10.0` | `2.10.1` |\n| [io.sentry:sentry-android](https://github.com/getsentry/sentry-java) | `8.55.0` | `8.56.0` |\n| [org.jetbrains.kotlin:kotlin-test](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.multiplatform](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.serialization](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.compose](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.robolectric:robolectric](https://github.com/robolectric/robolectric) | `4.16.1` | `4.17` |\n| [io.sentry.android.gradle](https://github.com/getsentry/sentry-android-gradle-plugin) | `6.21.0` | `6.22.0` |\n\nUpdates `org.jetbrains.kotlin:kotlin-test-junit` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin:kotlin-test-junit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin:kotlin-test-junit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `androidx.navigation:navigation-testing` from 2.10.0 to 2.10.1\n\nUpdates `androidx.compose:compose-bom` from 2026.08.00 to 2026.09.00\n\nUpdates `androidx.navigation:navigation-compose` from 2.10.0 to 2.10.1\n\nUpdates `io.sentry:sentry-android` from 8.55.0 to 8.56.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-java/releases\"\u003eio.sentry:sentry-android's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.56.0\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003eSentryTraced\u003c/code\u003e so that it now honors \u003ccode\u003eoptions.setIgnoredSpanOrigins\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/6058\"\u003e#6058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSentryTraced\u003c/code\u003e now checks for its owning transaction dynamically rather than once per app process. The latter caused \u003ccode\u003eSentryTraced\u003c/code\u003e spans to be dropped process-wide once the original transaction finished (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/6057\"\u003e#6057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix typos in Spring GraphQL integration names (\u003ccode\u003eGrahQL\u003c/code\u003e to \u003ccode\u003eGraphQL\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/6061\"\u003e#6061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePopulate the Android connection status cache during the first two minutes after boot, instead of treating the empty cache as up to date (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/6029\"\u003e#6029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003eSentryTraced\u003c/code\u003e from producing dangling spans if recomposition is abandoned or drawing fails (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/6049\"\u003e#6049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReport a consistent app start type across the app start measurement, \u003ccode\u003econtexts.app\u003c/code\u003e and the \u003ccode\u003eapp.start\u003c/code\u003e span attributes (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/6006\"\u003e#6006\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEmit a single \u003ccode\u003eui.compose\u003c/code\u003e span per \u003ccode\u003eSentryTraced\u003c/code\u003e on initial composition instead of one on every recomposition, and set the origin on \u003ccode\u003eui.render\u003c/code\u003e spans (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/6051\"\u003e#6051\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd an internal \u003ccode\u003eMonotonicTicker\u003c/code\u003e abstraction with \u003ccode\u003eDeadline\u003c/code\u003e and \u003ccode\u003eStopwatch\u003c/code\u003e primitives (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/6028\"\u003e#6028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd internal \u003ccode\u003eTimestamp\u003c/code\u003e, \u003ccode\u003eEpochClock\u003c/code\u003e and \u003ccode\u003eAnchoredClock\u003c/code\u003e, so related instants project from one wall-clock reading instead of each reading the clock (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/6045\"\u003e#6045\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump Native SDK from v0.16.5 to v0.16.6 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/6079\"\u003e#6079\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-native/blob/master/CHANGELOG.md#0166\"\u003echangelog\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-native/compare/0.16.5...0.16.6\"\u003ediff\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-java/blob/main/CHANGELOG.md\"\u003eio.sentry:sentry-android's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.56.0\u003c/h2\u003e\n\u003ch3\u003eBehavioral Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMeasure HTTP rate-limit backoff on a monotonic clock instead of the wall clock, so that a device time change no longer lifts or extends an active rate limit (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/6030\"\u003e#6030\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003eSentryTraced\u003c/code\u003e so that it now honors \u003ccode\u003eoptions.setIgnoredSpanOrigins\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/6058\"\u003e#6058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSentryTraced\u003c/code\u003e now checks for its owning transaction dynamically rather than once per app process. The latter caused \u003ccode\u003eSentryTraced\u003c/code\u003e spans to be dropped process-wide once the original transaction finished (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/6057\"\u003e#6057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix typos in Spring GraphQL integration names (\u003ccode\u003eGrahQL\u003c/code\u003e to \u003ccode\u003eGraphQL\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/6061\"\u003e#6061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePopulate the Android connection status cache during the first two minutes after boot, instead of treating the empty cache as up to date (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/6029\"\u003e#6029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003eSentryTraced\u003c/code\u003e from producing dangling spans if recomposition is abandoned or drawing fails (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/6049\"\u003e#6049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReport a consistent app start type across the app start measurement, \u003ccode\u003econtexts.app\u003c/code\u003e and the \u003ccode\u003eapp.start\u003c/code\u003e span attributes (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/6006\"\u003e#6006\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEmit a single \u003ccode\u003eui.compose\u003c/code\u003e span per \u003ccode\u003eSentryTraced\u003c/code\u003e on initial composition instead of one on every recomposition, and set the origin on \u003ccode\u003eui.render\u003c/code\u003e spans (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/6051\"\u003e#6051\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd an internal \u003ccode\u003eMonotonicTicker\u003c/code\u003e abstraction with \u003ccode\u003eDeadline\u003c/code\u003e and \u003ccode\u003eStopwatch\u003c/code\u003e primitives (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/6028\"\u003e#6028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd internal \u003ccode\u003eTimestamp\u003c/code\u003e, \u003ccode\u003eEpochClock\u003c/code\u003e and \u003ccode\u003eAnchoredClock\u003c/code\u003e, so related instants project from one wall-clock reading instead of each reading the clock (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/6045\"\u003e#6045\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecate \u003ccode\u003eRateLimiter(ICurrentDateProvider, SentryOptions)\u003c/code\u003e in favor of \u003ccode\u003eRateLimiter(SentryOptions)\u003c/code\u003e, whose backoff is measured on a monotonic ticker (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/6030\"\u003e#6030\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump Native SDK from v0.16.5 to v0.16.6 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/6079\"\u003e#6079\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-native/blob/master/CHANGELOG.md#0166\"\u003echangelog\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-native/compare/0.16.5...0.16.6\"\u003ediff\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/commit/e1ae18c645d865f4fdcb2879ef10c46dd602784e\"\u003e\u003ccode\u003ee1ae18c\u003c/code\u003e\u003c/a\u003e release: 8.56.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/commit/47123169ec7b267f6b37c27f576e5191b564f7a9\"\u003e\u003ccode\u003e4712316\u003c/code\u003e\u003c/a\u003e docs(changelog): Fix 8.56.0 release notes attribution (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/issues/6083\"\u003e#6083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/commit/515e0d16a537233417e8294c5b728efbb83a4817\"\u003e\u003ccode\u003e515e0d1\u003c/code\u003e\u003c/a\u003e fix(android): Treat an unpopulated connection cache as stale (JAVA-717) (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/issues/6029\"\u003e#6029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/commit/66f67ec80da1ca4505f5301a7c4781996fb8faf2\"\u003e\u003ccode\u003e66f67ec\u003c/code\u003e\u003c/a\u003e feat(time): Add Timestamp, EpochClock and AnchoredClock (JAVA-572) (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/issues/6045\"\u003e#6045\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/commit/643066d52069a42397099b4d332255452d5da72b\"\u003e\u003ccode\u003e643066d\u003c/code\u003e\u003c/a\u003e chore: update scripts/update-sentry-native-ndk.sh to 0.16.6 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/issues/6079\"\u003e#6079\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/commit/96297e6d3d62dfc7a1a87dd401c2e94f11fbbc10\"\u003e\u003ccode\u003e96297e6\u003c/code\u003e\u003c/a\u003e chore(deps): Bump navigation and compose UI deps (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/issues/6080\"\u003e#6080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/commit/4cc93b7009ee461728336c8df98a6bdb20518e0e\"\u003e\u003ccode\u003e4cc93b7\u003c/code\u003e\u003c/a\u003e feat(time): Add a monotonic clock abstraction (JAVA-571) (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/issues/6028\"\u003e#6028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/commit/38be688adf0c308df7802476f30ec83859ece6d6\"\u003e\u003ccode\u003e38be688\u003c/code\u003e\u003c/a\u003e test(android): ignore flaky InternalSentrySdkTest case (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/issues/6078\"\u003e#6078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/commit/8400a7f84a9777af044b359bbafde11d410c6893\"\u003e\u003ccode\u003e8400a7f\u003c/code\u003e\u003c/a\u003e fix(compose): Ensure SentryTraced spans respect ignore-by-origin requests (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/issues/6\"\u003e#6\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/commit/0b2fa674360d59d1ad479c75d3e82eb8d60561bc\"\u003e\u003ccode\u003e0b2fa67\u003c/code\u003e\u003c/a\u003e fix(compose): Stop SentryTraced from reusing stale parent spans (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/issues/6057\"\u003e#6057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/getsentry/sentry-java/compare/8.55.0...8.56.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin:kotlin-test` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin:kotlin-test's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin:kotlin-test's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.multiplatform` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.multiplatform's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.multiplatform's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.android` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.android's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.android's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.plugin.serialization` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.plugin.serialization's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2...\n\n_Description has been truncated_","html_url":"https://github.com/OrellBuehler/bissbilanz/pull/650","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/OrellBuehler%2Fbissbilanz/issues/650","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/650/packages"},{"uuid":"5454000903","node_id":"PR_kwDOSuMGWs8AAAABDgcSdw","number":206,"state":"open","title":"deps: bump the misc-minor-patch group with 11 updates","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-14T20:01:51.000Z","updated_at":"2026-09-14T20:06:16.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"misc-minor-patch","update_count":11,"packages":[{"name":"org.jetbrains.kotlin:kotlin-metadata-jvm","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"androidx.compose:compose-bom","old_version":"2026.08.00","new_version":"2026.09.00"},{"name":"androidx.navigation:navigation-compose","old_version":"2.10.0","new_version":"2.10.1"},{"name":"androidx.room:room-runtime","old_version":"2.8.4","new_version":"2.8.5"},{"name":"androidx.room:room-ktx","old_version":"2.8.4","new_version":"2.8.5"},{"name":"androidx.room:room-compiler","old_version":"2.8.4","new_version":"2.8.5"},{"name":"org.jetbrains.kotlin:kotlin-test","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.multiplatform","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.compose","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"com.google.devtools.ksp","old_version":"2.3.11","new_version":"2.3.12","repository_url":"https://github.com/google/ksp"}],"path":null,"ecosystem":"maven"},"body":"Bumps the misc-minor-patch group with 11 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [org.jetbrains.kotlin:kotlin-metadata-jvm](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| androidx.compose:compose-bom | `2026.08.00` | `2026.09.00` |\n| androidx.navigation:navigation-compose | `2.10.0` | `2.10.1` |\n| androidx.room:room-runtime | `2.8.4` | `2.8.5` |\n| androidx.room:room-ktx | `2.8.4` | `2.8.5` |\n| androidx.room:room-compiler | `2.8.4` | `2.8.5` |\n| [org.jetbrains.kotlin:kotlin-test](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.multiplatform](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.compose](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.serialization](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [com.google.devtools.ksp](https://github.com/google/ksp) | `2.3.11` | `2.3.12` |\n\nUpdates `org.jetbrains.kotlin:kotlin-metadata-jvm` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin:kotlin-metadata-jvm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin:kotlin-metadata-jvm's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `androidx.compose:compose-bom` from 2026.08.00 to 2026.09.00\n\nUpdates `androidx.navigation:navigation-compose` from 2.10.0 to 2.10.1\n\nUpdates `androidx.room:room-runtime` from 2.8.4 to 2.8.5\n\nUpdates `androidx.room:room-ktx` from 2.8.4 to 2.8.5\n\nUpdates `androidx.room:room-compiler` from 2.8.4 to 2.8.5\n\nUpdates `androidx.room:room-ktx` from 2.8.4 to 2.8.5\n\nUpdates `androidx.room:room-compiler` from 2.8.4 to 2.8.5\n\nUpdates `org.jetbrains.kotlin:kotlin-test` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin:kotlin-test's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin:kotlin-test's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.multiplatform` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.multiplatform's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.multiplatform's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.plugin.compose` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.plugin.compose's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.plugin.compose's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.plugin.serialization` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.plugin.serialization's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.plugin.serialization's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped...\n\n_Description has been truncated_","html_url":"https://github.com/travnie/Autka/pull/206","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/travnie%2FAutka/issues/206","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/206/packages"},{"uuid":"5453626144","node_id":"PR_kwDOSRYmZs8AAAABDgIudg","number":556,"state":"closed","title":"build(deps): bump the android-deps group in /apps/android with 29 updates","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-15T01:10:57.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-14T19:24:22.000Z","updated_at":"2026-09-15T01:10:59.000Z","time_to_close":20795,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"android-deps","update_count":29,"packages":[{"name":"gradle-wrapper","old_version":"9.6.1","new_version":"9.7.1","repository_url":"https://github.com/gradle/gradle"},{"name":"androidx.appcompat:appcompat","old_version":"1.7.1","new_version":"1.8.0"},{"name":"androidx.benchmark:benchmark-macro-junit4","old_version":"1.4.1","new_version":"1.5.0"},{"name":"androidx.compose:compose-bom","old_version":"2026.06.01","new_version":"2026.09.00"},{"name":"androidx.room:room-compiler","old_version":"2.8.4","new_version":"2.8.5"},{"name":"androidx.room:room-runtime","old_version":"2.8.4","new_version":"2.8.5"},{"name":"androidx.wear.protolayout:protolayout","old_version":"1.4.1","new_version":"1.4.2"},{"name":"androidx.wear.protolayout:protolayout-material3","old_version":"1.4.1","new_version":"1.4.2"},{"name":"androidx.wear.tiles:tiles","old_version":"1.6.1","new_version":"1.6.2"},{"name":"org.bouncycastle:bcprov-jdk18on","old_version":"1.85","new_version":"1.86","repository_url":"https://github.com/bcgit/bc-java"},{"name":"org.commonmark:commonmark","old_version":"0.29.0","new_version":"0.30.0","repository_url":"https://github.com/commonmark/commonmark-java"},{"name":"org.commonmark:commonmark-ext-autolink","old_version":"0.29.0","new_version":"0.30.0","repository_url":"https://github.com/commonmark/commonmark-java"},{"name":"org.commonmark:commonmark-ext-gfm-strikethrough","old_version":"0.29.0","new_version":"0.30.0","repository_url":"https://github.com/commonmark/commonmark-java"},{"name":"org.commonmark:commonmark-ext-gfm-tables","old_version":"0.29.0","new_version":"0.30.0","repository_url":"https://github.com/commonmark/commonmark-java"},{"name":"org.commonmark:commonmark-ext-task-list-items","old_version":"0.29.0","new_version":"0.30.0","repository_url":"https://github.com/commonmark/commonmark-java"},{"name":"io.coil-kt.coil3:coil-compose","old_version":"3.5.0","new_version":"3.6.2","repository_url":"https://github.com/coil-kt/coil"},{"name":"io.coil-kt.coil3:coil-svg","old_version":"3.5.0","new_version":"3.6.2","repository_url":"https://github.com/coil-kt/coil"},{"name":"org.junit.vintage:junit-vintage-engine","old_version":"6.1.2","new_version":"6.1.3","repository_url":"https://github.com/junit-team/junit-framework"},{"name":"io.kotest:kotest-assertions-core-jvm","old_version":"6.2.2","new_version":"6.2.5","repository_url":"https://github.com/kotest/kotest"},{"name":"io.kotest:kotest-runner-junit5-jvm","old_version":"6.2.2","new_version":"6.2.5","repository_url":"https://github.com/kotest/kotest"},{"name":"com.squareup.okhttp3:mockwebserver","old_version":"5.4.0","new_version":"5.5.0","repository_url":"https://github.com/lysine-dev/okhttp"},{"name":"com.squareup.okhttp3:okhttp","old_version":"5.4.0","new_version":"5.5.0","repository_url":"https://github.com/lysine-dev/okhttp"},{"name":"org.robolectric:robolectric","old_version":"4.16.1","new_version":"4.17","repository_url":"https://github.com/robolectric/robolectric"},{"name":"com.android.application","old_version":"9.3.0","new_version":"9.4.0"},{"name":"com.android.library","old_version":"9.3.0","new_version":"9.4.0"},{"name":"com.android.test","old_version":"9.3.0","new_version":"9.4.0"},{"name":"org.jetbrains.kotlin.plugin.compose","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"com.google.devtools.ksp","old_version":"2.3.10","new_version":"2.3.12","repository_url":"https://github.com/google/ksp"}],"path":"/apps/android","ecosystem":"maven"},"body":"Bumps the android-deps group in /apps/android with 29 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [gradle-wrapper](https://github.com/gradle/gradle) | `9.6.1` | `9.7.1` |\n| androidx.appcompat:appcompat | `1.7.1` | `1.8.0` |\n| androidx.benchmark:benchmark-macro-junit4 | `1.4.1` | `1.5.0` |\n| androidx.compose:compose-bom | `2026.06.01` | `2026.09.00` |\n| androidx.room:room-compiler | `2.8.4` | `2.8.5` |\n| androidx.room:room-runtime | `2.8.4` | `2.8.5` |\n| androidx.wear.protolayout:protolayout | `1.4.1` | `1.4.2` |\n| androidx.wear.protolayout:protolayout-material3 | `1.4.1` | `1.4.2` |\n| androidx.wear.tiles:tiles | `1.6.1` | `1.6.2` |\n| [org.bouncycastle:bcprov-jdk18on](https://github.com/bcgit/bc-java) | `1.85` | `1.86` |\n| [org.commonmark:commonmark](https://github.com/commonmark/commonmark-java) | `0.29.0` | `0.30.0` |\n| [org.commonmark:commonmark-ext-autolink](https://github.com/commonmark/commonmark-java) | `0.29.0` | `0.30.0` |\n| [org.commonmark:commonmark-ext-gfm-strikethrough](https://github.com/commonmark/commonmark-java) | `0.29.0` | `0.30.0` |\n| [org.commonmark:commonmark-ext-gfm-tables](https://github.com/commonmark/commonmark-java) | `0.29.0` | `0.30.0` |\n| [org.commonmark:commonmark-ext-task-list-items](https://github.com/commonmark/commonmark-java) | `0.29.0` | `0.30.0` |\n| [io.coil-kt.coil3:coil-compose](https://github.com/coil-kt/coil) | `3.5.0` | `3.6.2` |\n| [io.coil-kt.coil3:coil-svg](https://github.com/coil-kt/coil) | `3.5.0` | `3.6.2` |\n| [org.junit.vintage:junit-vintage-engine](https://github.com/junit-team/junit-framework) | `6.1.2` | `6.1.3` |\n| [io.kotest:kotest-assertions-core-jvm](https://github.com/kotest/kotest) | `6.2.2` | `6.2.5` |\n| [io.kotest:kotest-runner-junit5-jvm](https://github.com/kotest/kotest) | `6.2.2` | `6.2.5` |\n| [com.squareup.okhttp3:mockwebserver](https://github.com/lysine-dev/okhttp) | `5.4.0` | `5.5.0` |\n| [com.squareup.okhttp3:okhttp](https://github.com/lysine-dev/okhttp) | `5.4.0` | `5.5.0` |\n| [org.robolectric:robolectric](https://github.com/robolectric/robolectric) | `4.16.1` | `4.17` |\n| com.android.application | `9.3.0` | `9.4.0` |\n| com.android.library | `9.3.0` | `9.4.0` |\n| com.android.test | `9.3.0` | `9.4.0` |\n| [org.jetbrains.kotlin.plugin.compose](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.serialization](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [com.google.devtools.ksp](https://github.com/google/ksp) | `2.3.10` | `2.3.12` |\n\nUpdates `gradle-wrapper` from 9.6.1 to 9.7.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gradle/gradle/releases\"\u003egradle-wrapper's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.7.1\u003c/h2\u003e\n\u003cp\u003eThe Gradle team is excited to announce Gradle 9.7.1.\u003c/p\u003e\n\u003cp\u003eThis is a patch release for 9.7.0. We recommend using 9.7.1 instead of 9.7.0.\u003c/p\u003e\n\u003cp\u003eHere are the highlights of 9.7.0 release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIsolated Projects graduates to incubating\u003c/li\u003e\n\u003cli\u003eBroader Configuration Cache compatibility\u003c/li\u003e\n\u003cli\u003eResilient Sync helps you fix broken builds\u003c/li\u003e\n\u003cli\u003eMore source locations in problem reports\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://docs.gradle.org/9.7.1/release-notes.html\"\u003eRead the Release Notes\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eWe would like to thank the following community members for their contributions to this release of Gradle:\n\u003ca href=\"https://github.com/aSemy\"\u003eAdam\u003c/a\u003e,\n\u003ca href=\"https://github.com/Gautam-aman\"\u003eAman Gautam\u003c/a\u003e,\n\u003ca href=\"https://github.com/YukiCodepth\"\u003eAman Kumar\u003c/a\u003e,\n\u003ca href=\"https://github.com/adubrouski\"\u003eAnton Dubrouski\u003c/a\u003e,\n\u003ca href=\"https://github.com/liutikas\"\u003eAurimas\u003c/a\u003e,\n\u003ca href=\"https://github.com/gbhavya07\"\u003egbhavya07\u003c/a\u003e,\n\u003ca href=\"https://github.com/joshfriend\"\u003eJosh Friend\u003c/a\u003e,\n\u003ca href=\"https://github.com/nicklauslittle-gov\"\u003enicklauslittle-gov\u003c/a\u003e,\n\u003ca href=\"https://github.com/psoni674\"\u003ePragati\u003c/a\u003e,\n\u003ca href=\"https://github.com/Project516\"\u003eproject516\u003c/a\u003e,\n\u003ca href=\"https://github.com/Uomocapra\"\u003eQin Mi\u003c/a\u003e,\n\u003ca href=\"https://github.com/rkdfx\"\u003eRavi\u003c/a\u003e,\n\u003ca href=\"https://github.com/sk-reddy17\"\u003esk-reddy17\u003c/a\u003e,\n\u003ca href=\"https://github.com/Suvrat1629\"\u003eSuvrat Acharya\u003c/a\u003e,\n\u003ca href=\"https://github.com/ShreckYe\"\u003eYongshun Ye\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eUpgrade instructions\u003c/h2\u003e\n\u003cp\u003eSwitch your build to use Gradle 9.7.1 by updating your wrapper:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e./gradlew :wrapper --gradle-version=9.7.1 \u0026amp;\u0026amp; ./gradlew :wrapper\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eSee the Gradle \u003ca href=\"https://docs.gradle.org/9.7.1/userguide/upgrading_version_9.html\"\u003e9.x upgrade guide\u003c/a\u003e to learn about deprecations, breaking changes and other considerations when upgrading.\u003c/p\u003e\n\u003cp\u003eFor Java, Groovy, Kotlin and Android compatibility, see the \u003ca href=\"https://docs.gradle.org/9.7.1/userguide/compatibility.html\"\u003efull compatibility notes\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eReporting problems\u003c/h2\u003e\n\u003cp\u003eIf you find a problem with this release, please file a bug on \u003ca href=\"https://github.com/gradle/gradle/issues\"\u003eGitHub Issues\u003c/a\u003e adhering to our issue guidelines.\nIf you're not sure you're encountering a bug, please use the \u003ca href=\"https://discuss.gradle.org/c/help-discuss\"\u003eforum\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eWe hope you will build happiness with Gradle, and we look forward to your feedback via \u003ca href=\"https://twitter.com/gradle\"\u003eTwitter\u003c/a\u003e or on \u003ca href=\"https://github.com/gradle\"\u003eGitHub\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003e9.7.0\u003c/h2\u003e\n\u003cp\u003eThe Gradle team is excited to announce Gradle 9.7.0.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/92f0512e7f06d84621afba191f75e265363890cf\"\u003e\u003ccode\u003e92f0512\u003c/code\u003e\u003c/a\u003e update fixed issues for 9.7.1 (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/38892\"\u003e#38892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/820ee75a99a179bbffa41bcedc6477b685fabb9f\"\u003e\u003ccode\u003e820ee75\u003c/code\u003e\u003c/a\u003e update fixed issues for 9.7.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/82c23f9bd2a89b4cc644e1f90a28a8668feb3dee\"\u003e\u003ccode\u003e82c23f9\u003c/code\u003e\u003c/a\u003e Fix annotation parameter ordering problem in KTS (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/38878\"\u003e#38878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/ef11a7268fe8cc8d6ab849ec911aa11220180553\"\u003e\u003ccode\u003eef11a72\u003c/code\u003e\u003c/a\u003e Fix annotation parameter ordering issue\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/bb0d8a974a71b1003efea41e4046e98855cd5ff8\"\u003e\u003ccode\u003ebb0d8a9\u003c/code\u003e\u003c/a\u003e Make relevant tests polyglot (run for multiple DSLs)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/336e129d7f95c03486acafc97abf59734acfed48\"\u003e\u003ccode\u003e336e129\u003c/code\u003e\u003c/a\u003e Update signing configuration (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/38874\"\u003e#38874\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/4bdf0da2dad9884d089a6062a45ea7183e7d735d\"\u003e\u003ccode\u003e4bdf0da\u003c/code\u003e\u003c/a\u003e Update signing configuration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/cd9b92c1b82856248cf1dc58b50378238bec7b52\"\u003e\u003ccode\u003ecd9b92c\u003c/code\u003e\u003c/a\u003e List issues resolved in 9.7.1 (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/38839\"\u003e#38839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/5f4e381964897ad8d6b99e5a7c77f26dba3259fb\"\u003e\u003ccode\u003e5f4e381\u003c/code\u003e\u003c/a\u003e List issues resolved in 9.7.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/1e08ab551367aeb5fb48b26e72807e1d2b27c939\"\u003e\u003ccode\u003e1e08ab5\u003c/code\u003e\u003c/a\u003e Keep type-use annotations in extracted ABI classes (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/38810\"\u003e#38810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gradle/gradle/compare/v9.6.1...v9.7.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `androidx.appcompat:appcompat` from 1.7.1 to 1.8.0\n\nUpdates `androidx.benchmark:benchmark-macro-junit4` from 1.4.1 to 1.5.0\n\nUpdates `androidx.compose:compose-bom` from 2026.06.01 to 2026.09.00\n\nUpdates `androidx.room:room-compiler` from 2.8.4 to 2.8.5\n\nUpdates `androidx.room:room-runtime` from 2.8.4 to 2.8.5\n\nUpdates `androidx.room:room-runtime` from 2.8.4 to 2.8.5\n\nUpdates `androidx.wear.protolayout:protolayout` from 1.4.1 to 1.4.2\n\nUpdates `androidx.wear.protolayout:protolayout-material3` from 1.4.1 to 1.4.2\n\nUpdates `androidx.wear.protolayout:protolayout-material3` from 1.4.1 to 1.4.2\n\nUpdates `androidx.wear.tiles:tiles` from 1.6.1 to 1.6.2\n\nUpdates `org.bouncycastle:bcprov-jdk18on` from 1.85 to 1.86\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/bcgit/bc-java/blob/main/docs/releasenotes.md\"\u003eorg.bouncycastle:bcprov-jdk18on's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eBouncy Castle Crypto Package - Release Notes\u003c/h1\u003e\n\u003ch2\u003e1.0 Introduction\u003c/h2\u003e\n\u003cp\u003eThe Bouncy Castle Crypto package is a Java implementation of cryptographic algorithms. The package is organised so that it contains a light-weight API suitable for use in any environment (including the J2ME) with the additional infrastructure to conform the algorithms to the JCE framework.\u003c/p\u003e\n\u003ch2\u003e2.0 Release History\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003e2.1.1 Version\u003c/h3\u003e\n\u003cp\u003eRelease: 1.87\u003cbr /\u003e\nDate: 2026, TBD\u003c/p\u003e\n\u003ch3\u003e2.1.2 Defects Fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eA KeyAgreement asked for its shared secret before doPhase returned data rather than refusing. javax.crypto.KeyAgreement specifies IllegalStateException for that state, but nothing in the provider tracked it, so each SPI handed back whatever its result field held: for Diffie-Hellman that was the private value itself - engineInit seeded result with x, so generateSecret() returned the private exponent padded to the prime's length and generateSecret(\u0026quot;AES\u0026quot;) an all-zero key taken from that padding - while ECDH returned null and its named-algorithm overload raised NullPointerException. BaseAgreementSpi now records whether a doPhase has completed the agreement since the last init and refuses the request with an IllegalStateException naming the algorithm, so every family in the provider - DH, ECDH and ECMQV, the SM2 exchange, both ECGOST families, XDH, SM9 and NewHope - answers the same way, and the DH SPI no longer holds the private value in that field at all.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMac.getInstance and KeyGenerator.getInstance by the HMAC SHA-512/224 and SHA-512/256 object identifiers (1.2.840.113549.2.12 and .13) failed, although the same algorithms resolved by name and the matching SecretKeyFactory aliases were registered: the SHA512 mappings called addHMACAlgorithm for the two truncated variants without the addHMACAlias that registers their OIDs against Mac and KeyGenerator. Both are now aliased, as every other HMAC in that class already was.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eA KTSParameterSpec naming an HKDF key-derivation function with a parameters field - a form the provider does not service - was accepted at Cipher init and then failed out of wrap or unwrap with an unchecked IllegalStateException neither method declares. The KTS key-wrapping Ciphers (ML-KEM, Classic McEliece, FrodoKEM, the composite KEM and RSA-KEM) now validate the spec's KDF when they take it, reporting an unserviceable one as the InvalidAlgorithmParameterException engineInit declares, which is what the javax.crypto.KEM services already did through KdfUtil.resolveKemSpec.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eA DTLS handshake deadlocked when a handshake message ahead of the peer's ChangeCipherSpec (a client's CertificateVerify, say) was lost while the ChangeCipherSpec and Finished behind it arrived: the record layer moved its read epoch on at the ChangeCipherSpec and then discarded every retransmission of the lost message as belonging to the old epoch, whose records are only accepted once the handshake has completed. Each side then waited on the other until a handshake timeout, if one was configured, ended it. Every client-authenticated handshake, and every handshake in which the server issues a NewSessionTicket, was exposed. Until the handshake completes, handshake records from the current epoch are now still accepted after the read epoch has moved on, and each message is checked against the epoch of the record that carried it. The DTLS loopback tests now run their handshakes at 10% datagram loss in each direction, with a client-authenticated handshake at 25%.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe lightweight SubjectPublicKeyInfoFactory and PrivateKeyInfoFactory encoded a GOST R 34.10-2012 key on one of the legacy CryptoPro curves under id-GostR3410-2001, although RFC 9215 sec. 4.2 permits those curves for 2012 keys. The digestParamSet now decides: a GOST R 34.11-94 parameter set means 2001 (RFC 4491 sec. 2.3.2), a GOST R 34.11-2012 digest or none means 2012 with 256/512 taken from the curve field size, and any other value is rejected. GOST3410PublicKeyAlgParameters treats digestParamSet as OPTIONAL on both read and write per RFC 9215, and PrivateKeyInfoFactory now passes attributes through for ECGOST3410 keys (bc-csharp github \u003ca href=\"https://redirect.github.com/bcgit/bc-java/issues/707\"\u003e#707\u003c/a\u003e).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe name-constraint host canonicalisation removed a single RFC 1034 root-label dot, the only empty label a name may legally carry, but nothing refused the ones that are not legal: a dNSName, rfc822Name host or uniformResourceIdentifier host such as \u0026quot;example.com..\u0026quot; kept a phantom empty label after the strip and so matched no constraint at all, escaping an excluded subtree naming the host it appears to carry. A tested name whose host carries an empty label - a second trailing dot, a doubled dot or a leading dot - is now refused outright wherever a constraint of that type is in force, rather than canonicalised into a name it is not: removing the extra dots would decide on the caller's behalf that \u0026quot;example.com..\u0026quot; names example.com, which is not how a consumer resolving or comparing the name reads it, and refusing fails closed in both directions where canonicalising would newly admit such a name under a permitted subtree. The single trailing dot is canonicalised as before, a bare \u0026quot;.\u0026quot; remains the root label rather than an empty one, and the guard is scoped to the host, so the doubled dot a quoted local part may legally carry is unaffected. Constraints are untouched - one may still begin with a dot, which is how this implementation spells \u0026quot;subdomains only\u0026quot; (github PR \u003ca href=\"https://redirect.github.com/bcgit/bc-java/issues/2436\"\u003e#2436\u003c/a\u003e).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e2.1.3 Additional Features and Functionality\u003c/h3\u003e\n\u003ch3\u003e2.1.4 Additional Notes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe sources and javadoc jars of the Ant-built distributions (jdk14, jdk15to18 and jdk13) no longer carry test material. Each module's javadoc target copies the package documentation it needs - org/bouncycastle/\u003c!-- raw HTML omitted --\u003e/\u003cstrong\u003e/*.html - back into the module source directory that has already been compiled from, and zip-src zips that directory afterwards, so every test package's package.html arrived in the sources jar by that route; javadoc-util additionally copied org/bouncycastle/asn1/isismtt/\u003c/strong\u003e/*.java, which put test classes into the bcutil javadoc as generated pages, and javadoc-pg deliberately copied the gpg and bcpg test sources in order to document them. Separately the source copies excluded test material only one directory deep and only for *.java, because Ant reads ** as an any-depth wildcard just where it is a whole path segment, so anything nested further or with another extension - the PEM certificate fixtures under org/bouncycastle/est/test/san corrected in 1.86, and an ICAO master list under org/bouncycastle/asn1/icao/test - went through. The source and javadoc copies of every module now exclude test directories at any depth, and javadoc-pg no longer documents the test packages. org.bouncycastle.util.test is unaffected and still ships in the bcprov binary, sources and javadoc jars, as it does from the Gradle build: it is the SimpleTest framework the light-weight API's own test classes are written against, not test material of the distribution. No binary changes - the classes and resources of every Ant-built jar are identical to those of the 1.86 release - and the Gradle-built jdk18on artifacts never carried any of this.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003e2.2.1 Version\u003c/h3\u003e\n\u003cp\u003eRelease: 1.86\u003cbr /\u003e\nDate: 2026, 11th September.\u003c/p\u003e\n\u003ch3\u003e2.2.2 Defects Fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe high-level OpenPGP API let a subkey inherit the primary key's Key Flags when its own Subkey Binding signature carried none, so a subkey bound with no flags counted as signing-capable for one check while the cross-certification check RFC 9580 sec. 5.2.1.8 requires of a signing subkey saw none and was skipped - letting a third party's public signing subkey be bound to an attacker's primary key and that party's genuine signatures verify under the attacker's identity. Flags are no longer inherited (CVE-2026-71887).\u003c/li\u003e\n\u003cli\u003eThe high-level OpenPGP API used a version 6 key carrying no valid Direct Key signature, falling back to the primary user ID binding as it correctly does for version 4. RFC 9580 sec. 5.2.3.10 requires the opposite, and since a v6 certificate carries its expiration and preferences there, stripping that one packet silently dropped them - the certificate went on offering subkeys of a key set to expire. isBoundBy now requires a valid Direct Key self-signature before any v6 component is treated as bound; version 4 is unaffected.\u003c/li\u003e\n\u003cli\u003eThe high-level OpenPGP API ignored the OpenPGPPolicy a caller had configured when verifying signatures on an inline message: OpenPGPMessageInputStream took the policy from the implementation's own default rather than from the processor doing the verification, so a hardened policy had no bearing on acceptance and getSignatures() reported isTestedCorrect() true for a signature that policy rejects. Both the one-pass and prefixed-signature paths now read the configured policy.\u003c/li\u003e\n\u003cli\u003eThe high-level OpenPGP API went on offering the subkeys of a certificate whose primary key had expired, the binding check evaluating only a subkey's own Subkey Binding signature - so the certificate contradicted itself, reporting the primary unbound while still handing out its subkeys. The primary key's expiration now applies to the whole certificate, as GnuPG and Sequoia treat it, and a subkey no longer inherits the primary's validity period, which RFC 9580 sec. 5.2.3.13 counts from the creation time of the key the carrying signature is made on.\u003c/li\u003e\n\u003cli\u003eOpenPGPDocumentSignature.isValidAt(Date) reported a data signature as valid past the signature's own Signature Expiration Time (RFC 9580 sec. 5.2.3.18): it checked that the signature was correct and the issuing key bound and signing-capable at that date, but never the signature's own expiration, so it disagreed with isEffectiveAt() on the same object and with its own javadoc. isValid() and isValid(policy), which evaluate at creation time, are unchanged.\u003c/li\u003e\n\u003cli\u003eThe lightweight LMSSigner and HSSSigner refused a key wrapped in ParametersWithRandom, which is how BcContentSignerBuilder passes one once setSecureRandom() has been called, so BcHssLmsContentSignerBuilder failed with \u0026quot;Incorrect Key Parameters\u0026quot; and the two signers raised ClassCastException. All three now unwrap it, as the ML-DSA and SLH-DSA signers already did; the random is accepted and ignored, LMS deriving its message randomiser deterministically from the seed and one-time index.\u003c/li\u003e\n\u003cli\u003eLMS signature verification did not apply two checks RFC 8554 sec. 5.4.2 requires before a signature is processed: step 2g, refusing a signature whose LMS typecode is not the public key's - without it a signature claiming a height-25 parameter set drove a 25-level computation against a height-5 key - and step 2i, refusing a leaf number outside the tree. Neither was a forgery, but both are attacker-chosen work the specification says to refuse up front. Both are now checked.\u003c/li\u003e\n\u003cli\u003eThe LMS and HSS key parameter classes now apply at construction the checks their decoders apply, so a key built directly cannot be one the decoder would refuse: LMSPrivateKeyParameters accepted an identifier of any length where the decoder reads exactly 16 bytes, and left q, maxQ and the seed length unchecked, while HSSPrivateKeyParameters checked neither its level count nor that it had a component key and chaining signature per level. The decoders now report a bad version or seed length as IOException rather than IllegalStateException.\u003c/li\u003e\n\u003cli\u003eIn the LMS JCE layer, LMSKeyGenParameterSpec.fromNames knew all twenty LMS parameter-set names but only four of the sixteen LM-OTS ones, so none of the SP 800-208 n24 or SHAKE sets could be named; all sixteen are now present. initialize(int, SecureRandom) now reports InvalidParameterException as the JCA specifies, and BCLMSPrivateKey.getIndex takes the exhaustion check and the index read under one monitor.\u003c/li\u003e\n\u003cli\u003eKeyPairGenerator.initialize(int, SecureRandom) is documented to raise InvalidParameterException when the key size is not one the generator supports, and thirty of them raised a bare IllegalArgumentException instead. Every generator in BCPQC, and the ML-DSA, ML-KEM, SLH-DSA, Classic McEliece, FrodoKEM, NTRU and composite ones in the BC provider, now raise the documented type - which extends IllegalArgumentException, so existing catches still match. The two RSA generators translate the lightweight refusal through a new SecurityExceptions.invalidParameterException factory.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/bcgit/bc-java/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.commonmark:commonmark` from 0.29.0 to 0.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/commonmark/commonmark-java/releases\"\u003eorg.commonmark:commonmark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ecommonmark-java 0.30.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew option \u003ccode\u003elineSeparator\u003c/code\u003e for \u003ccode\u003eMarkdownRenderer.Builder\u003c/code\u003e to change the default line\nseparator from \u003ccode\u003e\\n\u003c/code\u003e (e.g. to \u003ccode\u003e\\r\\n\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Support extracting the raw YAML content so that you can\ndo the YAML parsing using a library (instead of the limited built-in parsing) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTables extension: Limit max number of parsed table cells by default (1 million cells),\nsee option \u003ccode\u003emaxCells\u003c/code\u003e in \u003ccode\u003eTablesExtension.Builder\u003c/code\u003e. Parsing will throw an error if the\nlimit would be exceeded, to protect against malicious input.\u003c/li\u003e\n\u003cli\u003eThe default for \u003ccode\u003emaxOpenBlockParsers\u003c/code\u003e for \u003ccode\u003eParser.Builder\u003c/code\u003e is now 100; configure the\noption to remove the limit.\u003c/li\u003e\n\u003cli\u003eLimit how deeply inline nodes may nest by default (100), see option \u003ccode\u003emaxInlineNesting\u003c/code\u003e in\n\u003ccode\u003eParser.Builder\u003c/code\u003e; configure the option to remove the limit. This covers emphasis-like\ndelimiters (e.g. \u003ccode\u003e*\u003c/code\u003e or the ins extension's \u003ccode\u003e+\u003c/code\u003e) as well as images, which can otherwise\nnest arbitrarily deep for a small amount of input. Anything over the limit is treated as\nplain text instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix quadratic runtime on various pathological inputs (where inline syntax to start a\nnode is used repeatedly but never finished):\n\u003cul\u003e\n\u003cli\u003eInline HTML like \u003ccode\u003e\u0026quot;x \u0026lt;!--\u0026quot;.repeat(100_000)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/447\"\u003e#447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAutolink starts like \u003ccode\u003e\u0026quot;\u0026lt;\u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eEmphasis like \u003ccode\u003e\u0026quot;a**b\u0026quot; + \u0026quot;c* \u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBackticks runs of different lengths\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow errors when parsing pathological inputs with repeated syntax:\n\u003cul\u003e\n\u003cli\u003eHTML block attributes\u003c/li\u003e\n\u003cli\u003eAutolink email addresses\u003c/li\u003e\n\u003cli\u003eDeeply nested emphasis\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow error when rendering/visiting deeply nested inline nodes, by capping nesting\ndepth during parsing (see \u003ccode\u003emaxInlineNesting\u003c/code\u003e above). This can happen with emphasis, e.g.\n\u003ccode\u003e\u0026quot;*\u0026quot;.repeat(n) + \u0026quot;x\u0026quot; + \u0026quot;*\u0026quot;.repeat(n)\u003c/code\u003e or \u003ccode\u003e\u0026quot;*a \u0026quot;.repeat(n) + \u0026quot; b*\u0026quot;.repeat(n)\u003c/code\u003e, as well as with\nimages, e.g. \u003ccode\u003e\u0026quot;![\u0026quot;.repeat(https://github.com/commonmark/commonmark-java/blob/HEAD/n) + \u0026quot;x\u0026quot; + \u0026quot;](u)\u0026quot;.repeat(n)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Fix inefficient string concatenation for literal-block values (\u003ccode\u003e|\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md\"\u003eorg.commonmark:commonmark's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.30.0] - 2026-08-06\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew option \u003ccode\u003elineSeparator\u003c/code\u003e for \u003ccode\u003eMarkdownRenderer.Builder\u003c/code\u003e to change the default line\nseparator from \u003ccode\u003e\\n\u003c/code\u003e (e.g. to \u003ccode\u003e\\r\\n\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Support extracting the raw YAML content so that you can\ndo the YAML parsing using a library (instead of the limited built-in parsing) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTables extension: Limit max number of parsed table cells by default (1 million cells),\nsee option \u003ccode\u003emaxCells\u003c/code\u003e in \u003ccode\u003eTablesExtension.Builder\u003c/code\u003e. Parsing will throw an error if the\nlimit would be exceeded, to protect against malicious input.\u003c/li\u003e\n\u003cli\u003eThe default for \u003ccode\u003emaxOpenBlockParsers\u003c/code\u003e for \u003ccode\u003eParser.Builder\u003c/code\u003e is now 100; configure the\noption to remove the limit.\u003c/li\u003e\n\u003cli\u003eLimit how deeply inline nodes may nest by default (100), see option \u003ccode\u003emaxInlineNesting\u003c/code\u003e in\n\u003ccode\u003eParser.Builder\u003c/code\u003e; configure the option to remove the limit. This covers emphasis-like\ndelimiters (e.g. \u003ccode\u003e*\u003c/code\u003e or the ins extension's \u003ccode\u003e+\u003c/code\u003e) as well as images, which can otherwise\nnest arbitrarily deep for a small amount of input. Anything over the limit is treated as\nplain text instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix quadratic runtime on various pathological inputs (where inline syntax to start a\nnode is used repeatedly but never finished):\n\u003cul\u003e\n\u003cli\u003eInline HTML like \u003ccode\u003e\u0026quot;x \u0026lt;!--\u0026quot;.repeat(100_000)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/447\"\u003e#447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAutolink starts like \u003ccode\u003e\u0026quot;\u0026lt;\u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eEmphasis like \u003ccode\u003e\u0026quot;a**b\u0026quot; + \u0026quot;c* \u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBackticks runs of different lengths\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow errors when parsing pathological inputs with repeated syntax:\n\u003cul\u003e\n\u003cli\u003eHTML block attributes\u003c/li\u003e\n\u003cli\u003eAutolink email addresses\u003c/li\u003e\n\u003cli\u003eDeeply nested emphasis\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow error when rendering/visiting deeply nested inline nodes, by capping nesting\ndepth during parsing (see \u003ccode\u003emaxInlineNesting\u003c/code\u003e above). This can happen with emphasis, e.g.\n\u003ccode\u003e\u0026quot;*\u0026quot;.repeat(n) + \u0026quot;x\u0026quot; + \u0026quot;*\u0026quot;.repeat(n)\u003c/code\u003e or \u003ccode\u003e\u0026quot;*a \u0026quot;.repeat(n) + \u0026quot; b*\u0026quot;.repeat(n)\u003c/code\u003e, as well as with\nimages, e.g. \u003ccode\u003e\u0026quot;![\u0026quot;.repeat(https://github.com/commonmark/commonmark-java/blob/main/n) + \u0026quot;x\u0026quot; + \u0026quot;](u)\u0026quot;.repeat(n)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Fix inefficient string concatenation for literal-block values (\u003ccode\u003e|\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/64037cf982f2b12a4a2fa1c5a75c6d3f4ab979bf\"\u003e\u003ccode\u003e64037cf\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release commonmark-parent-0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/bd3e06669fd168874721267e7e5f5bd1d3433466\"\u003e\u003ccode\u003ebd3e066\u003c/code\u003e\u003c/a\u003e Fix Javadoc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/4aaf754cc90b4a5a62647a8fc621185c934f8bbf\"\u003e\u003ccode\u003e4aaf754\u003c/code\u003e\u003c/a\u003e mvn versions:set -DnewVersion=0.30.0-SNAPSHOT\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/42b4fb7adfe288ef13e9e27ab20aff7e91b0ab9d\"\u003e\u003ccode\u003e42b4fb7\u003c/code\u003e\u003c/a\u003e Prepare CHANGELOG for version 0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/b76e09d7a8362abb5f04e1d6b91dbd6da279a6fc\"\u003e\u003ccode\u003eb76e09d\u003c/code\u003e\u003c/a\u003e Limit how deep inline nodes may nest by default (100)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/49f65cb5cbec93cff713179990307145198e7061\"\u003e\u003ccode\u003e49f65cb\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing deeply nested emphasis\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/610f84b83e68c381e8f784ae4d044c80e1948b67\"\u003e\u003ccode\u003e610f84b\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing pathological autolink email addresses\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/9f1d73897a56cbd74c39347af351a473e70297e1\"\u003e\u003ccode\u003e9f1d738\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing pathological HTML block attributes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/e13297e849995fdd582a85841067bff1d9c35ee5\"\u003e\u003ccode\u003ee13297e\u003c/code\u003e\u003c/a\u003e Fix quadratic runtime when parsing pathological backticks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/89d1bd3fa1524e8217ed61db5e8116c82434470f\"\u003e\u003ccode\u003e89d1bd3\u003c/code\u003e\u003c/a\u003e Fix quadratic runtime when parsing with lots of \u003ccode\u003e\u0026lt;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.29.0...commonmark-parent-0.30.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.commonmark:commonmark-ext-autolink` from 0.29.0 to 0.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/commonmark/commonmark-java/releases\"\u003eorg.commonmark:commonmark-ext-autolink's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ecommonmark-java 0.30.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew option \u003ccode\u003elineSeparator\u003c/code\u003e for \u003ccode\u003eMarkdownRenderer.Builder\u003c/code\u003e to change the default line\nseparator from \u003ccode\u003e\\n\u003c/code\u003e (e.g. to \u003ccode\u003e\\r\\n\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Support extracting the raw YAML content so that you can\ndo the YAML parsing using a library (instead of the limited built-in parsing) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTables extension: Limit max number of parsed table cells by default (1 million cells),\nsee option \u003ccode\u003emaxCells\u003c/code\u003e in \u003ccode\u003eTablesExtension.Builder\u003c/code\u003e. Parsing will throw an error if the\nlimit would be exceeded, to protect against malicious input.\u003c/li\u003e\n\u003cli\u003eThe default for \u003ccode\u003emaxOpenBlockParsers\u003c/code\u003e for \u003ccode\u003eParser.Builder\u003c/code\u003e is now 100; configure the\noption to remove the limit.\u003c/li\u003e\n\u003cli\u003eLimit how deeply inline nodes may nest by default (100), see option \u003ccode\u003emaxInlineNesting\u003c/code\u003e in\n\u003ccode\u003eParser.Builder\u003c/code\u003e; configure the option to remove the limit. This covers emphasis-like\ndelimiters (e.g. \u003ccode\u003e*\u003c/code\u003e or the ins extension's \u003ccode\u003e+\u003c/code\u003e) as well as images, which can otherwise\nnest arbitrarily deep for a small amount of input. Anything over the limit is treated as\nplain text instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix quadratic runtime on various pathological inputs (where inline syntax to start a\nnode is used repeatedly but never finished):\n\u003cul\u003e\n\u003cli\u003eInline HTML like \u003ccode\u003e\u0026quot;x \u0026lt;!--\u0026quot;.repeat(100_000)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/447\"\u003e#447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAutolink starts like \u003ccode\u003e\u0026quot;\u0026lt;\u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eEmphasis like \u003ccode\u003e\u0026quot;a**b\u0026quot; + \u0026quot;c* \u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBackticks runs of different lengths\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow errors when parsing pathological inputs with repeated syntax:\n\u003cul\u003e\n\u003cli\u003eHTML block attributes\u003c/li\u003e\n\u003cli\u003eAutolink email addresses\u003c/li\u003e\n\u003cli\u003eDeeply nested emphasis\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow error when rendering/visiting deeply nested inline nodes, by capping nesting\ndepth during parsing (see \u003ccode\u003emaxInlineNesting\u003c/code\u003e above). This can happen with emphasis, e.g.\n\u003ccode\u003e\u0026quot;*\u0026quot;.repeat(n) + \u0026quot;x\u0026quot; + \u0026quot;*\u0026quot;.repeat(n)\u003c/code\u003e or \u003ccode\u003e\u0026quot;*a \u0026quot;.repeat(n) + \u0026quot; b*\u0026quot;.repeat(n)\u003c/code\u003e, as well as with\nimages, e.g. \u003ccode\u003e\u0026quot;![\u0026quot;.repeat(https://github.com/commonmark/commonmark-java/blob/HEAD/n) + \u0026quot;x\u0026quot; + \u0026quot;](u)\u0026quot;.repeat(n)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Fix inefficient string concatenation for literal-block values (\u003ccode\u003e|\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md\"\u003eorg.commonmark:commonmark-ext-autolink's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.30.0] - 2026-08-06\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew option \u003ccode\u003elineSeparator\u003c/code\u003e for \u003ccode\u003eMarkdownRenderer.Builder\u003c/code\u003e to change the default line\nseparator from \u003ccode\u003e\\n\u003c/code\u003e (e.g. to \u003ccode\u003e\\r\\n\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Support extracting the raw YAML content so that you can\ndo the YAML parsing using a library (instead of the limited built-in parsing) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTables extension: Limit max number of parsed table cells by default (1 million cells),\nsee option \u003ccode\u003emaxCells\u003c/code\u003e in \u003ccode\u003eTablesExtension.Builder\u003c/code\u003e. Parsing will throw an error if the\nlimit would be exceeded, to protect against malicious input.\u003c/li\u003e\n\u003cli\u003eThe default for \u003ccode\u003emaxOpenBlockParsers\u003c/code\u003e for \u003ccode\u003eParser.Builder\u003c/code\u003e is now 100; configure the\noption to remove the limit.\u003c/li\u003e\n\u003cli\u003eLimit how deeply inline nodes may nest by default (100), see option \u003ccode\u003emaxInlineNesting\u003c/code\u003e in\n\u003ccode\u003eParser.Builder\u003c/code\u003e; configure the option to remove the limit. This covers emphasis-like\ndelimiters (e.g. \u003ccode\u003e*\u003c/code\u003e or the ins extension's \u003ccode\u003e+\u003c/code\u003e) as well as images, which can otherwise\nnest arbitrarily deep for a small amount of input. Anything over the limit is treated as\nplain text instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix quadratic runtime on various pathological inputs (where inline syntax to start a\nnode is used repeatedly but never finished):\n\u003cul\u003e\n\u003cli\u003eInline HTML like \u003ccode\u003e\u0026quot;x \u0026lt;!--\u0026quot;.repeat(100_000)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/447\"\u003e#447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAutolink starts like \u003ccode\u003e\u0026quot;\u0026lt;\u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eEmphasis like \u003ccode\u003e\u0026quot;a**b\u0026quot; + \u0026quot;c* \u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBackticks runs of different lengths\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow errors when parsing pathological inputs with repeated syntax:\n\u003cul\u003e\n\u003cli\u003eHTML block attributes\u003c/li\u003e\n\u003cli\u003eAutolink email addresses\u003c/li\u003e\n\u003cli\u003eDeeply nested emphasis\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow error when rendering/visiting deeply nested inline nodes, by capping nesting\ndepth during parsing (see \u003ccode\u003emaxInlineNesting\u003c/code\u003e above). This can happen with emphasis, e.g.\n\u003ccode\u003e\u0026quot;*\u0026quot;.repeat(n) + \u0026quot;x\u0026quot; + \u0026quot;*\u0026quot;.repeat(n)\u003c/code\u003e or \u003ccode\u003e\u0026quot;*a \u0026quot;.repeat(n) + \u0026quot; b*\u0026quot;.repeat(n)\u003c/code\u003e, as well as with\nimages, e.g. \u003ccode\u003e\u0026quot;![\u0026quot;.repeat(https://github.com/commonmark/commonmark-java/blob/main/n) + \u0026quot;x\u0026quot; + \u0026quot;](u)\u0026quot;.repeat(n)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Fix inefficient string concatenation for literal-block values (\u003ccode\u003e|\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/64037cf982f2b12a4a2fa1c5a75c6d3f4ab979bf\"\u003e\u003ccode\u003e64037cf\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release commonmark-parent-0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/bd3e06669fd168874721267e7e5f5bd1d3433466\"\u003e\u003ccode\u003ebd3e066\u003c/code\u003e\u003c/a\u003e Fix Javadoc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/4aaf754cc90b4a5a62647a8fc621185c934f8bbf\"\u003e\u003ccode\u003e4aaf754\u003c/code\u003e\u003c/a\u003e mvn versions:set -DnewVersion=0.30.0-SNAPSHOT\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/42b4fb7adfe288ef13e9e27ab20aff7e91b0ab9d\"\u003e\u003ccode\u003e42b4fb7\u003c/code\u003e\u003c/a\u003e Prepare CHANGELOG for version 0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/b76e09d7a8362abb5f04e1d6b91dbd6da279a6fc\"\u003e\u003ccode\u003eb76e09d\u003c/code\u003e\u003c/a\u003e Limit how deep inline nodes may nest by default (100)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/49f65cb5cbec93cff713179990307145198e7061\"\u003e\u003ccode\u003e49f65cb\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing deeply nested emphasis\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/610f84b83e68c381e8f784ae4d044c80e1948b67\"\u003e\u003ccode\u003e610f84b\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing pathological autolink email addresses\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/9f1d73897a56cbd74c39347af351a473e70297e1\"\u003e\u003ccode\u003e9f1d738\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing pathological HTML block attributes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/e13297e849995fdd582a85841067bff1d9c35ee5\"\u003e\u003ccode\u003ee13297e\u003c/code\u003e\u003c/a\u003e Fix quadratic runtime when parsing pathological backticks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/89d1bd3fa1524e8217ed61db5e8116c82434470f\"\u003e\u003ccode\u003e89d1bd3\u003c/code\u003e\u003c/a\u003e Fix quadratic runtime when parsing with lots of \u003ccode\u003e\u0026lt;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.29.0...commonmark-parent-0.30.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.commonmark:commonmark-ext-gfm-strikethrough` from 0.29.0 to 0.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/commonmark/commonmark-java/releases\"\u003eorg.commonmark:commonmark-ext-gfm-strikethrough's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ecommonmark-java 0.30.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew option \u003ccode\u003elineSeparator\u003c/code\u003e for \u003ccode\u003eMarkdownRenderer.Builder\u003c/code\u003e to change the default line\nseparator from \u003ccode\u003e\\n\u003c/code\u003e (e.g. to \u003ccode\u003e\\r\\n\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Support extracting the raw YAML content so that you can\ndo the YAML parsing using a library (instead of the limited built-in parsing) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTables extension: Limit max number of parsed table cells by default (1 million cells),\nsee option \u003ccode\u003emaxCells\u003c/code\u003e in \u003ccode\u003eTablesExtension.Builder\u003c/code\u003e. Parsing will throw an error if the\nlimit would be exceeded, to protect against malicious input.\u003c/li\u003e\n\u003cli\u003eThe default for \u003ccode\u003emaxOpenBlockParsers\u003c/code\u003e for \u003ccode\u003eParser.Builder\u003c/code\u003e is now 100; configure the\noption to remove the limit.\u003c/li\u003e\n\u003cli\u003eLimit how deeply inline nodes may nest by default (100), see option \u003ccode\u003emaxInlineNesting\u003c/code\u003e in\n\u003ccode\u003eParser.Builder\u003c/code\u003e; configure the option to remove the limit. This covers emphasis-like\ndelimiters (e.g. \u003ccode\u003e*\u003c/code\u003e or the ins extension's \u003ccode\u003e+\u003c/code\u003e) as well as images, which can otherwise\nnest arbitrarily deep for a small amount of input. Anything over the limit is treated as\nplain text instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix quadratic runtime on various pathological inputs (where inline syntax to start a\nnode is used repeatedly but never finished):\n\u003cul\u003e\n\u003cli\u003eInline HTML like \u003ccode\u003e\u0026quot;x \u0026lt;!--\u0026quot;.repeat(100_000)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/447\"\u003e#447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAutolink starts like \u003ccode\u003e\u0026quot;\u0026lt;\u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eEmphasis like \u003ccode\u003e\u0026quot;a**b\u0026quot; + \u0026quot;c* \u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBackticks runs of different lengths\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow errors when parsing pathological inputs with repeated syntax:\n\u003cul\u003e\n\u003cli\u003eHTML block attributes\u003c/li\u003e\n\u003cli\u003eAutolink email addresses\u003c/li\u003e\n\u003cli\u003eDeeply nested emphasis\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow error when rendering/visiting deeply nested inline nodes, by capping nesting\ndepth during parsing (see \u003ccode\u003emaxInlineNesting\u003c/code\u003e above). This can happen with emphasis, e.g.\n\u003ccode\u003e\u0026quot;*\u0026quot;.repeat(n) + \u0026quot;x\u0026quot; + \u0026quot;*\u0026quot;.repeat(n)\u003c/code\u003e or \u003ccode\u003e\u0026quot;*a \u0026quot;.repeat(n) + \u0026quot; b*\u0026quot;.repeat(n)\u003c/code\u003e, as well as with\nimages, e.g. \u003ccode\u003e\u0026quot;![\u0026quot;.repeat(https://github.com/commonmark/commonmark-java/blob/HEAD/n) + \u0026quot;x\u0026quot; + \u0026quot;](u)\u0026quot;.repeat(n)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Fix inefficient string concatenation for literal-block values (\u003ccode\u003e|\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md\"\u003eorg.commonmark:commonmark-ext-gfm-strikethrough's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.30.0] - 2026-08-06\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew option \u003ccode\u003elineSeparator\u003c/code\u003e for \u003ccode\u003eMarkdownRenderer.Builder\u003c/code\u003e to change the default line\nseparator from \u003ccode\u003e\\n\u003c/code\u003e (e.g. to \u003ccode\u003e\\r\\n\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Support extracting the raw YAML content so that you can\ndo the YAML parsing using a library (instead of the limited built-in parsing) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTables extension: Limit max number of parsed table cells by default (1 million cells),\nsee option \u003ccode\u003emaxCells\u003c/code\u003e in \u003ccode\u003eTablesExtension.Builder\u003c/code\u003e. Parsing will throw an error if the\nlimit would be exceeded, to protect against malicious input.\u003c/li\u003e\n\u003cli\u003eThe default for \u003ccode\u003emaxOpenBlockParsers\u003c/code\u003e for \u003ccode\u003eParser.Builder\u003c/code\u003e is now 100; configure the\noption to remove the limit.\u003c/li\u003e\n\u003cli\u003eLimit how deeply inline nodes may nest by default (100), see option \u003ccode\u003emaxInlineNesting\u003c/code\u003e in\n\u003ccode\u003eParser.Builder\u003c/code\u003e; configure the option to remove the limit. This covers emphasis-like\ndelimiters (e.g. \u003ccode\u003e*\u003c/code\u003e or the ins extension's \u003ccode\u003e+\u003c/code\u003e) as well as images, which can otherwise\nnest arbitrarily deep for a small amount of input. Anything over the limit is treated as\nplain text instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix quadratic runtime on various pathological inputs (where inline syntax to start a\nnode is used repeatedly but never finished):\n\u003cul\u003e\n\u003cli\u003eInline HTML like \u003ccode\u003e\u0026quot;x \u0026lt;!--\u0026quot;.repeat(100_000)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/447\"\u003e#447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAutolink starts like \u003ccode\u003e\u0026quot;\u0026lt;\u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eEmphasis like \u003ccode\u003e\u0026quot;a**b\u0026quot; + \u0026quot;c* \u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBackticks runs of different lengths\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow errors when parsing pathological inputs with repeated syntax:\n\u003cul\u003e\n\u003cli\u003eHTML block attributes\u003c/li\u003e\n\u003cli\u003eAutolink email addresses\u003c/li\u003e\n\u003cli\u003eDeeply nested emphasis\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow error when rendering/visiting deeply nested inline nodes, by capping nesting\ndepth during parsing (see \u003ccode\u003emaxInlineNesting\u003c/code\u003e above). This can happen with emphasis, e.g.\n\u003ccode\u003e\u0026quot;*\u0026quot;.repeat(n) + \u0026quot;x\u0026quot; + \u0026quot;*\u0026quot;.repeat(n)\u003c/code\u003e or \u003ccode\u003e\u0026quot;*a \u0026quot;.repeat(n) + \u0026quot; b*\u0026quot;.repeat(n)\u003c/code\u003e, as well as with\nimages, e.g. \u003ccode\u003e\u0026quot;![\u0026quot;.repeat(https://github.com/commonmark/commonmark-java/blob/main/n) + \u0026quot;x\u0026quot; + \u0026quot;](u)\u0026quot;.repeat(n)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Fix inefficient string concatenation for literal-block values (\u003ccode\u003e|\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/64037cf982f2b12a4a2fa1c5a75c6d3f4ab979bf\"\u003e\u003ccode\u003e64037cf\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release commonmark-parent-0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/bd3e06669fd168874721267e7e5f5bd1d3433466\"\u003e\u003ccode\u003ebd3e066\u003c/code\u003e\u003c/a\u003e Fix Javadoc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/4aaf754cc90b4a5a62647a8fc621185c934f8bbf\"\u003e\u003ccode\u003e4aaf754\u003c/code\u003e\u003c/a\u003e mvn versions:set -DnewVersion=0.30.0-SNAPSHOT\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/42b4fb7adfe288ef13e9e27ab20aff7e91b0ab9d\"\u003e\u003ccode\u003e42b4fb7\u003c/code\u003e\u003c/a\u003e Prepare CHANGELOG for version 0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/b76e09d7a8362abb5f04e1d6b91dbd6da279a6fc\"\u003e\u003ccode\u003eb76e09d\u003c/code\u003e\u003c/a\u003e Limit how deep inline nodes may nest by default (100)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/49f65cb5cbec93cff713179990307145198e7061\"\u003e\u003ccode\u003e49f65cb\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing deeply nested emphasis\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/610f84b83e68c381e8f784ae4d044c80e1948b67\"\u003e\u003ccode\u003e610f84b\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing pathological autolink email addresses\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/9f1d73897a56cbd74c39347af351a473e70297e1\"\u003e\u003ccode\u003e9f1d738\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing pathological HTML block attributes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/e13297e849995fdd582a85841067bff1d9c35ee5\"\u003e\u003ccode\u003ee13297e\u003c/code\u003e\u003c/a\u003e Fix quadratic runtime when parsing pathological backticks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/89d1bd3fa1524e8217ed61db5e8116c82434470f\"\u003e\u003ccode\u003e89d1bd3\u003c/code\u003e\u003c/a\u003e Fix quadratic runtime when parsing with lots of \u003ccode\u003e\u0026lt;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.29.0...commonmark-parent-0.30.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.commonmark:commonmark-ext-gfm-tables` from 0.29.0 to 0.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/commonmark/commonmark-java/releases\"\u003eorg.commonmark:commonmark-ext-gfm-tables's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ecommonmark-java 0.30.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew option \u003ccode\u003elineSeparator\u003c/code\u003e for \u003ccode\u003eMarkdownRenderer.Builder\u003c/code\u003e to change the default line\nseparator from \u003ccode\u003e\\n\u003c/code\u003e (e.g. to \u003ccode\u003e\\r\\n\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Support extracting the raw YAML content so that you can\ndo the YAML parsing using a library (instead of the limited built-in parsing) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTables extension: Limit max number of parsed table cells by default (1 million cells),\nsee option \u003ccode\u003emaxCells\u003c/code\u003e in \u003ccode\u003eTablesExtension.Builder\u003c/code\u003e. Parsing will throw an error if the\nlimit would be exceeded, to protect against malicious input.\u003c/li\u003e\n\u003cli\u003eThe default for \u003ccode\u003emaxOpenBlockParsers\u003c/code\u003e for \u003ccode\u003eParser.Builder\u003c/code\u003e is now 100; configure the\noption to remove the limit.\u003c/li\u003e\n\u003cli\u003eLimit how deeply inline nodes may nest by default (100), see option \u003ccode\u003emaxInlineNesting\u003c/code\u003e in\n\u003ccode\u003eParser.Builder\u003c/code\u003e; configure the option to remove the limit. This covers emphasis-like\ndelimiters (e.g. \u003ccode\u003e*\u003c/code\u003e or the ins extension's \u003ccode\u003e+\u003c/code\u003e) as well as images, which can otherwise\nnest arbitrarily deep for a small amount of input. Anything over the limit is treated as\nplain text instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix quadratic runtime on various pathological inputs (where inline syntax to start a\nnode is used repeatedly but never finished):\n\u003cul\u003e\n\u003cli\u003eInline HTML like \u003ccode\u003e\u0026quot;x \u0026lt;!--\u0026quot;.repeat(100_000)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/447\"\u003e#447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAutolink starts like \u003ccode\u003e\u0026quot;\u0026lt;\u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eEmphasis like \u003ccode\u003e\u0026quot;a**b\u0026quot; + \u0026quot;c* \u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBackticks runs of different lengths\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow errors when parsing pathological inputs with repeated syntax:\n\u003cul\u003e\n\u003cli\u003eHTML block attributes\u003c/li\u003e\n\u003cli\u003eAutolink email addresses\u003c/li\u003e\n\u003cli\u003eDeeply nested emphasis\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow error when rendering/visiting deeply nested inline nodes, by capping nesting\ndepth during parsing (see \u003ccode\u003emaxInlineNesting\u003c/code\u003e above). This can happen with emphasis, e.g.\n\u003ccode\u003e\u0026quot;*\u0026quot;.repeat(n) + \u0026quot;x\u0026quot; + \u0026quot;*\u0026quot;.repeat(n)\u003c/code\u003e or \u003ccode\u003e\u0026quot;*a \u0026quot;.repeat(n) + \u0026quot; b*\u0026quot;.repeat(n)\u003c/code\u003e, as well as with\nimages, e.g. \u003ccode\u003e\u0026quot;![\u0026quot;.repeat(https://github.com/commonmark/commonmark-java/blob/HEAD/n) + \u0026quot;x\u0026quot; + \u0026quot;](u)\u0026quot;.repeat(n)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Fix inefficient string concatenation for literal-block values (\u003ccode\u003e|\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md\"\u003eorg.commonmark:commonmark-ext-gfm-tables's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.30.0] - 2026-08-06\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew option \u003ccode\u003elineSeparator\u003c/code\u003e for \u003ccode\u003eMarkdownRenderer.Builder\u003c/code\u003e to change the default line\nseparator from \u003ccode\u003e\\n\u003c/code\u003e (e.g. to \u003ccode\u003e\\r\\n\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Support extracting the raw YAML content so that you can\ndo the YAML parsing using a library (instead of the limited built-in parsing) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTables extension: Limit max number of parsed table cells by default (1 million cells),\nsee option \u003ccode\u003emaxCells\u003c/code\u003e in \u003ccode\u003eTablesExtension.Builder\u003c/code\u003e. Parsing will throw an error if the\nlimit would be exceeded, to protect against malicious input.\u003c/li\u003e\n\u003cli\u003eThe default for \u003ccode\u003emaxOpenBlockParsers\u003c/code\u003e for \u003ccode\u003eParser.Builder\u003c/code\u003e is now 100; configure the\noption to remove the limit.\u003c/li\u003e\n\u003cli\u003eLimit how deeply inline nodes may nest by default (100), see option \u003ccode\u003emaxInlineNesting\u003c/code\u003e in\n\u003ccode\u003eParser.Builder\u003c/code\u003e; configure the option to remove the limit. This covers emphasis-like\ndelimiters (e.g. \u003ccode\u003e*\u003c/code\u003e or the ins extension's \u003ccode\u003e+\u003c/code\u003e) as well as images, which can otherwise\nnest arbitrarily deep for a small amount of input. Anything over the limit is treated as\nplain text instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix quadratic runtime on various pathological inputs (where inline syntax to start a\nnode is used repeatedly but never finished):\n\u003cul\u003e\n\u003cli\u003eInline HTML like \u003ccode\u003e\u0026quot;x \u0026lt;!--\u0026quot;.repeat(100_000)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/447\"\u003e#447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAutolink starts like \u003ccode\u003e\u0026quot;\u0026lt;\u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eEmphasis like \u003ccode\u003e\u0026quot;a**b\u0026quot; + \u0026quot;c* \u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBackticks runs of different lengths\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow errors when parsing pathological inputs with repeated syntax:\n\u003cul\u003e\n\u003cli\u003eHTML block attributes\u003c/li\u003e\n\u003cli\u003eAutolink email addresses\u003c/li\u003e\n\u003cli\u003eDeeply nested emphasis\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow error when rendering/visiting deeply nested inline nodes, by capping nesting\ndepth during parsing (see \u003ccode\u003emaxInlineNesting\u003c/code\u003e above). This can happen with emphasis, e.g.\n\u003ccode\u003e\u0026quot;*\u0026quot;.repeat(n) + \u0026quot;x\u0026quot; + \u0026quot;*\u0026quot;.repeat(n)\u003c/code\u003e or \u003ccode\u003e\u0026quot;*a \u0026quot;.repeat(n) + \u0026quot; b*\u0026quot;.repeat(n)\u003c/code\u003e, as well as with\nimages, e.g. \u003ccode\u003e\u0026quot;![\u0026quot;.repeat(https://github.com/commonmark/commonmark-java/blob/main/n) + \u0026quot;x\u0026quot; + \u0026quot;](u)\u0026quot;.repeat(n)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Fix inefficient string concatenation for literal-block values (\u003ccode\u003e|\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/64037cf982f2b12a4a2fa1c5a75c6d3f4ab979bf\"\u003e\u003ccode\u003e64037cf\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release commonmark-parent-0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/bd3e06669fd168874721267e7e5f5bd1d3433466\"\u003e\u003ccode\u003ebd3e066\u003c/code\u003e\u003c/a\u003e Fix Javadoc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/4aaf754cc90b4a5a62647a8fc621185c934f8bbf\"\u003e\u003ccode\u003e4aaf754\u003c/code\u003e\u003c/a\u003e mvn versions:set -DnewVersion=0.30.0-SNAPSHOT\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/42b4fb7adfe288ef13e9e27ab20aff7e91b0ab9d\"\u003e\u003ccode\u003e42b4fb7\u003c/code\u003e\u003c/a\u003e Prepare CHANGELOG for version 0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/b76e09d7a8362abb5f04e1d6b91dbd6da279a6fc\"\u003e\u003ccode\u003eb76e09d\u003c/code\u003e\u003c/a\u003e Limit how deep inline nodes may nest by default (100)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/49f65cb5cbec93cff713179990307145198e7061\"\u003e\u003ccode\u003e49f65cb\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing deeply nested emphasis\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/610f84b83e68c381e8f784ae4d044c80e1948b67\"\u003e\u003ccode\u003e610f84b\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing pathological autolink email addresses\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/9f1d73897a56cbd74c39347af351a473e70297e1\"\u003e\u003ccode\u003e9f1d738\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing pathological HTML block attributes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/e13297e849995fdd582a85841067bff1d9c35ee5\"\u003e\u003ccode\u003ee13297e\u003c/code\u003e\u003c/a\u003e Fix quadratic runtime when parsing pathological backticks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/89d1bd3fa1524e8217ed61db5e8116c82434470f\"\u003e\u003ccode\u003e89d1bd3\u003c/code\u003e\u003c/a\u003e Fix quadratic runtime when parsing with lots of \u003ccode\u003e\u0026lt;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.29.0...commonmark-parent-0.30.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.commonmark:commonmark-ext-task-list-items` from 0.29.0 to 0.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/commonmark/commonmark-java/releases\"\u003eorg.commonmark:commonmark-ext-task-list-items's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ecommonmark-java 0.30.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew option \u003ccode\u003elineSeparator\u003c/code\u003e for \u003ccode\u003eMarkdownRenderer.Builder\u003c/code\u003e to change the default line\nseparator from \u003ccode\u003e\\n\u003c/code\u003e (e.g. to \u003ccode\u003e\\r\\n\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Support extracting the raw YAML content so that you can\ndo the YAML parsing using a library (instead of the limited built-in parsing) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTables extension: Limit max number of parsed table cells by default (1 million cells),\nsee option \u003ccode\u003emaxCells\u003c/code\u003e in \u003ccode\u003eTablesExtension.Builder\u003c/code\u003e. Parsing will throw an error if the\nlimit would be exceeded, to protect against malicious input.\u003c/li\u003e\n\u003cli\u003eThe default for \u003ccode\u003emaxOpenBlockParsers\u003c/code\u003e for \u003ccode\u003eParser.Builder\u003c/code\u003e is now 100; configure the\noption to remove the limit.\u003c/li\u003e\n\u003cli\u003eLimit how deeply inline nodes may nest by default (100), see option \u003ccode\u003emaxInlineNesting\u003c/code\u003e in\n\u003ccode\u003eParser.Builder\u003c/code\u003e; configure the option to remove the limit. This covers emphasis-like\ndelimiters (e.g. \u003ccode\u003e*\u003c/code\u003e or the ins extension's \u003ccode\u003e+\u003c/code\u003e) as well as images, which can otherwise\nnest arbitrarily deep for a small amount of input. Anything over the limit is treated as\nplain text instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix quadratic runtime on various pathological inputs (where inline syntax to start a\nnode is used repeatedly but never finished):\n\u003cul\u003e\n\u003cli\u003eInline HTML like \u003ccode\u003e\u0026quot;x \u0026lt;!--\u0026quot;.repeat(100_000)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/447\"\u003e#447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAutolink starts like \u003ccode\u003e\u0026quot;\u0026lt;\u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eEmphasis like \u003ccode\u003e\u0026quot;a**b\u0026quot; + \u0026quot;c* \u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBackticks runs of different lengths\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow errors when parsing pathological inputs with repeated syntax:\n\u003cul\u003e\n\u003cli\u003eHTML block attributes\u003c/li\u003e\n\u003cli\u003eAutolink email addresses\u003c/li\u003e\n\u003cli\u003eDeeply nested emphasis\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow error when rendering/visiting deeply nested inline nodes, by capping nesting\ndepth during parsing (see \u003ccode\u003emaxInlineNesting\u003c/code\u003e above). This can happen with emphasis, e.g.\n\u003ccode\u003e\u0026quot;*\u0026quot;.repeat(n) + \u0026quot;x\u0026quot; + \u0026quot;*\u0026quot;.repeat(n)\u003c/code\u003e or \u003ccode\u003e\u0026quot;*a \u0026quot;.repeat(n) + \u0026quot; b*\u0026quot;.repeat(n)\u003c/code\u003e, as well as with\nimages, e.g. \u003ccode\u003e\u0026quot;![\u0026quot;.repeat(https://github.com/commonmark/commonmark-java/blob/HEAD/n) + \u0026quot;x\u0026quot; + \u0026quot;](u)\u0026quot;.repeat(n)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Fix inefficient string concatenation for literal-block values (\u003ccode\u003e|\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md\"\u003eorg.commonmark:commonmark-ext-task-list-items's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.30.0] - 2026-08-06\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew option \u003ccode\u003elineSeparator\u003c/code\u003e for \u003ccode\u003eMarkdownRenderer.Builder\u003c/code\u003e to change the default line\nseparator from \u003ccode\u003e\\n\u003c/code\u003e (e.g. to \u003ccode\u003e\\r\\n\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Support extracting the raw YAML content so that you can\ndo the YAML parsing using a library (instead of the limited built-in parsing) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTables extension: Limit max number of parsed table cells by default (1 million cells),\nsee option \u003ccode\u003emaxCells\u003c/code\u003e in \u003ccode\u003eTablesExtension.Builder\u003c/code\u003e. Parsing will throw an error if the\nlimit would be exceeded, to protect against malicious input.\u003c/li\u003e\n\u003cli\u003eThe default for \u003ccode\u003emaxOpenBlockParsers\u003c/code\u003e for \u003ccode\u003eParser.Builder\u003c/code\u003e is now 100; configure the\noption to remove the limit.\u003c/li\u003e\n\u003cli\u003eLimit how deeply inline nodes may nest by default (100), see option \u003ccode\u003emaxInlineNesting\u003c/code\u003e in\n\u003ccode\u003eParser.Builder\u003c/code\u003e; configure the option to remove the limit. This covers emphasis-like\ndelimiters (e.g. \u003ccode\u003e*\u003c/code\u003e or the ins extension's \u003ccode\u003e+\u003c/code\u003e) as well as images, which can otherwise\nnest arbitrarily deep for a small amount of input. Anything over the limit is treated as\nplain text instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix quadratic runtime on various pathological inputs (where inline syntax to start a\nnode is used repeatedly but never finished):\n\u003cul\u003e\n\u003cli\u003eInline HTML like \u003ccode\u003e\u0026quot;x \u0026lt;!--\u0026quot;.repeat(100_000)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/447\"\u003e#447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAutolink starts like \u003ccode\u003e\u0026quot;\u0026lt;\u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eEmphasis like \u003ccode\u003e\u0026quot;a**b\u0026quot; + \u0026quot;c* \u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBackticks runs of different lengths\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow errors when parsing pathological inputs with repeated syntax:\n\u003cul\u003e\n\u003cli\u003eHTML block attributes\u003c/li\u003e\n\u003cli\u003eAutolink email addresses\u003c/li\u003e\n\u003cli\u003eDeeply nested emphasis\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow error when rendering/visiting deeply nested inline nodes, by capping nesting\ndepth during parsing (see \u003ccode\u003emaxInlineNesting\u003c/code\u003e above). This can happen with emphasis, e.g.\n\u003ccode\u003e\u0026quot;*\u0026quot;.repeat(n) + \u0026quot;x\u0026quot; + \u0026quot;*\u0026quot;.repeat(n)\u003c/code\u003e or \u003ccode\u003e\u0026quot;*a \u0026quot;.repeat(n) + \u0026quot; b*\u0026quot;.repeat(n)\u003c/code\u003e, as well as with\nimages, e.g. \u003ccode\u003e\u0026quot;![\u0026quot;.repeat(https://github.com/commonmark/commonmark-java/blob/main/n) + \u0026quot;x\u0026quot; + \u0026quot;](u)\u0026quot;.repeat(n)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Fix inefficient string concatenation for literal-block values (\u003ccode\u003e|\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/64037cf982f2b12a4a2fa1c5a75c6d3f4ab979bf\"\u003e\u003ccode\u003e64037cf\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release commonmark-parent-0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/bd3e06669fd168874721267e7e5f5bd1d3433466\"\u003e\u003ccode\u003ebd3e066\u003c/code\u003e\u003c/a\u003e Fix Javadoc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/4aaf754cc90b4a5a62647a8fc621185c934f8bbf\"\u003e\u003ccode\u003e4aaf754\u003c/code\u003e\u003c/a\u003e mvn versions:set -DnewVersion=0.30.0-SNAPSHOT\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/42b4fb7adfe288ef13e9e27ab20aff7e91b0ab9d\"\u003e\u003ccode\u003e42b4fb7\u003c/code\u003e\u003c/a\u003e Prepare CHANGELOG for version 0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/b76e09d7a8362abb5f04e1d6b91dbd6da279a6fc\"\u003e\u003ccode\u003eb76e09d\u003c/code\u003e\u003c/a\u003e Limit how deep inline nodes may nest by default (100)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/49f65cb5cbec93cff713179990307145198e7061\"\u003e\u003ccode\u003e49f65cb\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing deeply nested emphasis\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/610f84b83e68c381e8f784ae4d044c80e1948b67\"\u003e\u003ccode\u003e610f84b\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing pathological autolink email addresses\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/9f1d73897a56cbd74c39347af351a473e70297e1\"\u003e\u003ccode\u003e9f1d738\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing pathological HTML block attributes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/e13297e849995fdd582a85841067bff1d9c35ee5\"\u003e\u003ccode\u003ee13297e\u003c/code\u003e\u003c/a\u003e Fix quadratic runtime when parsing pathological backticks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/89d1bd3fa1524e8217ed61db5e8116c82434470f\"\u003e\u003ccode\u003e89d1bd3\u003c/code\u003e\u003c/a\u003e Fix quadratic runtime when parsing with lots of \u003ccode\u003e\u0026lt;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.29.0...commonmark-parent-0.30.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.commonmark:commonmark-ext-autolink` from 0.29.0 to 0.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/commonmark/commonmark-java/releases\"\u003eorg.commonmark:commonmark-ext-autolink's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ecommonmark-java 0.30.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew option \u003ccode\u003elineSeparator\u003c/code\u003e for \u003ccode\u003eMarkdownRenderer.Builder\u003c/code\u003e to change the default line\nseparator from \u003ccode\u003e\\n\u003c/code\u003e (e.g. to \u003ccode\u003e\\r\\n\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Support extracting the raw YAML content so that you can\ndo the YAML parsing using a library (instead of the limited built-in parsing) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTables extension: Limit max number of parsed table cells by default (1 million cells),\nsee option \u003ccode\u003emaxCells\u003c/code\u003e in \u003ccode\u003eTablesExtension.Builder\u003c/code\u003e. Parsing will throw an error if the\nlimit would be exceeded, to protect against malicious input.\u003c/li\u003e\n\u003cli\u003eThe default for \u003ccode\u003emaxOpenBlockParsers\u003c/code\u003e for \u003ccode\u003eParser.Builder\u003c/code\u003e is now 100; configure the\noption to remove the limit.\u003c/li\u003e\n\u003cli\u003eLimit how deeply inline nodes may nest by default (100), see option \u003ccode\u003emaxInlineNesting\u003c/code\u003e in\n\u003ccode\u003eParser.Builder\u003c/code\u003e; configure the option to remove the limit. This covers emphasis-like\ndelimiters (e.g. \u003ccode\u003e*\u003c/code\u003e or the ins extension's \u003ccode\u003e+\u003c/code\u003e) as well as images, which can otherwise\nnest arbitrarily deep for a small amount of input. Anything over the limit is treated as\nplain text instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix quadratic runtime on various pathological inputs (where inline syntax to start a\nnode is used repeatedly but never finished):\n\u003cul\u003e\n\u003cli\u003eInline HTML like \u003ccode\u003e\u0026quot;x \u0026lt;!--\u0026quot;.repeat(100_000)\u003c/code\u003e (\u003ca href=\"https://redirect.github...\n\n_Description has been truncated_","html_url":"https://github.com/l3ocifer/puck-openclaw/pull/556","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/l3ocifer%2Fpuck-openclaw/issues/556","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/556/packages"},{"uuid":"5452940009","node_id":"PR_kwDOTtjWm88AAAABDflKig","number":7,"state":"closed","title":"chore(deps): bump the kotlin group across 1 directory with 6 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-09-14T18:31:40.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-14T18:13:41.000Z","updated_at":"2026-09-14T18:31:43.000Z","time_to_close":1079,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"kotlin","update_count":6,"packages":[{"name":"org.jetbrains.kotlinx:kotlinx-serialization-json","old_version":"1.8.0","new_version":"1.11.0","repository_url":"https://github.com/Kotlin/kotlinx.serialization"},{"name":"org.jetbrains.kotlinx:kotlinx-coroutines-android","old_version":"1.10.1","new_version":"1.11.0","repository_url":"https://github.com/Kotlin/kotlinx.coroutines"},{"name":"org.jetbrains.kotlin.android","old_version":"2.0.21","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.compose","old_version":"2.0.21","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.0.21","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"com.google.devtools.ksp","old_version":"2.0.21-1.0.28","new_version":"2.3.12","repository_url":"https://github.com/google/ksp"}],"path":null,"ecosystem":"maven"},"body":"Bumps the kotlin group with 6 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [org.jetbrains.kotlinx:kotlinx-serialization-json](https://github.com/Kotlin/kotlinx.serialization) | `1.8.0` | `1.11.0` |\n| [org.jetbrains.kotlinx:kotlinx-coroutines-android](https://github.com/Kotlin/kotlinx.coroutines) | `1.10.1` | `1.11.0` |\n| [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) | `2.0.21` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.compose](https://github.com/JetBrains/kotlin) | `2.0.21` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.serialization](https://github.com/JetBrains/kotlin) | `2.0.21` | `2.4.20` |\n| [com.google.devtools.ksp](https://github.com/google/ksp) | `2.0.21-1.0.28` | `2.3.12` |\n\n\nUpdates `org.jetbrains.kotlinx:kotlinx-serialization-json` from 1.8.0 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/releases\"\u003eorg.jetbrains.kotlinx:kotlinx-serialization-json's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.11.0\u003c/h2\u003e\n\u003cp\u003eThis release is based on Kotlin 2.3.20 and provides a new Json exceptions API and some bugfixes and improvements.\u003c/p\u003e\n\u003ch2\u003eExpose Json exceptions structure\u003c/h2\u003e\n\u003cp\u003eTo make working with exceptions easier and providing proper error codes in e.g., REST APIs,\nclasses \u003ccode\u003eJsonException\u003c/code\u003e, \u003ccode\u003eJsonDecodingException\u003c/code\u003e, and \u003ccode\u003eJsonEncodingException\u003c/code\u003e are now public.\nThey have relevant public properties, such as \u003ccode\u003eshortMessage\u003c/code\u003e, \u003ccode\u003epath\u003c/code\u003e, \u003ccode\u003eoffset\u003c/code\u003e, and others.\nThis API is currently experimental, and we're going to improve it further in the subsequent releases.\nSee the linked issues for the details: \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/1930\"\u003e#1930\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/1877\"\u003e#1877\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eAbility to hide user input from exception messages for security/privacy reasons.\u003c/h2\u003e\n\u003cp\u003eHistorically, exception messages in kotlinx.serialization often included the input Json itself for debuggability reason.\nSuch behavior may pose additional challenges for logging, analytics, and other systems, since\na system is not always allowed to store user data due to privacy/security reasons, which imposes additional sanitation logic.\nTo address this issue, a new property \u003ccode\u003eexceptionsWithDebugInfo\u003c/code\u003e is added to \u003ccode\u003eJsonConfiguration\u003c/code\u003e.\nDisable it to hide user input from exception messages.\nIMPORTANT: This behavior will be enabled by default when this property becomes stable.\nSee \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/2590\"\u003e#2590\u003c/a\u003e for more details.\u003c/p\u003e\n\u003ch2\u003eBugfixes and improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCBOR: Relax value range check when decoding numbers (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3167\"\u003e#3167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse a specialized writeDecimalLong method for IO stream integrations in Json (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3152\"\u003e#3152\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.10.0\u003c/h2\u003e\n\u003cp\u003eThis release is based on Kotlin 2.3.0 and contains all of the changes from 1.10.0-RC.\nThe only additional change is a fix for ProtoBuf packing of Kotlin unsigned types (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3079\"\u003e#3079\u003c/a\u003e).\nBig thanks to \u003ca href=\"https://github.com/KosmX\"\u003eKosmX\u003c/a\u003e for contributing the fix.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eFor your convenience, the changelog for 1.10.0-RC is duplicated below:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eStabilization of APIs\u003c/h2\u003e\n\u003cp\u003ekotlinx-serialization 1.10 and subsequent releases will be focused on stabilization of existing APIs.\nThe following APIs and configuration options are no longer experimental because they're widely used without any known major issues:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eJson\u003c/code\u003e configuration options: \u003ccode\u003edecodeEnumsCaseInsensitive\u003c/code\u003e, \u003ccode\u003eallowTrailingComma\u003c/code\u003e, \u003ccode\u003eallowComments\u003c/code\u003e, and \u003ccode\u003eprettyPrintIndent\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3100\"\u003e#3100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@EncodeDefault\u003c/code\u003e annotation and its modes. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3106\"\u003e#3106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eJsonUnquotedLiteral\u003c/code\u003e constructor function (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/2900\"\u003e#2900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eJsonPrimitive\u003c/code\u003e constructor function overloads that accept unsigned types. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3117\"\u003e#3117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eJSON DSL functions on \u003ccode\u003eJsonElement\u003c/code\u003e with \u003ccode\u003eNothing?\u003c/code\u003e overloads. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3117\"\u003e#3117\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eReadiness for return value checker\u003c/h2\u003e\n\u003cp\u003eKotlin 2.3.0 \u003ca href=\"https://kotlinlang.org/docs/whatsnew23.html#unused-return-value-checker\"\u003eintroduces a new feature\u003c/a\u003e aimed at helping you to catch bugs related to the accidentally ignored return value of the function.\nkotlinx-serialization 1.10.0-RC code is fully marked for this feature, meaning that you can get warnings for unused function calls like \u003ccode\u003eJson.encodeToString(...)\u003c/code\u003e. To get the warnings, the feature has to be enabled in your project as \u003ca href=\"https://kotlinlang.org/docs/unused-return-value-checker.html#configure-the-unused-return-value-checker\"\u003edescribed here\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003ePolymorphism improvements\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/blob/master/CHANGELOG.md\"\u003eorg.jetbrains.kotlinx:kotlinx-serialization-json's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.11.0 / 2026-04-10\u003c/h1\u003e\n\u003cp\u003eThis release is based on Kotlin 2.3.20 and provides new Json exceptions API and some bugfixes and improvements.\u003c/p\u003e\n\u003ch2\u003eExpose Json exceptions structure\u003c/h2\u003e\n\u003cp\u003eTo make working with exceptions easier and providing proper error codes in e.g., REST APIs,\nclasses \u003ccode\u003eJsonException\u003c/code\u003e, \u003ccode\u003eJsonDecodingException\u003c/code\u003e, and \u003ccode\u003eJsonEncodingException\u003c/code\u003e are now public.\nThey have relevant public properties, such as \u003ccode\u003eshortMessage\u003c/code\u003e, \u003ccode\u003epath\u003c/code\u003e, \u003ccode\u003eoffset\u003c/code\u003e, and others.\nThis API is currently experimental, and we're going to improve it further in the subsequent releases.\nSee the linked issues for the details: \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/1930\"\u003e#1930\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/1877\"\u003e#1877\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eAbility to hide user input from exception messages for security/privacy reasons.\u003c/h2\u003e\n\u003cp\u003eHistorically, exception messages in kotlinx.serialization often included the input Json itself for debuggability reason.\nSuch behavior may pose additional challenges for logging, analytics, and other systems, since\na system is not always allowed to store user data due to privacy/security reasons, which imposes additional sanitation logic.\nTo address this issue, a new property \u003ccode\u003eexceptionsWithDebugInfo\u003c/code\u003e is added to \u003ccode\u003eJsonConfiguration\u003c/code\u003e.\nDisable it to hide user input from exception messages.\nIMPORTANT: This behavior will be enabled by default when this property becomes stable.\nSee \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/2590\"\u003e#2590\u003c/a\u003e for more details.\u003c/p\u003e\n\u003ch2\u003eBugfixes and improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCBOR: Relax value range check when decoding numbers (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3167\"\u003e#3167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse a specialized writeDecimalLong method for IO stream integrations in Json (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3152\"\u003e#3152\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.10.0 / 2026-01-21\u003c/h1\u003e\n\u003cp\u003eThis release is based on Kotlin 2.3.0 and contains all of the changes from 1.10.0-RC.\nThe only additional change is a fix for ProtoBuf packing of Kotlin unsigned types (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3079\"\u003e#3079\u003c/a\u003e).\nBig thanks to \u003ca href=\"https://github.com/KosmX\"\u003eKosmX\u003c/a\u003e for contributing the fix.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eFor your convenience, the changelog for 1.10.0-RC is duplicated below:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eStabilization of APIs\u003c/h2\u003e\n\u003cp\u003ekotlinx-serialization 1.10 and subsequent releases will be focused on stabilization of existing APIs.\nThe following APIs and configuration options are no longer experimental because they're widely used without any known major issues:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eJson\u003c/code\u003e configuration options: \u003ccode\u003edecodeEnumsCaseInsensitive\u003c/code\u003e, \u003ccode\u003eallowTrailingComma\u003c/code\u003e, \u003ccode\u003eallowComments\u003c/code\u003e, and \u003ccode\u003eprettyPrintIndent\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3100\"\u003e#3100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@EncodeDefault\u003c/code\u003e annotation and its modes. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3106\"\u003e#3106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eJsonUnquotedLiteral\u003c/code\u003e constructor function (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/2900\"\u003e#2900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eJsonPrimitive\u003c/code\u003e constructor function overloads that accept unsigned types. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3117\"\u003e#3117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eJSON DSL functions on \u003ccode\u003eJsonElement\u003c/code\u003e with \u003ccode\u003eNothing?\u003c/code\u003e overloads. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3117\"\u003e#3117\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eReadiness for return value checker\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/6956af2e6073347c7832c3c5b374fa3b5a345956\"\u003e\u003ccode\u003e6956af2\u003c/code\u003e\u003c/a\u003e Prepare 1.11 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/390d84c68a19cbf7fa453dec22a333648bde49b4\"\u003e\u003ccode\u003e390d84c\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into dev\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/431fe2dc0a144300b33038820d24fc30302c8abc\"\u003e\u003ccode\u003e431fe2d\u003c/code\u003e\u003c/a\u003e Use local repo for publishing (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3171\"\u003e#3171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/05c12b60a6717b99053fb82e1f94d2f859727374\"\u003e\u003ccode\u003e05c12b6\u003c/code\u003e\u003c/a\u003e Add usage attribute to \u0026quot;testRepositories\u0026quot; configuration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/a4e1f082ef2e72caa139b474c05657de6015da20\"\u003e\u003ccode\u003ea4e1f08\u003c/code\u003e\u003c/a\u003e Bump Kover version to 0.9.8 release (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3174\"\u003e#3174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/304e858ccc7066854637d86ab80056f5f2bcc094\"\u003e\u003ccode\u003e304e858\u003c/code\u003e\u003c/a\u003e Expose Json exceptions structure (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3145\"\u003e#3145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/4a0338ef5093d765138151bc30282e909ca459e4\"\u003e\u003ccode\u003e4a0338e\u003c/code\u003e\u003c/a\u003e Included G Play SDK verification file for core-jvm (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3169\"\u003e#3169\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/421f64c74f0ea6d4a3cdc8dd483505366e3f6c8f\"\u003e\u003ccode\u003e421f64c\u003c/code\u003e\u003c/a\u003e CBOR: Relax value range check when decoding numbers (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3167\"\u003e#3167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/85a4f126ec491c77e2b3686cc22c1bae27a20783\"\u003e\u003ccode\u003e85a4f12\u003c/code\u003e\u003c/a\u003e KT-84955: mark apple x64 tagets as deprecated error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/bd38b0e49bce38d1a55576e89856bc63990167ed\"\u003e\u003ccode\u003ebd38b0e\u003c/code\u003e\u003c/a\u003e Remove dead code\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/compare/v1.8.0...v1.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlinx:kotlinx-coroutines-android` from 1.10.1 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/releases\"\u003eorg.jetbrains.kotlinx:kotlinx-coroutines-android's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.11.0\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003ePromise\u003c/code\u003e-related functions from JS and Wasm/JS to the new \u003ccode\u003eweb\u003c/code\u003e target. On Wasm/JS, this is a breaking change. Before the change, \u003ccode\u003ePromise\u003c/code\u003e on Wasm/JS could work with arbitrary Kotlin types, but now, only \u003ccode\u003eJsAny\u003c/code\u003e subtypes are accepted (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4563\"\u003e#4563\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eChanged handling of coroutine exceptions that can't be propagated on JS and Wasm/JS. B\nefore, exceptions were logged, but now, they are reported to the JS runtime (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4451\"\u003e#4451\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4631\"\u003e#4631\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeprecated using \u003ccode\u003eCoroutineDispatcher\u003c/code\u003e as the coroutine context key; now, \u003ccode\u003eContinuationInterceptor\u003c/code\u003e has to be used instead (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4333\"\u003e#4333\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdvanced the deprecation levels on \u003ccode\u003ekotlinx-coroutines-test\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4604\"\u003e#4604\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded lint functions that mark passing a \u003ccode\u003eJob\u003c/code\u003e to coroutine builders as deprecated (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4435\"\u003e#4435\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003erunBlocking\u003c/code\u003e in code shared between JVM and Native (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4368\"\u003e#4368\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003esuspendCancellableCoroutine\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4574\"\u003e#4574\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eflowOn\u003c/code\u003e incorrectly handling \u003ccode\u003eThreadContextElement\u003c/code\u003e updates (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4403\"\u003e#4403\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed exceptions in user-supplied \u003ccode\u003eThread.UncaughtExceptionHandler\u003c/code\u003e instances causing the internal coroutines machinery to fail (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4516\"\u003e#4516\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCoroutineDispatcher.asScheduler\u003c/code\u003e in the RxJava integration not cancelling outstanding work when a \u003ccode\u003eWorker\u003c/code\u003e gets cancelled, which led to memory leaks in some scenarios (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4615\"\u003e#4615\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSharedFlow\u003c/code\u003e entering an invalid state when a subscriber and an emitter are cancelled simultaneously (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4583\"\u003e#4583\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed an R8 optimization leading to \u003ccode\u003eshareIn\u003c/code\u003e/\u003ccode\u003estateIn\u003c/code\u003e coroutines getting garbage-collected (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4646\"\u003e#4646\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/solevic\"\u003e\u003ccode\u003e@​solevic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSmall additions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eCompletableDeferred.asDeferred\u003c/code\u003e for obtaining a read-only \u003ccode\u003eDeferred\u003c/code\u003e view (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4408\"\u003e#4408\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSharedFlow.asFlow\u003c/code\u003e for obtaining a \u003ccode\u003eFlow\u003c/code\u003e view with hidden hot flow semantics (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4530\"\u003e#4530\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/g000sha256\"\u003e\u003ccode\u003e@​g000sha256\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow.collectLatest\u003c/code\u003e overload returning \u003ccode\u003eNothing\u003c/code\u003e to assist with finding unreachable code (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4454\"\u003e#4454\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eReceiveChannel.consumeTo\u003c/code\u003e for consuming a \u003ccode\u003eReceiveChannel\u003c/code\u003e into a \u003ccode\u003eMutableCollection\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4520\"\u003e#4520\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e overload returning a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;\u003c/code\u003e, similar to \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e returning \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4275\"\u003e#4275\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/xit0c\"\u003e\u003ccode\u003e@​xit0c\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded terminal \u003ccode\u003eFlow\u003c/code\u003e operators for collecting a \u003ccode\u003eFlow\u003c/code\u003e to a \u003ccode\u003eMap\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/1541\"\u003e#1541\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog relative to version 1.11.0\u003c/h3\u003e\n\u003cp\u003eNo changes, only the version is increased.\u003c/p\u003e\n\u003ch2\u003e1.11.0-rc02\u003c/h2\u003e\n\u003cp\u003eRestored binary compatibility with 1.10.2 and older versions on Wasm/JS for usages of \u003ccode\u003ePromise\u003c/code\u003e-related functions (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003e1.11.0-rc01\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/blob/master/CHANGES.md\"\u003eorg.jetbrains.kotlinx:kotlinx-coroutines-android's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.11.0\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003ePromise\u003c/code\u003e-related functions from JS and Wasm/JS to the new \u003ccode\u003eweb\u003c/code\u003e target. On Wasm/JS, this is a breaking change. Before the change, \u003ccode\u003ePromise\u003c/code\u003e on Wasm/JS could work with arbitrary Kotlin types, but now, only \u003ccode\u003eJsAny\u003c/code\u003e subtypes are accepted (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4563\"\u003e#4563\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eChanged handling of coroutine exceptions that can't be propagated on JS and Wasm/JS. Before, exceptions were logged, but now, they are reported to the JS runtime (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4451\"\u003e#4451\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4631\"\u003e#4631\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeprecated using \u003ccode\u003eCoroutineDispatcher\u003c/code\u003e as the coroutine context key; now, \u003ccode\u003eContinuationInterceptor\u003c/code\u003e has to be used instead (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4333\"\u003e#4333\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdvanced the deprecation levels on \u003ccode\u003ekotlinx-coroutines-test\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4604\"\u003e#4604\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded lint functions that mark passing a \u003ccode\u003eJob\u003c/code\u003e to coroutine builders as deprecated (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4435\"\u003e#4435\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003erunBlocking\u003c/code\u003e in code shared between JVM and Native (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4368\"\u003e#4368\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003esuspendCancellableCoroutine\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4574\"\u003e#4574\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eflowOn\u003c/code\u003e incorrectly handling \u003ccode\u003eThreadContextElement\u003c/code\u003e updates (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4403\"\u003e#4403\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed exceptions in user-supplied \u003ccode\u003eThread.UncaughtExceptionHandler\u003c/code\u003e instances causing the internal coroutines machinery to fail (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4516\"\u003e#4516\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCoroutineDispatcher.asScheduler\u003c/code\u003e in the RxJava integration not cancelling outstanding work when a \u003ccode\u003eWorker\u003c/code\u003e gets cancelled, which led to memory leaks in some scenarios (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4615\"\u003e#4615\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSharedFlow\u003c/code\u003e entering an invalid state when a subscriber and an emitter are cancelled simultaneously (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4583\"\u003e#4583\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed an R8 optimization leading to \u003ccode\u003eshareIn\u003c/code\u003e/\u003ccode\u003estateIn\u003c/code\u003e coroutines getting garbage-collected (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4646\"\u003e#4646\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/solevic\"\u003e\u003ccode\u003e@​solevic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSmall additions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eCompletableDeferred.asDeferred\u003c/code\u003e for obtaining a read-only \u003ccode\u003eDeferred\u003c/code\u003e view (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4408\"\u003e#4408\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSharedFlow.asFlow\u003c/code\u003e for obtaining a \u003ccode\u003eFlow\u003c/code\u003e view with hidden hot flow semantics (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4530\"\u003e#4530\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/g000sha256\"\u003e\u003ccode\u003e@​g000sha256\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow.collectLatest\u003c/code\u003e overload returning \u003ccode\u003eNothing\u003c/code\u003e to assist with finding unreachable code (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4454\"\u003e#4454\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eReceiveChannel.consumeTo\u003c/code\u003e for consuming a \u003ccode\u003eReceiveChannel\u003c/code\u003e into a \u003ccode\u003eMutableCollection\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4520\"\u003e#4520\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e overload returning a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;\u003c/code\u003e, similar to \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e returning \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4275\"\u003e#4275\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/xit0c\"\u003e\u003ccode\u003e@​xit0c\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded terminal \u003ccode\u003eFlow\u003c/code\u003e operators for collecting a \u003ccode\u003eFlow\u003c/code\u003e to a \u003ccode\u003eMap\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/1541\"\u003e#1541\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog relative to version 1.11.0\u003c/h3\u003e\n\u003cp\u003eNo changes, only the version is increased.\u003c/p\u003e\n\u003ch2\u003eVersion 1.11.0-rc02\u003c/h2\u003e\n\u003cp\u003eRestored binary compatibility with 1.10.2 and older versions on Wasm/JS for usages of \u003ccode\u003ePromise\u003c/code\u003e-related functions (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eVersion 1.11.0-rc01\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/8564f65764d3d05893cec026c6e94250e2b23874\"\u003e\u003ccode\u003e8564f65\u003c/code\u003e\u003c/a\u003e Version 1.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/a4c6af96c15fe30f5d4e8b810ea74f8babd5805c\"\u003e\u003ccode\u003ea4c6af9\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/ef917b460aa741691fbf991ee1b813049cae18c9\"\u003e\u003ccode\u003eef917b4\u003c/code\u003e\u003c/a\u003e KT-84955: mark apple x64 tagets as deprecated error (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/5ebc421e341bf2ddce734d369da87df1985e80bd\"\u003e\u003ccode\u003e5ebc421\u003c/code\u003e\u003c/a\u003e Update the release procedure description (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4670\"\u003e#4670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/95f46a073bc4a1230352108cea1835fd22219a80\"\u003e\u003ccode\u003e95f46a0\u003c/code\u003e\u003c/a\u003e Remove old maven repository settings (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4672\"\u003e#4672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/b4f4f0aa6acb692f3fbcadd70e4958e3e9d370fc\"\u003e\u003ccode\u003eb4f4f0a\u003c/code\u003e\u003c/a\u003e Fix package name of \u003ccode\u003eToMapCollectionSamplesTest\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4674\"\u003e#4674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/86738dca7dc9ac82249abc8206263fa0065ee631\"\u003e\u003ccode\u003e86738dc\u003c/code\u003e\u003c/a\u003e Added templates to the issue creation wizard (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4654\"\u003e#4654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/330fcc221fb583f0b119f34191f735a73b827378\"\u003e\u003ccode\u003e330fcc2\u003c/code\u003e\u003c/a\u003e Version 1.11.0-rc02\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/e31cef6e9f2d26794be7d75ecbf3033b6432d582\"\u003e\u003ccode\u003ee31cef6\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/dc6e9f61eaf3a67f4bf474a7987aedc3f16cef37\"\u003e\u003ccode\u003edc6e9f6\u003c/code\u003e\u003c/a\u003e Restore Promise-related functions on Wasm/JS as HIDDEN (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/compare/1.10.1...1.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.android` from 2.0.21 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.android's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.android's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.0.21...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.plugin.compose` from 2.0.21 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.plugin.compose's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.plugin.compose's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.0.21...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.plugin.serialization` from 2.0.21 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.plugin.serialization's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.plugin.serialization's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for privat...\n\n_Description has been truncated_","html_url":"https://github.com/shgnx/slte/pull/7","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/shgnx%2Fslte/issues/7","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/7/packages"},{"uuid":"5452657431","node_id":"PR_kwDOTHJuas8AAAABDfWe-A","number":34,"state":"open","title":"chore(deps): bump the android-deps group across 1 directory with 20 updates","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-14T17:43:37.000Z","updated_at":"2026-09-14T17:45:24.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"android-deps","update_count":20,"packages":[{"name":"gradle-wrapper","old_version":"9.5.1","new_version":"9.7.1","repository_url":"https://github.com/gradle/gradle"},{"name":"androidx.benchmark:benchmark-macro-junit4","old_version":"1.4.1","new_version":"1.5.0"},{"name":"androidx.compose:compose-bom","old_version":"2026.05.01","new_version":"2026.09.00"},{"name":"androidx.core:core-ktx","old_version":"1.18.0","new_version":"1.19.0"},{"name":"org.bouncycastle:bcprov-jdk18on","old_version":"1.84","new_version":"1.86","repository_url":"https://github.com/bcgit/bc-java"},{"name":"org.commonmark:commonmark","old_version":"0.28.0","new_version":"0.30.0","repository_url":"https://github.com/commonmark/commonmark-java"},{"name":"org.commonmark:commonmark-ext-autolink","old_version":"0.28.0","new_version":"0.30.0","repository_url":"https://github.com/commonmark/commonmark-java"},{"name":"org.commonmark:commonmark-ext-gfm-strikethrough","old_version":"0.28.0","new_version":"0.30.0","repository_url":"https://github.com/commonmark/commonmark-java"},{"name":"org.commonmark:commonmark-ext-gfm-tables","old_version":"0.28.0","new_version":"0.30.0","repository_url":"https://github.com/commonmark/commonmark-java"},{"name":"org.commonmark:commonmark-ext-task-list-items","old_version":"0.28.0","new_version":"0.30.0","repository_url":"https://github.com/commonmark/commonmark-java"},{"name":"org.junit.vintage:junit-vintage-engine","old_version":"6.1.0","new_version":"6.1.3","repository_url":"https://github.com/junit-team/junit-framework"},{"name":"io.kotest:kotest-assertions-core-jvm","old_version":"6.1.11","new_version":"6.2.5","repository_url":"https://github.com/kotest/kotest"},{"name":"io.kotest:kotest-runner-junit5-jvm","old_version":"6.1.11","new_version":"6.2.5","repository_url":"https://github.com/kotest/kotest"},{"name":"com.squareup.okhttp3:mockwebserver","old_version":"5.3.2","new_version":"5.5.0","repository_url":"https://github.com/lysine-dev/okhttp"},{"name":"com.squareup.okhttp3:okhttp","old_version":"5.3.2","new_version":"5.5.0","repository_url":"https://github.com/lysine-dev/okhttp"},{"name":"org.robolectric:robolectric","old_version":"4.16.1","new_version":"4.17","repository_url":"https://github.com/robolectric/robolectric"},{"name":"com.android.application","old_version":"9.2.1","new_version":"9.4.0"},{"name":"com.android.test","old_version":"9.2.1","new_version":"9.4.0"},{"name":"org.jetbrains.kotlin.plugin.compose","old_version":"2.4.0","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.4.0","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"}],"path":null,"ecosystem":"maven"},"body":"Bumps the android-deps group with 20 updates in the /apps/android directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [gradle-wrapper](https://github.com/gradle/gradle) | `9.5.1` | `9.7.1` |\n| androidx.benchmark:benchmark-macro-junit4 | `1.4.1` | `1.5.0` |\n| androidx.compose:compose-bom | `2026.05.01` | `2026.09.00` |\n| androidx.core:core-ktx | `1.18.0` | `1.19.0` |\n| [org.bouncycastle:bcprov-jdk18on](https://github.com/bcgit/bc-java) | `1.84` | `1.86` |\n| [org.commonmark:commonmark](https://github.com/commonmark/commonmark-java) | `0.28.0` | `0.30.0` |\n| [org.commonmark:commonmark-ext-autolink](https://github.com/commonmark/commonmark-java) | `0.28.0` | `0.30.0` |\n| [org.commonmark:commonmark-ext-gfm-strikethrough](https://github.com/commonmark/commonmark-java) | `0.28.0` | `0.30.0` |\n| [org.commonmark:commonmark-ext-gfm-tables](https://github.com/commonmark/commonmark-java) | `0.28.0` | `0.30.0` |\n| [org.commonmark:commonmark-ext-task-list-items](https://github.com/commonmark/commonmark-java) | `0.28.0` | `0.30.0` |\n| [org.junit.vintage:junit-vintage-engine](https://github.com/junit-team/junit-framework) | `6.1.0` | `6.1.3` |\n| [io.kotest:kotest-assertions-core-jvm](https://github.com/kotest/kotest) | `6.1.11` | `6.2.5` |\n| [io.kotest:kotest-runner-junit5-jvm](https://github.com/kotest/kotest) | `6.1.11` | `6.2.5` |\n| [com.squareup.okhttp3:mockwebserver](https://github.com/lysine-dev/okhttp) | `5.3.2` | `5.5.0` |\n| [com.squareup.okhttp3:okhttp](https://github.com/lysine-dev/okhttp) | `5.3.2` | `5.5.0` |\n| [org.robolectric:robolectric](https://github.com/robolectric/robolectric) | `4.16.1` | `4.17` |\n| com.android.application | `9.2.1` | `9.4.0` |\n| com.android.test | `9.2.1` | `9.4.0` |\n| [org.jetbrains.kotlin.plugin.compose](https://github.com/JetBrains/kotlin) | `2.4.0` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.serialization](https://github.com/JetBrains/kotlin) | `2.4.0` | `2.4.20` |\n\n\nUpdates `gradle-wrapper` from 9.5.1 to 9.7.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gradle/gradle/releases\"\u003egradle-wrapper's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.7.1\u003c/h2\u003e\n\u003cp\u003eThe Gradle team is excited to announce Gradle 9.7.1.\u003c/p\u003e\n\u003cp\u003eThis is a patch release for 9.7.0. We recommend using 9.7.1 instead of 9.7.0.\u003c/p\u003e\n\u003cp\u003eHere are the highlights of 9.7.0 release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIsolated Projects graduates to incubating\u003c/li\u003e\n\u003cli\u003eBroader Configuration Cache compatibility\u003c/li\u003e\n\u003cli\u003eResilient Sync helps you fix broken builds\u003c/li\u003e\n\u003cli\u003eMore source locations in problem reports\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://docs.gradle.org/9.7.1/release-notes.html\"\u003eRead the Release Notes\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eWe would like to thank the following community members for their contributions to this release of Gradle:\n\u003ca href=\"https://github.com/aSemy\"\u003eAdam\u003c/a\u003e,\n\u003ca href=\"https://github.com/Gautam-aman\"\u003eAman Gautam\u003c/a\u003e,\n\u003ca href=\"https://github.com/YukiCodepth\"\u003eAman Kumar\u003c/a\u003e,\n\u003ca href=\"https://github.com/adubrouski\"\u003eAnton Dubrouski\u003c/a\u003e,\n\u003ca href=\"https://github.com/liutikas\"\u003eAurimas\u003c/a\u003e,\n\u003ca href=\"https://github.com/gbhavya07\"\u003egbhavya07\u003c/a\u003e,\n\u003ca href=\"https://github.com/joshfriend\"\u003eJosh Friend\u003c/a\u003e,\n\u003ca href=\"https://github.com/nicklauslittle-gov\"\u003enicklauslittle-gov\u003c/a\u003e,\n\u003ca href=\"https://github.com/psoni674\"\u003ePragati\u003c/a\u003e,\n\u003ca href=\"https://github.com/Project516\"\u003eproject516\u003c/a\u003e,\n\u003ca href=\"https://github.com/Uomocapra\"\u003eQin Mi\u003c/a\u003e,\n\u003ca href=\"https://github.com/rkdfx\"\u003eRavi\u003c/a\u003e,\n\u003ca href=\"https://github.com/sk-reddy17\"\u003esk-reddy17\u003c/a\u003e,\n\u003ca href=\"https://github.com/Suvrat1629\"\u003eSuvrat Acharya\u003c/a\u003e,\n\u003ca href=\"https://github.com/ShreckYe\"\u003eYongshun Ye\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eUpgrade instructions\u003c/h2\u003e\n\u003cp\u003eSwitch your build to use Gradle 9.7.1 by updating your wrapper:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e./gradlew :wrapper --gradle-version=9.7.1 \u0026amp;\u0026amp; ./gradlew :wrapper\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eSee the Gradle \u003ca href=\"https://docs.gradle.org/9.7.1/userguide/upgrading_version_9.html\"\u003e9.x upgrade guide\u003c/a\u003e to learn about deprecations, breaking changes and other considerations when upgrading.\u003c/p\u003e\n\u003cp\u003eFor Java, Groovy, Kotlin and Android compatibility, see the \u003ca href=\"https://docs.gradle.org/9.7.1/userguide/compatibility.html\"\u003efull compatibility notes\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eReporting problems\u003c/h2\u003e\n\u003cp\u003eIf you find a problem with this release, please file a bug on \u003ca href=\"https://github.com/gradle/gradle/issues\"\u003eGitHub Issues\u003c/a\u003e adhering to our issue guidelines.\nIf you're not sure you're encountering a bug, please use the \u003ca href=\"https://discuss.gradle.org/c/help-discuss\"\u003eforum\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eWe hope you will build happiness with Gradle, and we look forward to your feedback via \u003ca href=\"https://twitter.com/gradle\"\u003eTwitter\u003c/a\u003e or on \u003ca href=\"https://github.com/gradle\"\u003eGitHub\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003e9.7.0\u003c/h2\u003e\n\u003cp\u003eThe Gradle team is excited to announce Gradle 9.7.0.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/92f0512e7f06d84621afba191f75e265363890cf\"\u003e\u003ccode\u003e92f0512\u003c/code\u003e\u003c/a\u003e update fixed issues for 9.7.1 (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/38892\"\u003e#38892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/820ee75a99a179bbffa41bcedc6477b685fabb9f\"\u003e\u003ccode\u003e820ee75\u003c/code\u003e\u003c/a\u003e update fixed issues for 9.7.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/82c23f9bd2a89b4cc644e1f90a28a8668feb3dee\"\u003e\u003ccode\u003e82c23f9\u003c/code\u003e\u003c/a\u003e Fix annotation parameter ordering problem in KTS (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/38878\"\u003e#38878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/ef11a7268fe8cc8d6ab849ec911aa11220180553\"\u003e\u003ccode\u003eef11a72\u003c/code\u003e\u003c/a\u003e Fix annotation parameter ordering issue\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/bb0d8a974a71b1003efea41e4046e98855cd5ff8\"\u003e\u003ccode\u003ebb0d8a9\u003c/code\u003e\u003c/a\u003e Make relevant tests polyglot (run for multiple DSLs)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/336e129d7f95c03486acafc97abf59734acfed48\"\u003e\u003ccode\u003e336e129\u003c/code\u003e\u003c/a\u003e Update signing configuration (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/38874\"\u003e#38874\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/4bdf0da2dad9884d089a6062a45ea7183e7d735d\"\u003e\u003ccode\u003e4bdf0da\u003c/code\u003e\u003c/a\u003e Update signing configuration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/cd9b92c1b82856248cf1dc58b50378238bec7b52\"\u003e\u003ccode\u003ecd9b92c\u003c/code\u003e\u003c/a\u003e List issues resolved in 9.7.1 (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/38839\"\u003e#38839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/5f4e381964897ad8d6b99e5a7c77f26dba3259fb\"\u003e\u003ccode\u003e5f4e381\u003c/code\u003e\u003c/a\u003e List issues resolved in 9.7.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/1e08ab551367aeb5fb48b26e72807e1d2b27c939\"\u003e\u003ccode\u003e1e08ab5\u003c/code\u003e\u003c/a\u003e Keep type-use annotations in extracted ABI classes (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/38810\"\u003e#38810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gradle/gradle/compare/v9.5.1...v9.7.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `androidx.benchmark:benchmark-macro-junit4` from 1.4.1 to 1.5.0\n\nUpdates `androidx.compose:compose-bom` from 2026.05.01 to 2026.09.00\n\nUpdates `androidx.core:core-ktx` from 1.18.0 to 1.19.0\n\nUpdates `org.bouncycastle:bcprov-jdk18on` from 1.84 to 1.86\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/bcgit/bc-java/blob/main/docs/releasenotes.md\"\u003eorg.bouncycastle:bcprov-jdk18on's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eBouncy Castle Crypto Package - Release Notes\u003c/h1\u003e\n\u003ch2\u003e1.0 Introduction\u003c/h2\u003e\n\u003cp\u003eThe Bouncy Castle Crypto package is a Java implementation of cryptographic algorithms. The package is organised so that it contains a light-weight API suitable for use in any environment (including the J2ME) with the additional infrastructure to conform the algorithms to the JCE framework.\u003c/p\u003e\n\u003ch2\u003e2.0 Release History\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003e2.1.1 Version\u003c/h3\u003e\n\u003cp\u003eRelease: 1.87\u003cbr /\u003e\nDate: 2026, TBD\u003c/p\u003e\n\u003ch3\u003e2.1.2 Defects Fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eA KeyAgreement asked for its shared secret before doPhase returned data rather than refusing. javax.crypto.KeyAgreement specifies IllegalStateException for that state, but nothing in the provider tracked it, so each SPI handed back whatever its result field held: for Diffie-Hellman that was the private value itself - engineInit seeded result with x, so generateSecret() returned the private exponent padded to the prime's length and generateSecret(\u0026quot;AES\u0026quot;) an all-zero key taken from that padding - while ECDH returned null and its named-algorithm overload raised NullPointerException. BaseAgreementSpi now records whether a doPhase has completed the agreement since the last init and refuses the request with an IllegalStateException naming the algorithm, so every family in the provider - DH, ECDH and ECMQV, the SM2 exchange, both ECGOST families, XDH, SM9 and NewHope - answers the same way, and the DH SPI no longer holds the private value in that field at all.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMac.getInstance and KeyGenerator.getInstance by the HMAC SHA-512/224 and SHA-512/256 object identifiers (1.2.840.113549.2.12 and .13) failed, although the same algorithms resolved by name and the matching SecretKeyFactory aliases were registered: the SHA512 mappings called addHMACAlgorithm for the two truncated variants without the addHMACAlias that registers their OIDs against Mac and KeyGenerator. Both are now aliased, as every other HMAC in that class already was.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eA KTSParameterSpec naming an HKDF key-derivation function with a parameters field - a form the provider does not service - was accepted at Cipher init and then failed out of wrap or unwrap with an unchecked IllegalStateException neither method declares. The KTS key-wrapping Ciphers (ML-KEM, Classic McEliece, FrodoKEM, the composite KEM and RSA-KEM) now validate the spec's KDF when they take it, reporting an unserviceable one as the InvalidAlgorithmParameterException engineInit declares, which is what the javax.crypto.KEM services already did through KdfUtil.resolveKemSpec.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eA DTLS handshake deadlocked when a handshake message ahead of the peer's ChangeCipherSpec (a client's CertificateVerify, say) was lost while the ChangeCipherSpec and Finished behind it arrived: the record layer moved its read epoch on at the ChangeCipherSpec and then discarded every retransmission of the lost message as belonging to the old epoch, whose records are only accepted once the handshake has completed. Each side then waited on the other until a handshake timeout, if one was configured, ended it. Every client-authenticated handshake, and every handshake in which the server issues a NewSessionTicket, was exposed. Until the handshake completes, handshake records from the current epoch are now still accepted after the read epoch has moved on, and each message is checked against the epoch of the record that carried it. The DTLS loopback tests now run their handshakes at 10% datagram loss in each direction, with a client-authenticated handshake at 25%.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe lightweight SubjectPublicKeyInfoFactory and PrivateKeyInfoFactory encoded a GOST R 34.10-2012 key on one of the legacy CryptoPro curves under id-GostR3410-2001, although RFC 9215 sec. 4.2 permits those curves for 2012 keys. The digestParamSet now decides: a GOST R 34.11-94 parameter set means 2001 (RFC 4491 sec. 2.3.2), a GOST R 34.11-2012 digest or none means 2012 with 256/512 taken from the curve field size, and any other value is rejected. GOST3410PublicKeyAlgParameters treats digestParamSet as OPTIONAL on both read and write per RFC 9215, and PrivateKeyInfoFactory now passes attributes through for ECGOST3410 keys (bc-csharp github \u003ca href=\"https://redirect.github.com/bcgit/bc-java/issues/707\"\u003e#707\u003c/a\u003e).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe name-constraint host canonicalisation removed a single RFC 1034 root-label dot, the only empty label a name may legally carry, but nothing refused the ones that are not legal: a dNSName, rfc822Name host or uniformResourceIdentifier host such as \u0026quot;example.com..\u0026quot; kept a phantom empty label after the strip and so matched no constraint at all, escaping an excluded subtree naming the host it appears to carry. A tested name whose host carries an empty label - a second trailing dot, a doubled dot or a leading dot - is now refused outright wherever a constraint of that type is in force, rather than canonicalised into a name it is not: removing the extra dots would decide on the caller's behalf that \u0026quot;example.com..\u0026quot; names example.com, which is not how a consumer resolving or comparing the name reads it, and refusing fails closed in both directions where canonicalising would newly admit such a name under a permitted subtree. The single trailing dot is canonicalised as before, a bare \u0026quot;.\u0026quot; remains the root label rather than an empty one, and the guard is scoped to the host, so the doubled dot a quoted local part may legally carry is unaffected. Constraints are untouched - one may still begin with a dot, which is how this implementation spells \u0026quot;subdomains only\u0026quot; (github PR \u003ca href=\"https://redirect.github.com/bcgit/bc-java/issues/2436\"\u003e#2436\u003c/a\u003e).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e2.1.3 Additional Features and Functionality\u003c/h3\u003e\n\u003ch3\u003e2.1.4 Additional Notes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe sources and javadoc jars of the Ant-built distributions (jdk14, jdk15to18 and jdk13) no longer carry test material. Each module's javadoc target copies the package documentation it needs - org/bouncycastle/\u003c!-- raw HTML omitted --\u003e/\u003cstrong\u003e/*.html - back into the module source directory that has already been compiled from, and zip-src zips that directory afterwards, so every test package's package.html arrived in the sources jar by that route; javadoc-util additionally copied org/bouncycastle/asn1/isismtt/\u003c/strong\u003e/*.java, which put test classes into the bcutil javadoc as generated pages, and javadoc-pg deliberately copied the gpg and bcpg test sources in order to document them. Separately the source copies excluded test material only one directory deep and only for *.java, because Ant reads ** as an any-depth wildcard just where it is a whole path segment, so anything nested further or with another extension - the PEM certificate fixtures under org/bouncycastle/est/test/san corrected in 1.86, and an ICAO master list under org/bouncycastle/asn1/icao/test - went through. The source and javadoc copies of every module now exclude test directories at any depth, and javadoc-pg no longer documents the test packages. org.bouncycastle.util.test is unaffected and still ships in the bcprov binary, sources and javadoc jars, as it does from the Gradle build: it is the SimpleTest framework the light-weight API's own test classes are written against, not test material of the distribution. No binary changes - the classes and resources of every Ant-built jar are identical to those of the 1.86 release - and the Gradle-built jdk18on artifacts never carried any of this.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003e2.2.1 Version\u003c/h3\u003e\n\u003cp\u003eRelease: 1.86\u003cbr /\u003e\nDate: 2026, 11th September.\u003c/p\u003e\n\u003ch3\u003e2.2.2 Defects Fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe high-level OpenPGP API let a subkey inherit the primary key's Key Flags when its own Subkey Binding signature carried none, so a subkey bound with no flags counted as signing-capable for one check while the cross-certification check RFC 9580 sec. 5.2.1.8 requires of a signing subkey saw none and was skipped - letting a third party's public signing subkey be bound to an attacker's primary key and that party's genuine signatures verify under the attacker's identity. Flags are no longer inherited (CVE-2026-71887).\u003c/li\u003e\n\u003cli\u003eThe high-level OpenPGP API used a version 6 key carrying no valid Direct Key signature, falling back to the primary user ID binding as it correctly does for version 4. RFC 9580 sec. 5.2.3.10 requires the opposite, and since a v6 certificate carries its expiration and preferences there, stripping that one packet silently dropped them - the certificate went on offering subkeys of a key set to expire. isBoundBy now requires a valid Direct Key self-signature before any v6 component is treated as bound; version 4 is unaffected.\u003c/li\u003e\n\u003cli\u003eThe high-level OpenPGP API ignored the OpenPGPPolicy a caller had configured when verifying signatures on an inline message: OpenPGPMessageInputStream took the policy from the implementation's own default rather than from the processor doing the verification, so a hardened policy had no bearing on acceptance and getSignatures() reported isTestedCorrect() true for a signature that policy rejects. Both the one-pass and prefixed-signature paths now read the configured policy.\u003c/li\u003e\n\u003cli\u003eThe high-level OpenPGP API went on offering the subkeys of a certificate whose primary key had expired, the binding check evaluating only a subkey's own Subkey Binding signature - so the certificate contradicted itself, reporting the primary unbound while still handing out its subkeys. The primary key's expiration now applies to the whole certificate, as GnuPG and Sequoia treat it, and a subkey no longer inherits the primary's validity period, which RFC 9580 sec. 5.2.3.13 counts from the creation time of the key the carrying signature is made on.\u003c/li\u003e\n\u003cli\u003eOpenPGPDocumentSignature.isValidAt(Date) reported a data signature as valid past the signature's own Signature Expiration Time (RFC 9580 sec. 5.2.3.18): it checked that the signature was correct and the issuing key bound and signing-capable at that date, but never the signature's own expiration, so it disagreed with isEffectiveAt() on the same object and with its own javadoc. isValid() and isValid(policy), which evaluate at creation time, are unchanged.\u003c/li\u003e\n\u003cli\u003eThe lightweight LMSSigner and HSSSigner refused a key wrapped in ParametersWithRandom, which is how BcContentSignerBuilder passes one once setSecureRandom() has been called, so BcHssLmsContentSignerBuilder failed with \u0026quot;Incorrect Key Parameters\u0026quot; and the two signers raised ClassCastException. All three now unwrap it, as the ML-DSA and SLH-DSA signers already did; the random is accepted and ignored, LMS deriving its message randomiser deterministically from the seed and one-time index.\u003c/li\u003e\n\u003cli\u003eLMS signature verification did not apply two checks RFC 8554 sec. 5.4.2 requires before a signature is processed: step 2g, refusing a signature whose LMS typecode is not the public key's - without it a signature claiming a height-25 parameter set drove a 25-level computation against a height-5 key - and step 2i, refusing a leaf number outside the tree. Neither was a forgery, but both are attacker-chosen work the specification says to refuse up front. Both are now checked.\u003c/li\u003e\n\u003cli\u003eThe LMS and HSS key parameter classes now apply at construction the checks their decoders apply, so a key built directly cannot be one the decoder would refuse: LMSPrivateKeyParameters accepted an identifier of any length where the decoder reads exactly 16 bytes, and left q, maxQ and the seed length unchecked, while HSSPrivateKeyParameters checked neither its level count nor that it had a component key and chaining signature per level. The decoders now report a bad version or seed length as IOException rather than IllegalStateException.\u003c/li\u003e\n\u003cli\u003eIn the LMS JCE layer, LMSKeyGenParameterSpec.fromNames knew all twenty LMS parameter-set names but only four of the sixteen LM-OTS ones, so none of the SP 800-208 n24 or SHAKE sets could be named; all sixteen are now present. initialize(int, SecureRandom) now reports InvalidParameterException as the JCA specifies, and BCLMSPrivateKey.getIndex takes the exhaustion check and the index read under one monitor.\u003c/li\u003e\n\u003cli\u003eKeyPairGenerator.initialize(int, SecureRandom) is documented to raise InvalidParameterException when the key size is not one the generator supports, and thirty of them raised a bare IllegalArgumentException instead. Every generator in BCPQC, and the ML-DSA, ML-KEM, SLH-DSA, Classic McEliece, FrodoKEM, NTRU and composite ones in the BC provider, now raise the documented type - which extends IllegalArgumentException, so existing catches still match. The two RSA generators translate the lightweight refusal through a new SecurityExceptions.invalidParameterException factory.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/bcgit/bc-java/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.commonmark:commonmark` from 0.28.0 to 0.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/commonmark/commonmark-java/releases\"\u003eorg.commonmark:commonmark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ecommonmark-java 0.30.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew option \u003ccode\u003elineSeparator\u003c/code\u003e for \u003ccode\u003eMarkdownRenderer.Builder\u003c/code\u003e to change the default line\nseparator from \u003ccode\u003e\\n\u003c/code\u003e (e.g. to \u003ccode\u003e\\r\\n\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Support extracting the raw YAML content so that you can\ndo the YAML parsing using a library (instead of the limited built-in parsing) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTables extension: Limit max number of parsed table cells by default (1 million cells),\nsee option \u003ccode\u003emaxCells\u003c/code\u003e in \u003ccode\u003eTablesExtension.Builder\u003c/code\u003e. Parsing will throw an error if the\nlimit would be exceeded, to protect against malicious input.\u003c/li\u003e\n\u003cli\u003eThe default for \u003ccode\u003emaxOpenBlockParsers\u003c/code\u003e for \u003ccode\u003eParser.Builder\u003c/code\u003e is now 100; configure the\noption to remove the limit.\u003c/li\u003e\n\u003cli\u003eLimit how deeply inline nodes may nest by default (100), see option \u003ccode\u003emaxInlineNesting\u003c/code\u003e in\n\u003ccode\u003eParser.Builder\u003c/code\u003e; configure the option to remove the limit. This covers emphasis-like\ndelimiters (e.g. \u003ccode\u003e*\u003c/code\u003e or the ins extension's \u003ccode\u003e+\u003c/code\u003e) as well as images, which can otherwise\nnest arbitrarily deep for a small amount of input. Anything over the limit is treated as\nplain text instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix quadratic runtime on various pathological inputs (where inline syntax to start a\nnode is used repeatedly but never finished):\n\u003cul\u003e\n\u003cli\u003eInline HTML like \u003ccode\u003e\u0026quot;x \u0026lt;!--\u0026quot;.repeat(100_000)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/447\"\u003e#447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAutolink starts like \u003ccode\u003e\u0026quot;\u0026lt;\u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eEmphasis like \u003ccode\u003e\u0026quot;a**b\u0026quot; + \u0026quot;c* \u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBackticks runs of different lengths\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow errors when parsing pathological inputs with repeated syntax:\n\u003cul\u003e\n\u003cli\u003eHTML block attributes\u003c/li\u003e\n\u003cli\u003eAutolink email addresses\u003c/li\u003e\n\u003cli\u003eDeeply nested emphasis\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow error when rendering/visiting deeply nested inline nodes, by capping nesting\ndepth during parsing (see \u003ccode\u003emaxInlineNesting\u003c/code\u003e above). This can happen with emphasis, e.g.\n\u003ccode\u003e\u0026quot;*\u0026quot;.repeat(n) + \u0026quot;x\u0026quot; + \u0026quot;*\u0026quot;.repeat(n)\u003c/code\u003e or \u003ccode\u003e\u0026quot;*a \u0026quot;.repeat(n) + \u0026quot; b*\u0026quot;.repeat(n)\u003c/code\u003e, as well as with\nimages, e.g. \u003ccode\u003e\u0026quot;![\u0026quot;.repeat(https://github.com/commonmark/commonmark-java/blob/HEAD/n) + \u0026quot;x\u0026quot; + \u0026quot;](u)\u0026quot;.repeat(n)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Fix inefficient string concatenation for literal-block values (\u003ccode\u003e|\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ecommonmark-java 0.29.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport rendering GFM task list items to Markdown (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/433\"\u003e#433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport rendering YAML front matter to Markdown (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/434\"\u003e#434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAlerts\n\u003cul\u003e\n\u003cli\u003eAllow customizing HTML attributes for alert title \u003ccode\u003e\u0026lt;p\u0026gt;\u003c/code\u003e tag via \u003ccode\u003eAttributeProvider\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/427\"\u003e#427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow authors to provide custom\ntitles per alert. See the\n\u003ca href=\"https://github.com/commonmark/commonmark-java/blob/HEAD/commonmark-ext-gfm-alerts/README.md#custom-alert-titles\"\u003ecustom titles section of the alerts README\u003c/a\u003e\nfor more information. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow alerts to be nested within\nother blocks (including other alerts). See\n\u003ca href=\"https://github.com/commonmark/commonmark-java/blob/HEAD/commonmark-ext-gfm-alerts/README.md#nesting-alerts\"\u003ethis section of the alerts README\u003c/a\u003e\nfor more information. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow the set of alert types\n(including standard GFM types) to be completely overwritten. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/435\"\u003e#435\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md\"\u003eorg.commonmark:commonmark's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.30.0] - 2026-08-06\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew option \u003ccode\u003elineSeparator\u003c/code\u003e for \u003ccode\u003eMarkdownRenderer.Builder\u003c/code\u003e to change the default line\nseparator from \u003ccode\u003e\\n\u003c/code\u003e (e.g. to \u003ccode\u003e\\r\\n\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Support extracting the raw YAML content so that you can\ndo the YAML parsing using a library (instead of the limited built-in parsing) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTables extension: Limit max number of parsed table cells by default (1 million cells),\nsee option \u003ccode\u003emaxCells\u003c/code\u003e in \u003ccode\u003eTablesExtension.Builder\u003c/code\u003e. Parsing will throw an error if the\nlimit would be exceeded, to protect against malicious input.\u003c/li\u003e\n\u003cli\u003eThe default for \u003ccode\u003emaxOpenBlockParsers\u003c/code\u003e for \u003ccode\u003eParser.Builder\u003c/code\u003e is now 100; configure the\noption to remove the limit.\u003c/li\u003e\n\u003cli\u003eLimit how deeply inline nodes may nest by default (100), see option \u003ccode\u003emaxInlineNesting\u003c/code\u003e in\n\u003ccode\u003eParser.Builder\u003c/code\u003e; configure the option to remove the limit. This covers emphasis-like\ndelimiters (e.g. \u003ccode\u003e*\u003c/code\u003e or the ins extension's \u003ccode\u003e+\u003c/code\u003e) as well as images, which can otherwise\nnest arbitrarily deep for a small amount of input. Anything over the limit is treated as\nplain text instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix quadratic runtime on various pathological inputs (where inline syntax to start a\nnode is used repeatedly but never finished):\n\u003cul\u003e\n\u003cli\u003eInline HTML like \u003ccode\u003e\u0026quot;x \u0026lt;!--\u0026quot;.repeat(100_000)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/447\"\u003e#447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAutolink starts like \u003ccode\u003e\u0026quot;\u0026lt;\u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eEmphasis like \u003ccode\u003e\u0026quot;a**b\u0026quot; + \u0026quot;c* \u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBackticks runs of different lengths\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow errors when parsing pathological inputs with repeated syntax:\n\u003cul\u003e\n\u003cli\u003eHTML block attributes\u003c/li\u003e\n\u003cli\u003eAutolink email addresses\u003c/li\u003e\n\u003cli\u003eDeeply nested emphasis\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow error when rendering/visiting deeply nested inline nodes, by capping nesting\ndepth during parsing (see \u003ccode\u003emaxInlineNesting\u003c/code\u003e above). This can happen with emphasis, e.g.\n\u003ccode\u003e\u0026quot;*\u0026quot;.repeat(n) + \u0026quot;x\u0026quot; + \u0026quot;*\u0026quot;.repeat(n)\u003c/code\u003e or \u003ccode\u003e\u0026quot;*a \u0026quot;.repeat(n) + \u0026quot; b*\u0026quot;.repeat(n)\u003c/code\u003e, as well as with\nimages, e.g. \u003ccode\u003e\u0026quot;![\u0026quot;.repeat(https://github.com/commonmark/commonmark-java/blob/main/n) + \u0026quot;x\u0026quot; + \u0026quot;](u)\u0026quot;.repeat(n)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Fix inefficient string concatenation for literal-block values (\u003ccode\u003e|\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.29.0] - 2026-06-20\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport rendering GFM task list items to Markdown (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/433\"\u003e#433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport rendering YAML front matter to Markdown (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/434\"\u003e#434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAlerts\n\u003cul\u003e\n\u003cli\u003eAllow customizing HTML attributes for alert title \u003ccode\u003e\u0026lt;p\u0026gt;\u003c/code\u003e tag via \u003ccode\u003eAttributeProvider\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/427\"\u003e#427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow authors to provide custom\ntitles per alert. See the\n\u003ca href=\"https://github.com/commonmark/commonmark-java/blob/main/commonmark-ext-gfm-alerts/README.md#custom-alert-titles\"\u003ecustom titles section of the alerts README\u003c/a\u003e\nfor more information. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow alerts to be nested within\nother blocks (including other alerts). See\n\u003ca href=\"https://github.com/commonmark/commonmark-java/blob/main/commonmark-ext-gfm-alerts/README.md#nesting-alerts\"\u003ethis section of the alerts README\u003c/a\u003e\nfor more information. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow the set of alert types\n(including standard GFM types) to be completely overwritten. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/435\"\u003e#435\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/64037cf982f2b12a4a2fa1c5a75c6d3f4ab979bf\"\u003e\u003ccode\u003e64037cf\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release commonmark-parent-0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/bd3e06669fd168874721267e7e5f5bd1d3433466\"\u003e\u003ccode\u003ebd3e066\u003c/code\u003e\u003c/a\u003e Fix Javadoc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/4aaf754cc90b4a5a62647a8fc621185c934f8bbf\"\u003e\u003ccode\u003e4aaf754\u003c/code\u003e\u003c/a\u003e mvn versions:set -DnewVersion=0.30.0-SNAPSHOT\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/42b4fb7adfe288ef13e9e27ab20aff7e91b0ab9d\"\u003e\u003ccode\u003e42b4fb7\u003c/code\u003e\u003c/a\u003e Prepare CHANGELOG for version 0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/b76e09d7a8362abb5f04e1d6b91dbd6da279a6fc\"\u003e\u003ccode\u003eb76e09d\u003c/code\u003e\u003c/a\u003e Limit how deep inline nodes may nest by default (100)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/49f65cb5cbec93cff713179990307145198e7061\"\u003e\u003ccode\u003e49f65cb\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing deeply nested emphasis\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/610f84b83e68c381e8f784ae4d044c80e1948b67\"\u003e\u003ccode\u003e610f84b\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing pathological autolink email addresses\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/9f1d73897a56cbd74c39347af351a473e70297e1\"\u003e\u003ccode\u003e9f1d738\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing pathological HTML block attributes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/e13297e849995fdd582a85841067bff1d9c35ee5\"\u003e\u003ccode\u003ee13297e\u003c/code\u003e\u003c/a\u003e Fix quadratic runtime when parsing pathological backticks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/89d1bd3fa1524e8217ed61db5e8116c82434470f\"\u003e\u003ccode\u003e89d1bd3\u003c/code\u003e\u003c/a\u003e Fix quadratic runtime when parsing with lots of \u003ccode\u003e\u0026lt;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.28.0...commonmark-parent-0.30.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.commonmark:commonmark-ext-autolink` from 0.28.0 to 0.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/commonmark/commonmark-java/releases\"\u003eorg.commonmark:commonmark-ext-autolink's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ecommonmark-java 0.30.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew option \u003ccode\u003elineSeparator\u003c/code\u003e for \u003ccode\u003eMarkdownRenderer.Builder\u003c/code\u003e to change the default line\nseparator from \u003ccode\u003e\\n\u003c/code\u003e (e.g. to \u003ccode\u003e\\r\\n\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Support extracting the raw YAML content so that you can\ndo the YAML parsing using a library (instead of the limited built-in parsing) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTables extension: Limit max number of parsed table cells by default (1 million cells),\nsee option \u003ccode\u003emaxCells\u003c/code\u003e in \u003ccode\u003eTablesExtension.Builder\u003c/code\u003e. Parsing will throw an error if the\nlimit would be exceeded, to protect against malicious input.\u003c/li\u003e\n\u003cli\u003eThe default for \u003ccode\u003emaxOpenBlockParsers\u003c/code\u003e for \u003ccode\u003eParser.Builder\u003c/code\u003e is now 100; configure the\noption to remove the limit.\u003c/li\u003e\n\u003cli\u003eLimit how deeply inline nodes may nest by default (100), see option \u003ccode\u003emaxInlineNesting\u003c/code\u003e in\n\u003ccode\u003eParser.Builder\u003c/code\u003e; configure the option to remove the limit. This covers emphasis-like\ndelimiters (e.g. \u003ccode\u003e*\u003c/code\u003e or the ins extension's \u003ccode\u003e+\u003c/code\u003e) as well as images, which can otherwise\nnest arbitrarily deep for a small amount of input. Anything over the limit is treated as\nplain text instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix quadratic runtime on various pathological inputs (where inline syntax to start a\nnode is used repeatedly but never finished):\n\u003cul\u003e\n\u003cli\u003eInline HTML like \u003ccode\u003e\u0026quot;x \u0026lt;!--\u0026quot;.repeat(100_000)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/447\"\u003e#447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAutolink starts like \u003ccode\u003e\u0026quot;\u0026lt;\u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eEmphasis like \u003ccode\u003e\u0026quot;a**b\u0026quot; + \u0026quot;c* \u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBackticks runs of different lengths\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow errors when parsing pathological inputs with repeated syntax:\n\u003cul\u003e\n\u003cli\u003eHTML block attributes\u003c/li\u003e\n\u003cli\u003eAutolink email addresses\u003c/li\u003e\n\u003cli\u003eDeeply nested emphasis\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow error when rendering/visiting deeply nested inline nodes, by capping nesting\ndepth during parsing (see \u003ccode\u003emaxInlineNesting\u003c/code\u003e above). This can happen with emphasis, e.g.\n\u003ccode\u003e\u0026quot;*\u0026quot;.repeat(n) + \u0026quot;x\u0026quot; + \u0026quot;*\u0026quot;.repeat(n)\u003c/code\u003e or \u003ccode\u003e\u0026quot;*a \u0026quot;.repeat(n) + \u0026quot; b*\u0026quot;.repeat(n)\u003c/code\u003e, as well as with\nimages, e.g. \u003ccode\u003e\u0026quot;![\u0026quot;.repeat(https://github.com/commonmark/commonmark-java/blob/HEAD/n) + \u0026quot;x\u0026quot; + \u0026quot;](u)\u0026quot;.repeat(n)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Fix inefficient string concatenation for literal-block values (\u003ccode\u003e|\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ecommonmark-java 0.29.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport rendering GFM task list items to Markdown (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/433\"\u003e#433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport rendering YAML front matter to Markdown (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/434\"\u003e#434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAlerts\n\u003cul\u003e\n\u003cli\u003eAllow customizing HTML attributes for alert title \u003ccode\u003e\u0026lt;p\u0026gt;\u003c/code\u003e tag via \u003ccode\u003eAttributeProvider\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/427\"\u003e#427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow authors to provide custom\ntitles per alert. See the\n\u003ca href=\"https://github.com/commonmark/commonmark-java/blob/HEAD/commonmark-ext-gfm-alerts/README.md#custom-alert-titles\"\u003ecustom titles section of the alerts README\u003c/a\u003e\nfor more information. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow alerts to be nested within\nother blocks (including other alerts). See\n\u003ca href=\"https://github.com/commonmark/commonmark-java/blob/HEAD/commonmark-ext-gfm-alerts/README.md#nesting-alerts\"\u003ethis section of the alerts README\u003c/a\u003e\nfor more information. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow the set of alert types\n(including standard GFM types) to be completely overwritten. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/435\"\u003e#435\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md\"\u003eorg.commonmark:commonmark-ext-autolink's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.30.0] - 2026-08-06\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew option \u003ccode\u003elineSeparator\u003c/code\u003e for \u003ccode\u003eMarkdownRenderer.Builder\u003c/code\u003e to change the default line\nseparator from \u003ccode\u003e\\n\u003c/code\u003e (e.g. to \u003ccode\u003e\\r\\n\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Support extracting the raw YAML content so that you can\ndo the YAML parsing using a library (instead of the limited built-in parsing) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTables extension: Limit max number of parsed table cells by default (1 million cells),\nsee option \u003ccode\u003emaxCells\u003c/code\u003e in \u003ccode\u003eTablesExtension.Builder\u003c/code\u003e. Parsing will throw an error if the\nlimit would be exceeded, to protect against malicious input.\u003c/li\u003e\n\u003cli\u003eThe default for \u003ccode\u003emaxOpenBlockParsers\u003c/code\u003e for \u003ccode\u003eParser.Builder\u003c/code\u003e is now 100; configure the\noption to remove the limit.\u003c/li\u003e\n\u003cli\u003eLimit how deeply inline nodes may nest by default (100), see option \u003ccode\u003emaxInlineNesting\u003c/code\u003e in\n\u003ccode\u003eParser.Builder\u003c/code\u003e; configure the option to remove the limit. This covers emphasis-like\ndelimiters (e.g. \u003ccode\u003e*\u003c/code\u003e or the ins extension's \u003ccode\u003e+\u003c/code\u003e) as well as images, which can otherwise\nnest arbitrarily deep for a small amount of input. Anything over the limit is treated as\nplain text instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix quadratic runtime on various pathological inputs (where inline syntax to start a\nnode is used repeatedly but never finished):\n\u003cul\u003e\n\u003cli\u003eInline HTML like \u003ccode\u003e\u0026quot;x \u0026lt;!--\u0026quot;.repeat(100_000)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/447\"\u003e#447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAutolink starts like \u003ccode\u003e\u0026quot;\u0026lt;\u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eEmphasis like \u003ccode\u003e\u0026quot;a**b\u0026quot; + \u0026quot;c* \u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBackticks runs of different lengths\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow errors when parsing pathological inputs with repeated syntax:\n\u003cul\u003e\n\u003cli\u003eHTML block attributes\u003c/li\u003e\n\u003cli\u003eAutolink email addresses\u003c/li\u003e\n\u003cli\u003eDeeply nested emphasis\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow error when rendering/visiting deeply nested inline nodes, by capping nesting\ndepth during parsing (see \u003ccode\u003emaxInlineNesting\u003c/code\u003e above). This can happen with emphasis, e.g.\n\u003ccode\u003e\u0026quot;*\u0026quot;.repeat(n) + \u0026quot;x\u0026quot; + \u0026quot;*\u0026quot;.repeat(n)\u003c/code\u003e or \u003ccode\u003e\u0026quot;*a \u0026quot;.repeat(n) + \u0026quot; b*\u0026quot;.repeat(n)\u003c/code\u003e, as well as with\nimages, e.g. \u003ccode\u003e\u0026quot;![\u0026quot;.repeat(https://github.com/commonmark/commonmark-java/blob/main/n) + \u0026quot;x\u0026quot; + \u0026quot;](u)\u0026quot;.repeat(n)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Fix inefficient string concatenation for literal-block values (\u003ccode\u003e|\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.29.0] - 2026-06-20\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport rendering GFM task list items to Markdown (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/433\"\u003e#433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport rendering YAML front matter to Markdown (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/434\"\u003e#434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAlerts\n\u003cul\u003e\n\u003cli\u003eAllow customizing HTML attributes for alert title \u003ccode\u003e\u0026lt;p\u0026gt;\u003c/code\u003e tag via \u003ccode\u003eAttributeProvider\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/427\"\u003e#427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow authors to provide custom\ntitles per alert. See the\n\u003ca href=\"https://github.com/commonmark/commonmark-java/blob/main/commonmark-ext-gfm-alerts/README.md#custom-alert-titles\"\u003ecustom titles section of the alerts README\u003c/a\u003e\nfor more information. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow alerts to be nested within\nother blocks (including other alerts). See\n\u003ca href=\"https://github.com/commonmark/commonmark-java/blob/main/commonmark-ext-gfm-alerts/README.md#nesting-alerts\"\u003ethis section of the alerts README\u003c/a\u003e\nfor more information. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow the set of alert types\n(including standard GFM types) to be completely overwritten. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/435\"\u003e#435\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/64037cf982f2b12a4a2fa1c5a75c6d3f4ab979bf\"\u003e\u003ccode\u003e64037cf\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release commonmark-parent-0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/bd3e06669fd168874721267e7e5f5bd1d3433466\"\u003e\u003ccode\u003ebd3e066\u003c/code\u003e\u003c/a\u003e Fix Javadoc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/4aaf754cc90b4a5a62647a8fc621185c934f8bbf\"\u003e\u003ccode\u003e4aaf754\u003c/code\u003e\u003c/a\u003e mvn versions:set -DnewVersion=0.30.0-SNAPSHOT\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/42b4fb7adfe288ef13e9e27ab20aff7e91b0ab9d\"\u003e\u003ccode\u003e42b4fb7\u003c/code\u003e\u003c/a\u003e Prepare CHANGELOG for version 0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/b76e09d7a8362abb5f04e1d6b91dbd6da279a6fc\"\u003e\u003ccode\u003eb76e09d\u003c/code\u003e\u003c/a\u003e Limit how deep inline nodes may nest by default (100)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/49f65cb5cbec93cff713179990307145198e7061\"\u003e\u003ccode\u003e49f65cb\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing deeply nested emphasis\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/610f84b83e68c381e8f784ae4d044c80e1948b67\"\u003e\u003ccode\u003e610f84b\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing pathological autolink email addresses\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/9f1d73897a56cbd74c39347af351a473e70297e1\"\u003e\u003ccode\u003e9f1d738\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing pathological HTML block attributes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/e13297e849995fdd582a85841067bff1d9c35ee5\"\u003e\u003ccode\u003ee13297e\u003c/code\u003e\u003c/a\u003e Fix quadratic runtime when parsing pathological backticks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/89d1bd3fa1524e8217ed61db5e8116c82434470f\"\u003e\u003ccode\u003e89d1bd3\u003c/code\u003e\u003c/a\u003e Fix quadratic runtime when parsing with lots of \u003ccode\u003e\u0026lt;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.28.0...commonmark-parent-0.30.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.commonmark:commonmark-ext-gfm-strikethrough` from 0.28.0 to 0.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/commonmark/commonmark-java/releases\"\u003eorg.commonmark:commonmark-ext-gfm-strikethrough's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ecommonmark-java 0.30.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew option \u003ccode\u003elineSeparator\u003c/code\u003e for \u003ccode\u003eMarkdownRenderer.Builder\u003c/code\u003e to change the default line\nseparator from \u003ccode\u003e\\n\u003c/code\u003e (e.g. to \u003ccode\u003e\\r\\n\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Support extracting the raw YAML content so that you can\ndo the YAML parsing using a library (instead of the limited built-in parsing) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTables extension: Limit max number of parsed table cells by default (1 million cells),\nsee option \u003ccode\u003emaxCells\u003c/code\u003e in \u003ccode\u003eTablesExtension.Builder\u003c/code\u003e. Parsing will throw an error if the\nlimit would be exceeded, to protect against malicious input.\u003c/li\u003e\n\u003cli\u003eThe default for \u003ccode\u003emaxOpenBlockParsers\u003c/code\u003e for \u003ccode\u003eParser.Builder\u003c/code\u003e is now 100; configure the\noption to remove the limit.\u003c/li\u003e\n\u003cli\u003eLimit how deeply inline nodes may nest by default (100), see option \u003ccode\u003emaxInlineNesting\u003c/code\u003e in\n\u003ccode\u003eParser.Builder\u003c/code\u003e; configure the option to remove the limit. This covers emphasis-like\ndelimiters (e.g. \u003ccode\u003e*\u003c/code\u003e or the ins extension's \u003ccode\u003e+\u003c/code\u003e) as well as images, which can otherwise\nnest arbitrarily deep for a small amount of input. Anything over the limit is treated as\nplain text instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix quadratic runtime on various pathological inputs (where inline syntax to start a\nnode is used repeatedly but never finished):\n\u003cul\u003e\n\u003cli\u003eInline HTML like \u003ccode\u003e\u0026quot;x \u0026lt;!--\u0026quot;.repeat(100_000)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/447\"\u003e#447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAutolink starts like \u003ccode\u003e\u0026quot;\u0026lt;\u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eEmphasis like \u003ccode\u003e\u0026quot;a**b\u0026quot; + \u0026quot;c* \u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBackticks runs of different lengths\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow errors when parsing pathological inputs with repeated syntax:\n\u003cul\u003e\n\u003cli\u003eHTML block attributes\u003c/li\u003e\n\u003cli\u003eAutolink email addresses\u003c/li\u003e\n\u003cli\u003eDeeply nested emphasis\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow error when rendering/visiting deeply nested inline nodes, by capping nesting\ndepth during parsing (see \u003ccode\u003emaxInlineNesting\u003c/code\u003e above). This can happen with emphasis, e.g.\n\u003ccode\u003e\u0026quot;*\u0026quot;.repeat(n) + \u0026quot;x\u0026quot; + \u0026quot;*\u0026quot;.repeat(n)\u003c/code\u003e or \u003ccode\u003e\u0026quot;*a \u0026quot;.repeat(n) + \u0026quot; b*\u0026quot;.repeat(n)\u003c/code\u003e, as well as with\nimages, e.g. \u003ccode\u003e\u0026quot;![\u0026quot;.repeat(https://github.com/commonmark/commonmark-java/blob/HEAD/n) + \u0026quot;x\u0026quot; + \u0026quot;](u)\u0026quot;.repeat(n)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Fix inefficient string concatenation for literal-block values (\u003ccode\u003e|\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ecommonmark-java 0.29.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport rendering GFM task list items to Markdown (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/433\"\u003e#433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport rendering YAML front matter to Markdown (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/434\"\u003e#434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAlerts\n\u003cul\u003e\n\u003cli\u003eAllow customizing HTML attributes for alert title \u003ccode\u003e\u0026lt;p\u0026gt;\u003c/code\u003e tag via \u003ccode\u003eAttributeProvider\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/427\"\u003e#427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow authors to provide custom\ntitles per alert. See the\n\u003ca href=\"https://github.com/commonmark/commonmark-java/blob/HEAD/commonmark-ext-gfm-alerts/README.md#custom-alert-titles\"\u003ecustom titles section of the alerts README\u003c/a\u003e\nfor more information. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow alerts to be nested within\nother blocks (including other alerts). See\n\u003ca href=\"https://github.com/commonmark/commonmark-java/blob/HEAD/commonmark-ext-gfm-alerts/README.md#nesting-alerts\"\u003ethis section of the alerts README\u003c/a\u003e\nfor more information. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow the set of alert types\n(including standard GFM types) to be completely overwritten. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/435\"\u003e#435\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md\"\u003eorg.commonmark:commonmark-ext-gfm-strikethrough's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.30.0] - 2026-08-06\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew option \u003ccode\u003elineSeparator\u003c/code\u003e for \u003ccode\u003eMarkdownRenderer.Builder\u003c/code\u003e to change the default line\nseparator from \u003ccode\u003e\\n\u003c/code\u003e (e.g. to \u003ccode\u003e\\r\\n\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Support extracting the raw YAML content so that you can\ndo the YAML parsing using a library (instead of the limited built-in parsing) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTables extension: Limit max number of parsed table cells by default (1 million cells),\nsee option \u003ccode\u003emaxCells\u003c/code\u003e in \u003ccode\u003eTablesExtension.Builder\u003c/code\u003e. Parsing will throw an error if the\nlimit would be exceeded, to protect against malicious input.\u003c/li\u003e\n\u003cli\u003eThe default for \u003ccode\u003emaxOpenBlockParsers\u003c/code\u003e for \u003ccode\u003eParser.Builder\u003c/code\u003e is now 100; configure the\noption to remove the limit.\u003c/li\u003e\n\u003cli\u003eLimit how deeply inline nodes may nest by default (100), see option \u003ccode\u003emaxInlineNesting\u003c/code\u003e in\n\u003ccode\u003eParser.Builder\u003c/code\u003e; configure the option to remove the limit. This covers emphasis-like\ndelimiters (e.g. \u003ccode\u003e*\u003c/code\u003e or the ins extension's \u003ccode\u003e+\u003c/code\u003e) as well as images, which can otherwise\nnest arbitrarily deep for a small amount of input. Anything over the limit is treated as\nplain text instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix quadratic runtime on various pathological inputs (where inline syntax to start a\nnode is used repeatedly but never finished):\n\u003cul\u003e\n\u003cli\u003eInline HTML like \u003ccode\u003e\u0026quot;x \u0026lt;!--\u0026quot;.repeat(100_000)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/447\"\u003e#447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAutolink starts like \u003ccode\u003e\u0026quot;\u0026lt;\u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eEmphasis like \u003ccode\u003e\u0026quot;a**b\u0026quot; + \u0026quot;c* \u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBackticks runs of different lengths\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow errors when parsing pathological inputs with repeated syntax:\n\u003cul\u003e\n\u003cli\u003eHTML block attributes\u003c/li\u003e\n\u003cli\u003eAutolink email addresses\u003c/li\u003e\n\u003cli\u003eDeeply nested emphasis\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow error when rendering/visiting deeply nested inline nodes, by capping nesting\ndepth during parsing (see \u003ccode\u003emaxInlineNesting\u003c/code\u003e above). This can happen with emphasis, e.g.\n\u003ccode\u003e\u0026quot;*\u0026quot;.repeat(n) + \u0026quot;x\u0026quot; + \u0026quot;*\u0026quot;.repeat(n)\u003c/code\u003e or \u003ccode\u003e\u0026quot;*a \u0026quot;.repeat(n) + \u0026quot; b*\u0026quot;.repeat(n)\u003c/code\u003e, as well as with\nimages, e.g. \u003ccode\u003e\u0026quot;![\u0026quot;.repeat(https://github.com/commonmark/commonmark-java/blob/main/n) + \u0026quot;x\u0026quot; + \u0026quot;](u)\u0026quot;.repeat(n)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Fix inefficient string concatenation for literal-block values (\u003ccode\u003e|\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.29.0] - 2026-06-20\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport rendering GFM task list items to Markdown (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/433\"\u003e#433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport rendering YAML front matter to Markdown (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/434\"\u003e#434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAlerts\n\u003cul\u003e\n\u003cli\u003eAllow customizing HTML attributes for alert title \u003ccode\u003e\u0026lt;p\u0026gt;\u003c/code\u003e tag via \u003ccode\u003eAttributeProvider\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/427\"\u003e#427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow authors to provide custom\ntitles per alert. See the\n\u003ca href=\"https://github.com/commonmark/commonmark-java/blob/main/commonmark-ext-gfm-alerts/README.md#custom-alert-titles\"\u003ecustom titles section of the alerts README\u003c/a\u003e\nfor more information. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow alerts to be nested within\nother blocks (including other alerts). See\n\u003ca href=\"https://github.com/commonmark/commonmark-java/blob/main/commonmark-ext-gfm-alerts/README.md#nesting-alerts\"\u003ethis section of the alerts README\u003c/a\u003e\nfor more information. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow the set of alert types\n(including standard GFM types) to be completely overwritten. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/435\"\u003e#435\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/64037cf982f2b12a4a2fa1c5a75c6d3f4ab979bf\"\u003e\u003ccode\u003e64037cf\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release commonmark-parent-0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/bd3e06669fd168874721267e7e5f5bd1d3433466\"\u003e\u003ccode\u003ebd3e066\u003c/code\u003e\u003c/a\u003e Fix Javadoc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/4aaf754cc90b4a5a62647a8fc621185c934f8bbf\"\u003e\u003ccode\u003e4aaf754\u003c/code\u003e\u003c/a\u003e mvn versions:set -DnewVersion=0.30.0-SNAPSHOT\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/42b4fb7adfe288ef13e9e27ab20aff7e91b0ab9d\"\u003e\u003ccode\u003e42b4fb7\u003c/code\u003e\u003c/a\u003e Prepare CHANGELOG for version 0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/b76e09d7a8362abb5f04e1d6b91dbd6da279a6fc\"\u003e\u003ccode\u003eb76e09d\u003c/code\u003e\u003c/a\u003e Limit how deep inline nodes may nest by default (100)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/49f65cb5cbec93cff713179990307145198e7061\"\u003e\u003ccode\u003e49f65cb\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing deeply nested emphasis\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/610f84b83e68c381e8f784ae4d044c80e1948b67\"\u003e\u003ccode\u003e610f84b\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing pathological autolink email addresses\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/9f1d73897a56cbd74c39347af351a473e70297e1\"\u003e\u003ccode\u003e9f1d738\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing pathological HTML block attributes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/e13297e849995fdd582a85841067bff1d9c35ee5\"\u003e\u003ccode\u003ee13297e\u003c/code\u003e\u003c/a\u003e Fix quadratic runtime when parsing pathological backticks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/89d1bd3fa1524e8217ed61db5e8116c82434470f\"\u003e\u003ccode\u003e89d1bd3\u003c/code\u003e\u003c/a\u003e Fix quadratic runtime when parsing with lots of \u003ccode\u003e\u0026lt;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.28.0...commonmark-parent-0.30.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.commonmark:commonmark-ext-gfm-tables` from 0.28.0 to 0.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/commonmark/commonmark-java/releases\"\u003eorg.commonmark:commonmark-ext-gfm-tables's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ecommonmark-java 0.30.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew option \u003ccode\u003elineSeparator\u003c/code\u003e for \u003ccode\u003eMarkdownRenderer.Builder\u003c/code\u003e to change the default line\nseparator from \u003ccode\u003e\\n\u003c/code\u003e (e.g. to \u003ccode\u003e\\r\\n\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Support extracting the raw YAML content so that you can\ndo the YAML parsing using a library (instead of the limited built-in parsing) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTables extension: Limit max number of parsed table cells by default (1 million cells),\nsee option \u003ccode\u003emaxCells\u003c/code\u003e in \u003ccode\u003eTablesExtension.Builder\u003c/code\u003e. Parsing will throw an error if the\nlimit would be exceeded, to protect against malicious input.\u003c/li\u003e\n\u003cli\u003eThe default for \u003ccode\u003emaxOpenBlockParsers\u003c/code\u003e for \u003ccode\u003eParser.Builder\u003c/code\u003e is now 100; configure the\noption to remove the limit.\u003c/li\u003e\n\u003cli\u003eLimit how deeply inline nodes may nest by default (100), see option \u003ccode\u003emaxInlineNesting\u003c/code\u003e in\n\u003ccode\u003eParser.Builder\u003c/code\u003e; configure the option to remove the limit. This covers emphasis-like\ndelimiters (e.g. \u003ccode\u003e*\u003c/code\u003e or the ins extension's \u003ccode\u003e+\u003c/code\u003e) as well as images, which can otherwise\nnest arbitrarily deep for a small amount of input. Anything over the limit is treated as\nplain text instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix quadratic runtime on various pathological inputs (where inline syntax to start a\nnode is used repeatedly but never finished):\n\u003cul\u003e\n\u003cli\u003eInline HTML like \u003ccode\u003e\u0026quot;x \u0026lt;!--\u0026quot;.repeat(100_000)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/447\"\u003e#447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAutolink starts like \u003ccode\u003e\u0026quot;\u0026lt;\u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eEmphasis like \u003ccode\u003e\u0026quot;a**b\u0026quot; + \u0026quot;c* \u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBackticks runs of different lengths\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow errors when parsing pathological inputs with repeated syntax:\n\u003cul\u003e\n\u003cli\u003eHTML block attributes\u003c/li\u003e\n\u003cli\u003eAutolink email addresses\u003c/li\u003e\n\u003cli\u003eDeeply nested emphasis\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow error when rendering/visiting deeply nested inline nodes, by capping nesting\ndepth during parsing (see \u003ccode\u003emaxInlineNesting\u003c/code\u003e above). This can happen with emphasis, e.g.\n\u003ccode\u003e\u0026quot;*\u0026quot;.repeat(n) + \u0026quot;x\u0026quot; + \u0026quot;*\u0026quot;.repeat(n)\u003c/code\u003e or \u003ccode\u003e\u0026quot;*a \u0026quot;.repeat(n) + \u0026quot; b*\u0026quot;.repeat(n)\u003c/code\u003e, as well as with\nimages, e.g. \u003ccode\u003e\u0026quot;![\u0026quot;.repeat(https://github.com/commonmark/commonmark-java/blob/HEAD/n) + \u0026quot;x\u0026quot; + \u0026quot;](u)\u0026quot;.repeat(n)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Fix inefficient string concatenation for literal-block values (\u003ccode\u003e|\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ecommonmark-java 0.29.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport rendering GFM task list items to Markdown (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/433\"\u003e#433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport rendering YAML front matter to Markdown (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/434\"\u003e#434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAlerts\n\u003cul\u003e\n\u003cli\u003eAllow customizing HTML attributes for alert title \u003ccode\u003e\u0026lt;p\u0026gt;\u003c/code\u003e tag via \u003ccode\u003eAttributeProvider\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/427\"\u003e#427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow authors to provide custom\ntitles per alert. See the\n\u003ca href=\"https://github.com/commonmark/commonmark-java/blob/HEAD/commonmark-ext-gfm-alerts/README.md#custom-alert-titles\"\u003ecustom titles section of the alerts README\u003c/a\u003e\nfor more information. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow alerts to be nested within\nother blocks (including other alerts). See\n\u003ca href=\"https://github.com/commonmark/commonmark-java/blob/HEAD/commonmark-ext-gfm-alerts/README.md#nesting-alerts\"\u003ethis section of the alerts README\u003c/a\u003e\nfor more information. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow the set of alert types\n(including standard GFM types) to be completely overwritten. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/435\"\u003e#435\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md\"\u003eorg.commonmark:commonmark-ext-gfm-tables's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.30.0] - 2026-08-06\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew option \u003ccode\u003elineSeparator\u003c/code\u003e for \u003ccode\u003eMarkdownRenderer.Builder\u003c/code\u003e to change the default line\nseparator from \u003ccode\u003e\\n\u003c/code\u003e (e.g. to \u003ccode\u003e\\r\\n\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Support extracting the raw YAML content so that you can\ndo the YAML parsing using a library (instead of the limited built-in parsing) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTables extension: Limit max number of parsed table cells by default (1 million cells),\nsee option \u003ccode\u003emaxCells\u003c/code\u003e in \u003ccode\u003eTablesExtension.Builder\u003c/code\u003e. Parsing will throw an error if the\nlimit would be exceeded, to protect against malicious input.\u003c/li\u003e\n\u003cli\u003eThe default for \u003ccode\u003emaxOpenBlockParsers\u003c/code\u003e for \u003ccode\u003eParser.Builder\u003c/code\u003e is now 100; configure the\noption to remove the limit.\u003c/li\u003e\n\u003cli\u003eLimit how deeply inline nodes may nest by default (100), see option \u003ccode\u003emaxInlineNesting\u003c/code\u003e in\n\u003ccode\u003eParser.Builder\u003c/code\u003e; configure the option to remove the limit. This covers emphasis-like\ndelimiters (e.g. \u003ccode\u003e*\u003c/code\u003e or the ins extension's \u003ccode\u003e+\u003c/code\u003e) as well as images, which can otherwise\nnest arbitrarily deep for a small amount of input. Anything over the limit is treated as\nplain text instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix quadratic runtime on various pathological inputs (where inline syntax to start a\nnode is used repeatedly but never finished):\n\u003cul\u003e\n\u003cli\u003eInline HTML like \u003ccode\u003e\u0026quot;x \u0026lt;!--\u0026quot;.repeat(100_000)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/447\"\u003e#447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAutolink starts like \u003ccode\u003e\u0026quot;\u0026lt;\u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eEmphasis like \u003ccode\u003e\u0026quot;a**b\u0026quot; + \u0026quot;c* \u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBackticks runs of different lengths\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow errors when parsing pathological inputs with repeated syntax:\n\u003cul\u003e\n\u003cli\u003eHTML block attributes\u003c/li\u003e\n\u003cli\u003eAutolink email addresses\u003c/li\u003e\n\u003cli\u003eDeeply nested emphasis\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow error when rendering/visiting deeply nested inline nodes, by capping nesting\ndepth during parsing (see \u003ccode\u003emaxInlineNesting\u003c/code\u003e above). This can happen with emphasis, e.g.\n\u003ccode\u003e\u0026quot;*\u0026quot;.repeat(n) + \u0026quot;x\u0026quot; + \u0026quot;*\u0026quot;.repeat(n)\u003c/code\u003e or \u003ccode\u003e\u0026quot;*a \u0026quot;.repeat(n) + \u0026quot; b*\u0026quot;.repeat(n)\u003c/code\u003e, as well as with\nimages, e.g. \u003ccode\u003e\u0026quot;![\u0026quot;.repeat(https://github.com/commonmark/commonmark-java/blob/main/n) + \u0026quot;x\u0026quot; + \u0026quot;](u)\u0026quot;.repeat(n)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Fix inefficient string concatenation for literal-block values (\u003ccode\u003e|\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.29.0] - 2026-06-20\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport rendering GFM task list items to Markdown (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/433\"\u003e#433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport rendering YAML front matter to Markdown (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/434\"\u003e#434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAlerts\n\u003cul\u003e\n\u003cli\u003eAllow customizing HTML attributes for alert title \u003ccode\u003e\u0026lt;p\u0026gt;\u003c/code\u003e tag via \u003ccode\u003eAttributeProvider\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/427\"\u003e#427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow authors to provide custom\ntitles per alert. See the\n\u003ca href=\"https://github.com/commonmark/commonmark-java/blob/main/commonmark-ext-gfm-alerts/README.md#custom-alert-titles\"\u003ecustom titles section of the alerts README\u003c/a\u003e\nfor more information. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow alerts to be nested within\nother blocks (including other alerts). See\n\u003ca href=\"https://github.com/commonmark/commonmark-java/blob/main/commonmark-ext-gfm-alerts/README.md#nesting-alerts\"\u003ethis section of the alerts README\u003c/a\u003e\nfor more information. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow the set of alert types\n(including standard GFM types) to be completely overwritten. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/435\"\u003e#435\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/64037cf982f2b12a4a2fa1c5a75c6d3f4ab979bf\"\u003e\u003ccode\u003e64037cf\u003c/code\u003e\u003c/a...\n\n_Description has been truncated_","html_url":"https://github.com/amstaff666/openclaw-30754/pull/34","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/amstaff666%2Fopenclaw-30754/issues/34","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/34/packages"},{"uuid":"5448407118","node_id":"PR_kwDOUYUgzM8AAAABDb7GBQ","number":3,"state":"closed","title":"Bump the gradle-minor-and-patch group across 1 directory with 10 updates","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-14T15:46:15.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-14T10:55:36.000Z","updated_at":"2026-09-14T15:46:16.000Z","time_to_close":17439,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"gradle-minor-and-patch","update_count":10,"packages":[{"name":"androidx.core:core-ktx","old_version":"1.17.0","new_version":"1.19.0"},{"name":"androidx.compose:compose-bom","old_version":"2026.05.01","new_version":"2026.09.00"},{"name":"androidx.navigation:navigation-compose","old_version":"2.9.8","new_version":"2.10.1"},{"name":"org.jetbrains.kotlinx:kotlinx-serialization-json","old_version":"1.9.0","new_version":"1.11.0","repository_url":"https://github.com/Kotlin/kotlinx.serialization"},{"name":"org.jetbrains.kotlinx:kotlinx-coroutines-android","old_version":"1.10.2","new_version":"1.11.0","repository_url":"https://github.com/Kotlin/kotlinx.coroutines"},{"name":"org.jetbrains.kotlinx:kotlinx-coroutines-test","old_version":"1.10.2","new_version":"1.11.0","repository_url":"https://github.com/Kotlin/kotlinx.coroutines"},{"name":"org.jetbrains.kotlin.android","old_version":"2.2.20","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.compose","old_version":"2.2.20","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.2.20","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"com.google.devtools.ksp","old_version":"2.2.20-2.0.4","new_version":"2.3.12","repository_url":"https://github.com/google/ksp"}],"path":null,"ecosystem":"maven"},"body":"Bumps the gradle-minor-and-patch group with 10 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| androidx.core:core-ktx | `1.17.0` | `1.19.0` |\n| androidx.compose:compose-bom | `2026.05.01` | `2026.09.00` |\n| androidx.navigation:navigation-compose | `2.9.8` | `2.10.1` |\n| [org.jetbrains.kotlinx:kotlinx-serialization-json](https://github.com/Kotlin/kotlinx.serialization) | `1.9.0` | `1.11.0` |\n| [org.jetbrains.kotlinx:kotlinx-coroutines-android](https://github.com/Kotlin/kotlinx.coroutines) | `1.10.2` | `1.11.0` |\n| [org.jetbrains.kotlinx:kotlinx-coroutines-test](https://github.com/Kotlin/kotlinx.coroutines) | `1.10.2` | `1.11.0` |\n| [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) | `2.2.20` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.compose](https://github.com/JetBrains/kotlin) | `2.2.20` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.serialization](https://github.com/JetBrains/kotlin) | `2.2.20` | `2.4.20` |\n| [com.google.devtools.ksp](https://github.com/google/ksp) | `2.2.20-2.0.4` | `2.3.12` |\n\n\nUpdates `androidx.core:core-ktx` from 1.17.0 to 1.19.0\n\nUpdates `androidx.compose:compose-bom` from 2026.05.01 to 2026.09.00\n\nUpdates `androidx.navigation:navigation-compose` from 2.9.8 to 2.10.1\n\nUpdates `org.jetbrains.kotlinx:kotlinx-serialization-json` from 1.9.0 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/releases\"\u003eorg.jetbrains.kotlinx:kotlinx-serialization-json's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.11.0\u003c/h2\u003e\n\u003cp\u003eThis release is based on Kotlin 2.3.20 and provides a new Json exceptions API and some bugfixes and improvements.\u003c/p\u003e\n\u003ch2\u003eExpose Json exceptions structure\u003c/h2\u003e\n\u003cp\u003eTo make working with exceptions easier and providing proper error codes in e.g., REST APIs,\nclasses \u003ccode\u003eJsonException\u003c/code\u003e, \u003ccode\u003eJsonDecodingException\u003c/code\u003e, and \u003ccode\u003eJsonEncodingException\u003c/code\u003e are now public.\nThey have relevant public properties, such as \u003ccode\u003eshortMessage\u003c/code\u003e, \u003ccode\u003epath\u003c/code\u003e, \u003ccode\u003eoffset\u003c/code\u003e, and others.\nThis API is currently experimental, and we're going to improve it further in the subsequent releases.\nSee the linked issues for the details: \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/1930\"\u003e#1930\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/1877\"\u003e#1877\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eAbility to hide user input from exception messages for security/privacy reasons.\u003c/h2\u003e\n\u003cp\u003eHistorically, exception messages in kotlinx.serialization often included the input Json itself for debuggability reason.\nSuch behavior may pose additional challenges for logging, analytics, and other systems, since\na system is not always allowed to store user data due to privacy/security reasons, which imposes additional sanitation logic.\nTo address this issue, a new property \u003ccode\u003eexceptionsWithDebugInfo\u003c/code\u003e is added to \u003ccode\u003eJsonConfiguration\u003c/code\u003e.\nDisable it to hide user input from exception messages.\nIMPORTANT: This behavior will be enabled by default when this property becomes stable.\nSee \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/2590\"\u003e#2590\u003c/a\u003e for more details.\u003c/p\u003e\n\u003ch2\u003eBugfixes and improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCBOR: Relax value range check when decoding numbers (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3167\"\u003e#3167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse a specialized writeDecimalLong method for IO stream integrations in Json (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3152\"\u003e#3152\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.10.0\u003c/h2\u003e\n\u003cp\u003eThis release is based on Kotlin 2.3.0 and contains all of the changes from 1.10.0-RC.\nThe only additional change is a fix for ProtoBuf packing of Kotlin unsigned types (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3079\"\u003e#3079\u003c/a\u003e).\nBig thanks to \u003ca href=\"https://github.com/KosmX\"\u003eKosmX\u003c/a\u003e for contributing the fix.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eFor your convenience, the changelog for 1.10.0-RC is duplicated below:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eStabilization of APIs\u003c/h2\u003e\n\u003cp\u003ekotlinx-serialization 1.10 and subsequent releases will be focused on stabilization of existing APIs.\nThe following APIs and configuration options are no longer experimental because they're widely used without any known major issues:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eJson\u003c/code\u003e configuration options: \u003ccode\u003edecodeEnumsCaseInsensitive\u003c/code\u003e, \u003ccode\u003eallowTrailingComma\u003c/code\u003e, \u003ccode\u003eallowComments\u003c/code\u003e, and \u003ccode\u003eprettyPrintIndent\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3100\"\u003e#3100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@EncodeDefault\u003c/code\u003e annotation and its modes. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3106\"\u003e#3106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eJsonUnquotedLiteral\u003c/code\u003e constructor function (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/2900\"\u003e#2900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eJsonPrimitive\u003c/code\u003e constructor function overloads that accept unsigned types. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3117\"\u003e#3117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eJSON DSL functions on \u003ccode\u003eJsonElement\u003c/code\u003e with \u003ccode\u003eNothing?\u003c/code\u003e overloads. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3117\"\u003e#3117\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eReadiness for return value checker\u003c/h2\u003e\n\u003cp\u003eKotlin 2.3.0 \u003ca href=\"https://kotlinlang.org/docs/whatsnew23.html#unused-return-value-checker\"\u003eintroduces a new feature\u003c/a\u003e aimed at helping you to catch bugs related to the accidentally ignored return value of the function.\nkotlinx-serialization 1.10.0-RC code is fully marked for this feature, meaning that you can get warnings for unused function calls like \u003ccode\u003eJson.encodeToString(...)\u003c/code\u003e. To get the warnings, the feature has to be enabled in your project as \u003ca href=\"https://kotlinlang.org/docs/unused-return-value-checker.html#configure-the-unused-return-value-checker\"\u003edescribed here\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003ePolymorphism improvements\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/blob/master/CHANGELOG.md\"\u003eorg.jetbrains.kotlinx:kotlinx-serialization-json's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.11.0 / 2026-04-10\u003c/h1\u003e\n\u003cp\u003eThis release is based on Kotlin 2.3.20 and provides new Json exceptions API and some bugfixes and improvements.\u003c/p\u003e\n\u003ch2\u003eExpose Json exceptions structure\u003c/h2\u003e\n\u003cp\u003eTo make working with exceptions easier and providing proper error codes in e.g., REST APIs,\nclasses \u003ccode\u003eJsonException\u003c/code\u003e, \u003ccode\u003eJsonDecodingException\u003c/code\u003e, and \u003ccode\u003eJsonEncodingException\u003c/code\u003e are now public.\nThey have relevant public properties, such as \u003ccode\u003eshortMessage\u003c/code\u003e, \u003ccode\u003epath\u003c/code\u003e, \u003ccode\u003eoffset\u003c/code\u003e, and others.\nThis API is currently experimental, and we're going to improve it further in the subsequent releases.\nSee the linked issues for the details: \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/1930\"\u003e#1930\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/1877\"\u003e#1877\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eAbility to hide user input from exception messages for security/privacy reasons.\u003c/h2\u003e\n\u003cp\u003eHistorically, exception messages in kotlinx.serialization often included the input Json itself for debuggability reason.\nSuch behavior may pose additional challenges for logging, analytics, and other systems, since\na system is not always allowed to store user data due to privacy/security reasons, which imposes additional sanitation logic.\nTo address this issue, a new property \u003ccode\u003eexceptionsWithDebugInfo\u003c/code\u003e is added to \u003ccode\u003eJsonConfiguration\u003c/code\u003e.\nDisable it to hide user input from exception messages.\nIMPORTANT: This behavior will be enabled by default when this property becomes stable.\nSee \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/2590\"\u003e#2590\u003c/a\u003e for more details.\u003c/p\u003e\n\u003ch2\u003eBugfixes and improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCBOR: Relax value range check when decoding numbers (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3167\"\u003e#3167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse a specialized writeDecimalLong method for IO stream integrations in Json (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3152\"\u003e#3152\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.10.0 / 2026-01-21\u003c/h1\u003e\n\u003cp\u003eThis release is based on Kotlin 2.3.0 and contains all of the changes from 1.10.0-RC.\nThe only additional change is a fix for ProtoBuf packing of Kotlin unsigned types (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3079\"\u003e#3079\u003c/a\u003e).\nBig thanks to \u003ca href=\"https://github.com/KosmX\"\u003eKosmX\u003c/a\u003e for contributing the fix.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eFor your convenience, the changelog for 1.10.0-RC is duplicated below:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eStabilization of APIs\u003c/h2\u003e\n\u003cp\u003ekotlinx-serialization 1.10 and subsequent releases will be focused on stabilization of existing APIs.\nThe following APIs and configuration options are no longer experimental because they're widely used without any known major issues:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eJson\u003c/code\u003e configuration options: \u003ccode\u003edecodeEnumsCaseInsensitive\u003c/code\u003e, \u003ccode\u003eallowTrailingComma\u003c/code\u003e, \u003ccode\u003eallowComments\u003c/code\u003e, and \u003ccode\u003eprettyPrintIndent\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3100\"\u003e#3100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@EncodeDefault\u003c/code\u003e annotation and its modes. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3106\"\u003e#3106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eJsonUnquotedLiteral\u003c/code\u003e constructor function (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/2900\"\u003e#2900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eJsonPrimitive\u003c/code\u003e constructor function overloads that accept unsigned types. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3117\"\u003e#3117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eJSON DSL functions on \u003ccode\u003eJsonElement\u003c/code\u003e with \u003ccode\u003eNothing?\u003c/code\u003e overloads. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3117\"\u003e#3117\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eReadiness for return value checker\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/6956af2e6073347c7832c3c5b374fa3b5a345956\"\u003e\u003ccode\u003e6956af2\u003c/code\u003e\u003c/a\u003e Prepare 1.11 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/390d84c68a19cbf7fa453dec22a333648bde49b4\"\u003e\u003ccode\u003e390d84c\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into dev\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/431fe2dc0a144300b33038820d24fc30302c8abc\"\u003e\u003ccode\u003e431fe2d\u003c/code\u003e\u003c/a\u003e Use local repo for publishing (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3171\"\u003e#3171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/05c12b60a6717b99053fb82e1f94d2f859727374\"\u003e\u003ccode\u003e05c12b6\u003c/code\u003e\u003c/a\u003e Add usage attribute to \u0026quot;testRepositories\u0026quot; configuration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/a4e1f082ef2e72caa139b474c05657de6015da20\"\u003e\u003ccode\u003ea4e1f08\u003c/code\u003e\u003c/a\u003e Bump Kover version to 0.9.8 release (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3174\"\u003e#3174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/304e858ccc7066854637d86ab80056f5f2bcc094\"\u003e\u003ccode\u003e304e858\u003c/code\u003e\u003c/a\u003e Expose Json exceptions structure (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3145\"\u003e#3145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/4a0338ef5093d765138151bc30282e909ca459e4\"\u003e\u003ccode\u003e4a0338e\u003c/code\u003e\u003c/a\u003e Included G Play SDK verification file for core-jvm (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3169\"\u003e#3169\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/421f64c74f0ea6d4a3cdc8dd483505366e3f6c8f\"\u003e\u003ccode\u003e421f64c\u003c/code\u003e\u003c/a\u003e CBOR: Relax value range check when decoding numbers (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3167\"\u003e#3167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/85a4f126ec491c77e2b3686cc22c1bae27a20783\"\u003e\u003ccode\u003e85a4f12\u003c/code\u003e\u003c/a\u003e KT-84955: mark apple x64 tagets as deprecated error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/bd38b0e49bce38d1a55576e89856bc63990167ed\"\u003e\u003ccode\u003ebd38b0e\u003c/code\u003e\u003c/a\u003e Remove dead code\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/compare/v1.9.0...v1.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlinx:kotlinx-coroutines-android` from 1.10.2 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/releases\"\u003eorg.jetbrains.kotlinx:kotlinx-coroutines-android's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.11.0\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003ePromise\u003c/code\u003e-related functions from JS and Wasm/JS to the new \u003ccode\u003eweb\u003c/code\u003e target. On Wasm/JS, this is a breaking change. Before the change, \u003ccode\u003ePromise\u003c/code\u003e on Wasm/JS could work with arbitrary Kotlin types, but now, only \u003ccode\u003eJsAny\u003c/code\u003e subtypes are accepted (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4563\"\u003e#4563\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eChanged handling of coroutine exceptions that can't be propagated on JS and Wasm/JS. B\nefore, exceptions were logged, but now, they are reported to the JS runtime (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4451\"\u003e#4451\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4631\"\u003e#4631\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeprecated using \u003ccode\u003eCoroutineDispatcher\u003c/code\u003e as the coroutine context key; now, \u003ccode\u003eContinuationInterceptor\u003c/code\u003e has to be used instead (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4333\"\u003e#4333\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdvanced the deprecation levels on \u003ccode\u003ekotlinx-coroutines-test\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4604\"\u003e#4604\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded lint functions that mark passing a \u003ccode\u003eJob\u003c/code\u003e to coroutine builders as deprecated (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4435\"\u003e#4435\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003erunBlocking\u003c/code\u003e in code shared between JVM and Native (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4368\"\u003e#4368\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003esuspendCancellableCoroutine\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4574\"\u003e#4574\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eflowOn\u003c/code\u003e incorrectly handling \u003ccode\u003eThreadContextElement\u003c/code\u003e updates (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4403\"\u003e#4403\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed exceptions in user-supplied \u003ccode\u003eThread.UncaughtExceptionHandler\u003c/code\u003e instances causing the internal coroutines machinery to fail (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4516\"\u003e#4516\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCoroutineDispatcher.asScheduler\u003c/code\u003e in the RxJava integration not cancelling outstanding work when a \u003ccode\u003eWorker\u003c/code\u003e gets cancelled, which led to memory leaks in some scenarios (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4615\"\u003e#4615\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSharedFlow\u003c/code\u003e entering an invalid state when a subscriber and an emitter are cancelled simultaneously (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4583\"\u003e#4583\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed an R8 optimization leading to \u003ccode\u003eshareIn\u003c/code\u003e/\u003ccode\u003estateIn\u003c/code\u003e coroutines getting garbage-collected (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4646\"\u003e#4646\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/solevic\"\u003e\u003ccode\u003e@​solevic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSmall additions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eCompletableDeferred.asDeferred\u003c/code\u003e for obtaining a read-only \u003ccode\u003eDeferred\u003c/code\u003e view (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4408\"\u003e#4408\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSharedFlow.asFlow\u003c/code\u003e for obtaining a \u003ccode\u003eFlow\u003c/code\u003e view with hidden hot flow semantics (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4530\"\u003e#4530\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/g000sha256\"\u003e\u003ccode\u003e@​g000sha256\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow.collectLatest\u003c/code\u003e overload returning \u003ccode\u003eNothing\u003c/code\u003e to assist with finding unreachable code (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4454\"\u003e#4454\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eReceiveChannel.consumeTo\u003c/code\u003e for consuming a \u003ccode\u003eReceiveChannel\u003c/code\u003e into a \u003ccode\u003eMutableCollection\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4520\"\u003e#4520\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e overload returning a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;\u003c/code\u003e, similar to \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e returning \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4275\"\u003e#4275\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/xit0c\"\u003e\u003ccode\u003e@​xit0c\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded terminal \u003ccode\u003eFlow\u003c/code\u003e operators for collecting a \u003ccode\u003eFlow\u003c/code\u003e to a \u003ccode\u003eMap\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/1541\"\u003e#1541\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog relative to version 1.11.0\u003c/h3\u003e\n\u003cp\u003eNo changes, only the version is increased.\u003c/p\u003e\n\u003ch2\u003e1.11.0-rc02\u003c/h2\u003e\n\u003cp\u003eRestored binary compatibility with 1.10.2 and older versions on Wasm/JS for usages of \u003ccode\u003ePromise\u003c/code\u003e-related functions (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003e1.11.0-rc01\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/blob/master/CHANGES.md\"\u003eorg.jetbrains.kotlinx:kotlinx-coroutines-android's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.11.0\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003ePromise\u003c/code\u003e-related functions from JS and Wasm/JS to the new \u003ccode\u003eweb\u003c/code\u003e target. On Wasm/JS, this is a breaking change. Before the change, \u003ccode\u003ePromise\u003c/code\u003e on Wasm/JS could work with arbitrary Kotlin types, but now, only \u003ccode\u003eJsAny\u003c/code\u003e subtypes are accepted (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4563\"\u003e#4563\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eChanged handling of coroutine exceptions that can't be propagated on JS and Wasm/JS. Before, exceptions were logged, but now, they are reported to the JS runtime (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4451\"\u003e#4451\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4631\"\u003e#4631\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeprecated using \u003ccode\u003eCoroutineDispatcher\u003c/code\u003e as the coroutine context key; now, \u003ccode\u003eContinuationInterceptor\u003c/code\u003e has to be used instead (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4333\"\u003e#4333\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdvanced the deprecation levels on \u003ccode\u003ekotlinx-coroutines-test\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4604\"\u003e#4604\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded lint functions that mark passing a \u003ccode\u003eJob\u003c/code\u003e to coroutine builders as deprecated (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4435\"\u003e#4435\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003erunBlocking\u003c/code\u003e in code shared between JVM and Native (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4368\"\u003e#4368\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003esuspendCancellableCoroutine\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4574\"\u003e#4574\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eflowOn\u003c/code\u003e incorrectly handling \u003ccode\u003eThreadContextElement\u003c/code\u003e updates (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4403\"\u003e#4403\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed exceptions in user-supplied \u003ccode\u003eThread.UncaughtExceptionHandler\u003c/code\u003e instances causing the internal coroutines machinery to fail (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4516\"\u003e#4516\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCoroutineDispatcher.asScheduler\u003c/code\u003e in the RxJava integration not cancelling outstanding work when a \u003ccode\u003eWorker\u003c/code\u003e gets cancelled, which led to memory leaks in some scenarios (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4615\"\u003e#4615\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSharedFlow\u003c/code\u003e entering an invalid state when a subscriber and an emitter are cancelled simultaneously (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4583\"\u003e#4583\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed an R8 optimization leading to \u003ccode\u003eshareIn\u003c/code\u003e/\u003ccode\u003estateIn\u003c/code\u003e coroutines getting garbage-collected (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4646\"\u003e#4646\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/solevic\"\u003e\u003ccode\u003e@​solevic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSmall additions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eCompletableDeferred.asDeferred\u003c/code\u003e for obtaining a read-only \u003ccode\u003eDeferred\u003c/code\u003e view (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4408\"\u003e#4408\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSharedFlow.asFlow\u003c/code\u003e for obtaining a \u003ccode\u003eFlow\u003c/code\u003e view with hidden hot flow semantics (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4530\"\u003e#4530\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/g000sha256\"\u003e\u003ccode\u003e@​g000sha256\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow.collectLatest\u003c/code\u003e overload returning \u003ccode\u003eNothing\u003c/code\u003e to assist with finding unreachable code (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4454\"\u003e#4454\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eReceiveChannel.consumeTo\u003c/code\u003e for consuming a \u003ccode\u003eReceiveChannel\u003c/code\u003e into a \u003ccode\u003eMutableCollection\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4520\"\u003e#4520\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e overload returning a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;\u003c/code\u003e, similar to \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e returning \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4275\"\u003e#4275\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/xit0c\"\u003e\u003ccode\u003e@​xit0c\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded terminal \u003ccode\u003eFlow\u003c/code\u003e operators for collecting a \u003ccode\u003eFlow\u003c/code\u003e to a \u003ccode\u003eMap\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/1541\"\u003e#1541\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog relative to version 1.11.0\u003c/h3\u003e\n\u003cp\u003eNo changes, only the version is increased.\u003c/p\u003e\n\u003ch2\u003eVersion 1.11.0-rc02\u003c/h2\u003e\n\u003cp\u003eRestored binary compatibility with 1.10.2 and older versions on Wasm/JS for usages of \u003ccode\u003ePromise\u003c/code\u003e-related functions (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eVersion 1.11.0-rc01\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/8564f65764d3d05893cec026c6e94250e2b23874\"\u003e\u003ccode\u003e8564f65\u003c/code\u003e\u003c/a\u003e Version 1.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/a4c6af96c15fe30f5d4e8b810ea74f8babd5805c\"\u003e\u003ccode\u003ea4c6af9\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/ef917b460aa741691fbf991ee1b813049cae18c9\"\u003e\u003ccode\u003eef917b4\u003c/code\u003e\u003c/a\u003e KT-84955: mark apple x64 tagets as deprecated error (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/5ebc421e341bf2ddce734d369da87df1985e80bd\"\u003e\u003ccode\u003e5ebc421\u003c/code\u003e\u003c/a\u003e Update the release procedure description (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4670\"\u003e#4670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/95f46a073bc4a1230352108cea1835fd22219a80\"\u003e\u003ccode\u003e95f46a0\u003c/code\u003e\u003c/a\u003e Remove old maven repository settings (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4672\"\u003e#4672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/b4f4f0aa6acb692f3fbcadd70e4958e3e9d370fc\"\u003e\u003ccode\u003eb4f4f0a\u003c/code\u003e\u003c/a\u003e Fix package name of \u003ccode\u003eToMapCollectionSamplesTest\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4674\"\u003e#4674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/86738dca7dc9ac82249abc8206263fa0065ee631\"\u003e\u003ccode\u003e86738dc\u003c/code\u003e\u003c/a\u003e Added templates to the issue creation wizard (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4654\"\u003e#4654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/330fcc221fb583f0b119f34191f735a73b827378\"\u003e\u003ccode\u003e330fcc2\u003c/code\u003e\u003c/a\u003e Version 1.11.0-rc02\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/e31cef6e9f2d26794be7d75ecbf3033b6432d582\"\u003e\u003ccode\u003ee31cef6\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/dc6e9f61eaf3a67f4bf474a7987aedc3f16cef37\"\u003e\u003ccode\u003edc6e9f6\u003c/code\u003e\u003c/a\u003e Restore Promise-related functions on Wasm/JS as HIDDEN (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/compare/1.10.2...1.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlinx:kotlinx-coroutines-test` from 1.10.2 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/releases\"\u003eorg.jetbrains.kotlinx:kotlinx-coroutines-test's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.11.0\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003ePromise\u003c/code\u003e-related functions from JS and Wasm/JS to the new \u003ccode\u003eweb\u003c/code\u003e target. On Wasm/JS, this is a breaking change. Before the change, \u003ccode\u003ePromise\u003c/code\u003e on Wasm/JS could work with arbitrary Kotlin types, but now, only \u003ccode\u003eJsAny\u003c/code\u003e subtypes are accepted (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4563\"\u003e#4563\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eChanged handling of coroutine exceptions that can't be propagated on JS and Wasm/JS. B\nefore, exceptions were logged, but now, they are reported to the JS runtime (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4451\"\u003e#4451\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4631\"\u003e#4631\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeprecated using \u003ccode\u003eCoroutineDispatcher\u003c/code\u003e as the coroutine context key; now, \u003ccode\u003eContinuationInterceptor\u003c/code\u003e has to be used instead (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4333\"\u003e#4333\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdvanced the deprecation levels on \u003ccode\u003ekotlinx-coroutines-test\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4604\"\u003e#4604\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded lint functions that mark passing a \u003ccode\u003eJob\u003c/code\u003e to coroutine builders as deprecated (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4435\"\u003e#4435\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003erunBlocking\u003c/code\u003e in code shared between JVM and Native (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4368\"\u003e#4368\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003esuspendCancellableCoroutine\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4574\"\u003e#4574\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eflowOn\u003c/code\u003e incorrectly handling \u003ccode\u003eThreadContextElement\u003c/code\u003e updates (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4403\"\u003e#4403\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed exceptions in user-supplied \u003ccode\u003eThread.UncaughtExceptionHandler\u003c/code\u003e instances causing the internal coroutines machinery to fail (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4516\"\u003e#4516\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCoroutineDispatcher.asScheduler\u003c/code\u003e in the RxJava integration not cancelling outstanding work when a \u003ccode\u003eWorker\u003c/code\u003e gets cancelled, which led to memory leaks in some scenarios (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4615\"\u003e#4615\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSharedFlow\u003c/code\u003e entering an invalid state when a subscriber and an emitter are cancelled simultaneously (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4583\"\u003e#4583\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed an R8 optimization leading to \u003ccode\u003eshareIn\u003c/code\u003e/\u003ccode\u003estateIn\u003c/code\u003e coroutines getting garbage-collected (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4646\"\u003e#4646\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/solevic\"\u003e\u003ccode\u003e@​solevic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSmall additions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eCompletableDeferred.asDeferred\u003c/code\u003e for obtaining a read-only \u003ccode\u003eDeferred\u003c/code\u003e view (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4408\"\u003e#4408\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSharedFlow.asFlow\u003c/code\u003e for obtaining a \u003ccode\u003eFlow\u003c/code\u003e view with hidden hot flow semantics (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4530\"\u003e#4530\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/g000sha256\"\u003e\u003ccode\u003e@​g000sha256\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow.collectLatest\u003c/code\u003e overload returning \u003ccode\u003eNothing\u003c/code\u003e to assist with finding unreachable code (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4454\"\u003e#4454\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eReceiveChannel.consumeTo\u003c/code\u003e for consuming a \u003ccode\u003eReceiveChannel\u003c/code\u003e into a \u003ccode\u003eMutableCollection\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4520\"\u003e#4520\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e overload returning a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;\u003c/code\u003e, similar to \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e returning \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4275\"\u003e#4275\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/xit0c\"\u003e\u003ccode\u003e@​xit0c\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded terminal \u003ccode\u003eFlow\u003c/code\u003e operators for collecting a \u003ccode\u003eFlow\u003c/code\u003e to a \u003ccode\u003eMap\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/1541\"\u003e#1541\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog relative to version 1.11.0\u003c/h3\u003e\n\u003cp\u003eNo changes, only the version is increased.\u003c/p\u003e\n\u003ch2\u003e1.11.0-rc02\u003c/h2\u003e\n\u003cp\u003eRestored binary compatibility with 1.10.2 and older versions on Wasm/JS for usages of \u003ccode\u003ePromise\u003c/code\u003e-related functions (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003e1.11.0-rc01\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/blob/master/CHANGES.md\"\u003eorg.jetbrains.kotlinx:kotlinx-coroutines-test's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.11.0\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003ePromise\u003c/code\u003e-related functions from JS and Wasm/JS to the new \u003ccode\u003eweb\u003c/code\u003e target. On Wasm/JS, this is a breaking change. Before the change, \u003ccode\u003ePromise\u003c/code\u003e on Wasm/JS could work with arbitrary Kotlin types, but now, only \u003ccode\u003eJsAny\u003c/code\u003e subtypes are accepted (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4563\"\u003e#4563\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eChanged handling of coroutine exceptions that can't be propagated on JS and Wasm/JS. Before, exceptions were logged, but now, they are reported to the JS runtime (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4451\"\u003e#4451\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4631\"\u003e#4631\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeprecated using \u003ccode\u003eCoroutineDispatcher\u003c/code\u003e as the coroutine context key; now, \u003ccode\u003eContinuationInterceptor\u003c/code\u003e has to be used instead (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4333\"\u003e#4333\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdvanced the deprecation levels on \u003ccode\u003ekotlinx-coroutines-test\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4604\"\u003e#4604\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded lint functions that mark passing a \u003ccode\u003eJob\u003c/code\u003e to coroutine builders as deprecated (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4435\"\u003e#4435\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003erunBlocking\u003c/code\u003e in code shared between JVM and Native (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4368\"\u003e#4368\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003esuspendCancellableCoroutine\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4574\"\u003e#4574\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eflowOn\u003c/code\u003e incorrectly handling \u003ccode\u003eThreadContextElement\u003c/code\u003e updates (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4403\"\u003e#4403\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed exceptions in user-supplied \u003ccode\u003eThread.UncaughtExceptionHandler\u003c/code\u003e instances causing the internal coroutines machinery to fail (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4516\"\u003e#4516\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCoroutineDispatcher.asScheduler\u003c/code\u003e in the RxJava integration not cancelling outstanding work when a \u003ccode\u003eWorker\u003c/code\u003e gets cancelled, which led to memory leaks in some scenarios (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4615\"\u003e#4615\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSharedFlow\u003c/code\u003e entering an invalid state when a subscriber and an emitter are cancelled simultaneously (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4583\"\u003e#4583\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed an R8 optimization leading to \u003ccode\u003eshareIn\u003c/code\u003e/\u003ccode\u003estateIn\u003c/code\u003e coroutines getting garbage-collected (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4646\"\u003e#4646\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/solevic\"\u003e\u003ccode\u003e@​solevic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSmall additions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eCompletableDeferred.asDeferred\u003c/code\u003e for obtaining a read-only \u003ccode\u003eDeferred\u003c/code\u003e view (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4408\"\u003e#4408\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSharedFlow.asFlow\u003c/code\u003e for obtaining a \u003ccode\u003eFlow\u003c/code\u003e view with hidden hot flow semantics (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4530\"\u003e#4530\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/g000sha256\"\u003e\u003ccode\u003e@​g000sha256\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow.collectLatest\u003c/code\u003e overload returning \u003ccode\u003eNothing\u003c/code\u003e to assist with finding unreachable code (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4454\"\u003e#4454\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eReceiveChannel.consumeTo\u003c/code\u003e for consuming a \u003ccode\u003eReceiveChannel\u003c/code\u003e into a \u003ccode\u003eMutableCollection\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4520\"\u003e#4520\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e overload returning a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;\u003c/code\u003e, similar to \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e returning \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4275\"\u003e#4275\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/xit0c\"\u003e\u003ccode\u003e@​xit0c\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded terminal \u003ccode\u003eFlow\u003c/code\u003e operators for collecting a \u003ccode\u003eFlow\u003c/code\u003e to a \u003ccode\u003eMap\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/1541\"\u003e#1541\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog relative to version 1.11.0\u003c/h3\u003e\n\u003cp\u003eNo changes, only the version is increased.\u003c/p\u003e\n\u003ch2\u003eVersion 1.11.0-rc02\u003c/h2\u003e\n\u003cp\u003eRestored binary compatibility with 1.10.2 and older versions on Wasm/JS for usages of \u003ccode\u003ePromise\u003c/code\u003e-related functions (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eVersion 1.11.0-rc01\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/8564f65764d3d05893cec026c6e94250e2b23874\"\u003e\u003ccode\u003e8564f65\u003c/code\u003e\u003c/a\u003e Version 1.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/a4c6af96c15fe30f5d4e8b810ea74f8babd5805c\"\u003e\u003ccode\u003ea4c6af9\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/ef917b460aa741691fbf991ee1b813049cae18c9\"\u003e\u003ccode\u003eef917b4\u003c/code\u003e\u003c/a\u003e KT-84955: mark apple x64 tagets as deprecated error (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/5ebc421e341bf2ddce734d369da87df1985e80bd\"\u003e\u003ccode\u003e5ebc421\u003c/code\u003e\u003c/a\u003e Update the release procedure description (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4670\"\u003e#4670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/95f46a073bc4a1230352108cea1835fd22219a80\"\u003e\u003ccode\u003e95f46a0\u003c/code\u003e\u003c/a\u003e Remove old maven repository settings (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4672\"\u003e#4672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/b4f4f0aa6acb692f3fbcadd70e4958e3e9d370fc\"\u003e\u003ccode\u003eb4f4f0a\u003c/code\u003e\u003c/a\u003e Fix package name of \u003ccode\u003eToMapCollectionSamplesTest\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4674\"\u003e#4674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/86738dca7dc9ac82249abc8206263fa0065ee631\"\u003e\u003ccode\u003e86738dc\u003c/code\u003e\u003c/a\u003e Added templates to the issue creation wizard (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4654\"\u003e#4654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/330fcc221fb583f0b119f34191f735a73b827378\"\u003e\u003ccode\u003e330fcc2\u003c/code\u003e\u003c/a\u003e Version 1.11.0-rc02\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/e31cef6e9f2d26794be7d75ecbf3033b6432d582\"\u003e\u003ccode\u003ee31cef6\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/dc6e9f61eaf3a67f4bf474a7987aedc3f16cef37\"\u003e\u003ccode\u003edc6e9f6\u003c/code\u003e\u003c/a\u003e Restore Promise-related functions on Wasm/JS as HIDDEN (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/compare/1.10.2...1.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlinx:kotlinx-coroutines-test` from 1.10.2 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/releases\"\u003eorg.jetbrains.kotlinx:kotlinx-coroutines-test's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.11.0\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003ePromise\u003c/code\u003e-related functions from JS and Wasm/JS to the new \u003ccode\u003eweb\u003c/code\u003e target. On Wasm/JS, this is a breaking change. Before the change, \u003ccode\u003ePromise\u003c/code\u003e on Wasm/JS could work with arbitrary Kotlin types, but now, only \u003ccode\u003eJsAny\u003c/code\u003e subtypes are accepted (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4563\"\u003e#4563\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eChanged handling of coroutine exceptions that can't be propagated on JS and Wasm/JS. B\nefore, exceptions were logged, but now, they are reported to the JS runtime (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4451\"\u003e#4451\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4631\"\u003e#4631\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeprecated using \u003ccode\u003eCoroutineDispatcher\u003c/code\u003e as the coroutine context key; now, \u003ccode\u003eContinuationInterceptor\u003c/code\u003e has to be used instead (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4333\"\u003e#4333\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdvanced the deprecation levels on \u003ccode\u003ekotlinx-coroutines-test\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4604\"\u003e#4604\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded lint functions that mark passing a \u003ccode\u003eJob\u003c/code\u003e to coroutine builders as deprecated (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4435\"\u003e#4435\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003erunBlocking\u003c/code\u003e in code shared between JVM and Native (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4368\"\u003e#4368\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003esuspendCancellableCoroutine\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4574\"\u003e#4574\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eflowOn\u003c/code\u003e incorrectly handling \u003ccode\u003eThreadContextElement\u003c/code\u003e updates (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4403\"\u003e#4403\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed exceptions in user-supplied \u003ccode\u003eThread.UncaughtExceptionHandler\u003c/code\u003e instances causing the internal coroutines machinery to fail (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4516\"\u003e#4516\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCoroutineDispatcher.asScheduler\u003c/code\u003e in the RxJava integration not cancelling outstanding work when a \u003ccode\u003eWorker\u003c/code\u003e gets cancelled, which led to memory leaks in some scenarios (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4615\"\u003e#4615\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSharedFlow\u003c/code\u003e entering an invalid state when a subscriber and an emitter are cancelled simultaneously (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4583\"\u003e#4583\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed an R8 optimization leading to \u003ccode\u003eshareIn\u003c/code\u003e/\u003ccode\u003estateIn\u003c/code\u003e coroutines getting garbage-collected (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4646\"\u003e#4646\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/solevic\"\u003e\u003ccode\u003e@​solevic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSmall additions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eCompletableDeferred.asDeferred\u003c/code\u003e for obtaining a read-only \u003ccode\u003eDeferred\u003c/code\u003e view (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4408\"\u003e#4408\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSharedFlow.asFlow\u003c/code\u003e for obtaining a \u003ccode\u003eFlow\u003c/code\u003e view with hidden hot flow semantics (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4530\"\u003e#4530\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/g000sha256\"\u003e\u003ccode\u003e@​g000sha256\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow.collectLatest\u003c/code\u003e overload returning \u003ccode\u003eNothing\u003c/code\u003e to assist with finding unreachable code (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4454\"\u003e#4454\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eReceiveChannel.consumeTo\u003c/code\u003e for consuming a \u003ccode\u003eReceiveChannel\u003c/code\u003e into a \u003ccode\u003eMutableCollection\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4520\"\u003e#4520\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e overload returning a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;\u003c/code\u003e, similar to \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e returning \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4275\"\u003e#4275\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/xit0c\"\u003e\u003ccode\u003e@​xit0c\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded terminal \u003ccode\u003eFlow\u003c/code\u003e operators for collecting a \u003ccode\u003eFlow\u003c/code\u003e to a \u003ccode\u003eMap\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/1541\"\u003e#1541\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog relative to version 1.11.0\u003c/h3\u003e\n\u003cp\u003eNo changes, only the version is increased.\u003c/p\u003e\n\u003ch2\u003e1.11.0-rc02\u003c/h2\u003e\n\u003cp\u003eRestored binary compatibility with 1.10.2 and older versions on Wasm/JS for usages of \u003ccode\u003ePromise\u003c/code\u003e-related functions (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003e1.11.0-rc01\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/blob/master/CHANGES.md\"\u003eorg.jetbrains.kotlinx:kotlinx-coroutines-test's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.11.0\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003ePromise\u003c/code\u003e-related functions from JS and Wasm/JS to the new \u003ccode\u003eweb\u003c/code\u003e target. On Wasm/JS, this is a breaking change. Before the change, \u003ccode\u003ePromise\u003c/code\u003e on Wasm/JS could work with arbitrary Kotlin types, but now, only \u003ccode\u003eJsAny\u003c/code\u003e subtypes are accepted (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4563\"\u003e#4563\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eChanged handling of coroutine exceptions that can't be propagated on JS and Wasm/JS. Before, exceptions were logged, but now, they are reported to the JS runtime (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4451\"\u003e#4451\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4631\"\u003e#4631\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeprecated using \u003ccode\u003eCoroutineDispatcher\u003c/code\u003e as the coroutine context key; now, \u003ccode\u003eContinuationInterceptor\u003c/code\u003e has to be used instead (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4333\"\u003e#4333\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdvanced the deprecation levels on \u003ccode\u003ekotlinx-coroutines-test\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4604\"\u003e#4604\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded lint functions that mark passing a \u003ccode\u003eJob\u003c/code\u003e to coroutine builders as deprecated (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4435\"\u003e#4435\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003erunBlocking\u003c/code\u003e in code shared between JVM and Native (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4368\"\u003e#4368\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003esuspendCancellableCoroutine\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4574\"\u003e#4574\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eflowOn\u003c/code\u003e incorrectly handling \u003ccode\u003eThreadContextElement\u003c/code\u003e updates (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4403\"\u003e#4403\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed exceptions in user-supplied \u003ccode\u003eThread.UncaughtExceptionHandler\u003c/code\u003e instances causing the internal coroutines machinery to fail (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4516\"\u003e#4516\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCoroutineDispatcher.asScheduler\u003c/code\u003e in the RxJava integration not cancelling outstanding work when a \u003ccode\u003eWorker\u003c/code\u003e gets cancelled, which led to memory leaks in some scenarios (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4615\"\u003e#4615\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSharedFlow\u003c/code\u003e entering an invalid state when a subscriber and an emitter are cancelled simultaneously (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4583\"\u003e#4583\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed an R8 optimization leading to \u003ccode\u003eshareIn\u003c/code\u003e/\u003ccode\u003estateIn\u003c/code\u003e coroutines getting garbage-collected (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4646\"\u003e#4646\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/solevic\"\u003e\u003ccode\u003e@​solevic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSmall additions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eCompletableDeferred.asDeferred\u003c/code\u003e for obtaining a read-only \u003ccode\u003eDeferred\u003c/code\u003e view (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4408\"\u003e#4408\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSharedFlow.asFlow\u003c/code\u003e for obtaining a \u003ccode\u003eFlow\u003c/code\u003e view with hidden hot flow semantics (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4530\"\u003e#4530\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/g000sha256\"\u003e\u003ccode\u003e@​g000sha256\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow.collectLatest\u003c/code\u003e overload returning \u003ccode\u003eNothing\u003c/code\u003e to assist with finding unreachable code (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4454\"\u003e#4454\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eReceiveChannel.consumeTo\u003c/code\u003e for consuming a \u003ccode\u003eReceiveChannel\u003c/code\u003e into a \u003ccode\u003eMutableCollection\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4520\"\u003e#4520\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e overload returning a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;\u003c/code\u003e, similar to \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e returning \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4275\"\u003e#4275\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/xit0c\"\u003e\u003ccode\u003e@​xit0c\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded terminal \u003ccode\u003eFlow\u003c/code\u003e operators for collecting a \u003ccode\u003eFlow\u003c/code\u003e to a \u003ccode\u003eMap\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/1541\"\u003e#1541\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog relative to version 1.11.0\u003c/h3\u003e\n\u003cp\u003eNo changes, only the version is increased.\u003c/p\u003e\n\u003ch2\u003eVersion 1.11.0-rc02\u003c/h2\u003e\n\u003cp\u003eRestored binary compatibility with 1.10.2 and older versions on Wasm/JS for usages of \u003ccode\u003ePromise\u003c/code\u003e-related functions (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eVersion 1.11.0-rc01\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/8564f65764d3d05893cec026c6e94250e2b23874\"\u003e\u003ccode\u003e8564f65\u003c/code\u003e\u003c/a\u003e Version 1.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/a4c6af96c15fe30f5d4e8b810ea74f8babd5805c\"\u003e\u003ccode\u003ea4c6af9\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/ef917b460aa741691fbf991ee1b813049cae18c9\"\u003e\u003ccode\u003eef917b4\u003c/code\u003e\u003c/a\u003e KT-84955: mark apple x64 tagets as deprecated error (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/5ebc421e341bf2ddce734d369da87df1985e80bd\"\u003e\u003ccode\u003e5ebc421\u003c/code\u003e\u003c/a\u003e Update the release procedure description (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4670\"\u003e#4670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/95f46a073bc4a1230352108cea1835fd22219a80\"\u003e\u003ccode\u003e95f46a0\u003c/code\u003e\u003c/a\u003e Remove old maven repository settings (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4672\"\u003e#4672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/b4f4f0aa6acb692f3fbcadd70e4958e3e9d370fc\"\u003e\u003ccode\u003eb4f4f0a\u003c/code\u003e\u003c/a\u003e Fix package name of \u003ccode\u003eToMapCollectionSamplesTest\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4674\"\u003e#4674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/86738dca7dc9ac82249abc8206263fa0065ee631\"\u003e\u003ccode\u003e86738dc\u003c/code\u003e\u003c/a\u003e Added templates to the issue creation wizard (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4654\"\u003e#4654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/330fcc221fb583f0b119f34191f735a73b827378\"\u003e\u003ccode\u003e330fcc2\u003c/code\u003e\u003c/a\u003e Version 1.11.0-rc02\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/e31cef6e9f2d26794be7d75ecbf3033b6432d582\"\u003e\u003ccode\u003ee31cef6\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/dc6e9f61eaf3a67f4bf474a7987aedc3f16cef37\"\u003e\u003ccode\u003edc6e9f6\u003c/code\u003e\u003c/a\u003e Restore Promise-related functions on Wasm/JS as HIDDEN (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/compare/1.10.2...1.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.android` from 2.2.20 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.android's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbr...\n\n_Description has been truncated_","html_url":"https://github.com/DontPanic345/TortoiseSpelling/pull/3","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/DontPanic345%2FTortoiseSpelling/issues/3","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3/packages"},{"uuid":"5444998081","node_id":"PR_kwDORWjILs8AAAABDZL1yw","number":298,"state":"open","title":"build(deps): bump the android-deps group across 1 directory with 26 updates","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-14T04:00:14.000Z","updated_at":"2026-09-14T04:00:35.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"android-deps","update_count":26,"packages":[{"name":"com.android.application","old_version":"9.0.1","new_version":"9.4.0"},{"name":"com.android.test","old_version":"9.0.1","new_version":"9.4.0"},{"name":"org.jetbrains.kotlin.plugin.compose","old_version":"2.3.20","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.3.20","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"androidx.compose:compose-bom","old_version":"2026.03.01","new_version":"2026.09.00"},{"name":"androidx.core:core-ktx","old_version":"1.18.0","new_version":"1.19.0"},{"name":"androidx.navigation:navigation-compose","old_version":"2.9.7","new_version":"2.10.1"},{"name":"com.google.android.material:material","old_version":"1.13.0","new_version":"1.14.0","repository_url":"https://github.com/material-components/material-components-android"},{"name":"org.jetbrains.kotlinx:kotlinx-coroutines-android","old_version":"1.10.2","new_version":"1.11.0","repository_url":"https://github.com/Kotlin/kotlinx.coroutines"},{"name":"org.jetbrains.kotlinx:kotlinx-serialization-json","old_version":"1.10.0","new_version":"1.11.0","repository_url":"https://github.com/Kotlin/kotlinx.serialization"},{"name":"com.squareup.okhttp3:okhttp","old_version":"5.3.2","new_version":"5.5.0","repository_url":"https://github.com/lysine-dev/okhttp"},{"name":"org.bouncycastle:bcprov-jdk18on","old_version":"1.83","new_version":"1.86","repository_url":"https://github.com/bcgit/bc-java"},{"name":"org.commonmark:commonmark","old_version":"0.28.0","new_version":"0.30.0","repository_url":"https://github.com/commonmark/commonmark-java"},{"name":"dnsjava:dnsjava","old_version":"3.6.4","new_version":"3.6.5","repository_url":"https://github.com/dnsjava/dnsjava"},{"name":"io.kotest:kotest-runner-junit5-jvm","old_version":"6.1.11","new_version":"6.2.5","repository_url":"https://github.com/kotest/kotest"},{"name":"org.robolectric:robolectric","old_version":"4.16.1","new_version":"4.17","repository_url":"https://github.com/robolectric/robolectric"},{"name":"org.junit.vintage:junit-vintage-engine","old_version":"6.0.3","new_version":"6.1.3","repository_url":"https://github.com/junit-team/junit-framework"},{"name":"androidx.benchmark:benchmark-macro-junit4","old_version":"1.4.1","new_version":"1.5.0"},{"name":"gradle-wrapper","old_version":"9.4.1","new_version":"9.7.1","repository_url":"https://github.com/gradle/gradle"}],"path":null,"ecosystem":"maven"},"body":"Bumps the android-deps group with 19 updates in the /apps/android directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| com.android.application | `9.0.1` | `9.4.0` |\n| com.android.test | `9.0.1` | `9.4.0` |\n| [org.jetbrains.kotlin.plugin.compose](https://github.com/JetBrains/kotlin) | `2.3.20` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.serialization](https://github.com/JetBrains/kotlin) | `2.3.20` | `2.4.20` |\n| androidx.compose:compose-bom | `2026.03.01` | `2026.09.00` |\n| androidx.core:core-ktx | `1.18.0` | `1.19.0` |\n| androidx.navigation:navigation-compose | `2.9.7` | `2.10.1` |\n| [com.google.android.material:material](https://github.com/material-components/material-components-android) | `1.13.0` | `1.14.0` |\n| [org.jetbrains.kotlinx:kotlinx-coroutines-android](https://github.com/Kotlin/kotlinx.coroutines) | `1.10.2` | `1.11.0` |\n| [org.jetbrains.kotlinx:kotlinx-serialization-json](https://github.com/Kotlin/kotlinx.serialization) | `1.10.0` | `1.11.0` |\n| [com.squareup.okhttp3:okhttp](https://github.com/lysine-dev/okhttp) | `5.3.2` | `5.5.0` |\n| [org.bouncycastle:bcprov-jdk18on](https://github.com/bcgit/bc-java) | `1.83` | `1.86` |\n| [org.commonmark:commonmark](https://github.com/commonmark/commonmark-java) | `0.28.0` | `0.30.0` |\n| [dnsjava:dnsjava](https://github.com/dnsjava/dnsjava) | `3.6.4` | `3.6.5` |\n| [io.kotest:kotest-runner-junit5-jvm](https://github.com/kotest/kotest) | `6.1.11` | `6.2.5` |\n| [org.robolectric:robolectric](https://github.com/robolectric/robolectric) | `4.16.1` | `4.17` |\n| [org.junit.vintage:junit-vintage-engine](https://github.com/junit-team/junit-framework) | `6.0.3` | `6.1.3` |\n| androidx.benchmark:benchmark-macro-junit4 | `1.4.1` | `1.5.0` |\n| [gradle-wrapper](https://github.com/gradle/gradle) | `9.4.1` | `9.7.1` |\n\n\nUpdates `com.android.application` from 9.0.1 to 9.4.0\n\nUpdates `com.android.test` from 9.0.1 to 9.4.0\n\nUpdates `org.jetbrains.kotlin.plugin.compose` from 2.3.20 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.plugin.compose's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.plugin.compose's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.3.20...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.plugin.serialization` from 2.3.20 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.plugin.serialization's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.plugin.serialization's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.3.20...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `androidx.compose:compose-bom` from 2026.03.01 to 2026.09.00\n\nUpdates `androidx.core:core-ktx` from 1.18.0 to 1.19.0\n\nUpdates `androidx.navigation:navigation-compose` from 2.9.7 to 2.10.1\n\nUpdates `com.google.android.material:material` from 1.13.0 to 1.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/material-components/material-components-android/releases\"\u003ecom.google.android.material:material's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.14.0\u003c/h2\u003e\n\u003ch1\u003eNew in 1.14.0!\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eExpressive Themes (\u003ca href=\"https://github.com/material-components/material-components-android/blob/master/docs/getting-started.md#material3expressive-themes\"\u003edoc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpressive Lists (\u003ca href=\"https://github.com/material-components/material-components-android/blob/master/docs/components/List.md\"\u003edoc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpressive Button Styles (\u003ca href=\"https://github.com/material-components/material-components-android/blob/master/docs/components/CommonButton.md#m3-expressive\"\u003edoc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpressive Icon Button Styles (\u003ca href=\"https://github.com/material-components/material-components-android/blob/master/docs/components/IconButton.md#m3-expressive\"\u003edoc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpressive Button Group Styles (\u003ca href=\"https://github.com/material-components/material-components-android/blob/master/docs/components/ButtonGroup.md#m3-expressive\"\u003edoc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpressive FAB Styles (\u003ca href=\"https://github.com/material-components/material-components-android/blob/master/docs/components/FloatingActionButton.md#m3-expressive\"\u003edoc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpressive Top App Bar Styles (\u003ca href=\"https://github.com/material-components/material-components-android/blob/master/docs/components/TopAppBar.md#m3-expressive\"\u003edoc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpressive Navigation Bar (BottomNavigationView) Styles (\u003ca href=\"https://github.com/material-components/material-components-android/blob/master/docs/components/BottomNavigation.md#m3-expressive\"\u003edoc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpressive Navigation Rail Styles (\u003ca href=\"https://github.com/material-components/material-components-android/blob/master/docs/components/NavigationRail.md#m3-expressive\"\u003edoc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpressive Search Styles (\u003ca href=\"https://github.com/material-components/material-components-android/blob/master/docs/components/Search.md#m3-expressive\"\u003edoc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpressive Progress Indicator Styles (\u003ca href=\"https://github.com/material-components/material-components-android/blob/master/docs/components/ProgressIndicator.md#m3-expressive\"\u003edoc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpressive Slider Styles (\u003ca href=\"https://github.com/material-components/material-components-android/blob/master/docs/components/Slider.md#m3-expressive\"\u003edoc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEmphasized Typescale (\u003ca href=\"https://github.com/material-components/material-components-android/blob/master/docs/theming/Typography.md#emphasized-scale\"\u003edoc\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImportant\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRequired \u003ccode\u003eminSdkVersion\u003c/code\u003e is now 23 or higher, for Material and \u003ca href=\"https://developer.android.com/jetpack/androidx/versions#version-table\"\u003eAndroidX\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eLibrary is now built with Android Gradle Plugin (AGP) 8.11.1 and Gradle 8.13.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependency Updates\u003c/h2\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eDependency\u003c/th\u003e\n\u003cth\u003ePrevious version\u003c/th\u003e\n\u003cth\u003eNew version\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003eandroidx.constraintlayout:constraintlayout\u003c/td\u003e\n\u003ctd\u003e2.1.0\u003c/td\u003e\n\u003ctd\u003e2.2.1\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eandroidx.core:core\u003c/td\u003e\n\u003ctd\u003e1.6.0\u003c/td\u003e\n\u003ctd\u003e1.16.0\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eandroidx.customview:customview\u003c/td\u003e\n\u003ctd\u003eN/A\u003c/td\u003e\n\u003ctd\u003e1.2.0\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003ecom.android.tools.build:gradle\u003c/td\u003e\n\u003ctd\u003e8.7.3\u003c/td\u003e\n\u003ctd\u003e8.11.1\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003eLibrary Updates\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eAppBar\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003eFixed the bug that setBackground will reset the internal MaterialShapeDrawable for lift-on-scroll feature. (1adc50110ed6491661f89aa535355b1480fac73a)\u003c/li\u003e\n\u003cli\u003eAdd support for navigation button with circle background (015e0534e1a6205224097f258102f913832f99ed)\u003c/li\u003e\n\u003cli\u003eImprove keyboard navigation in TopAppBar catalog demos (98a73a61d272d3e38ee87dd4b322f7787c374a9c)\u003c/li\u003e\n\u003cli\u003eRemoved special key shortcut and keyboard navigation cluster for top app bar for correct keyboard navigation a11y. (ee52adbf051f744f2345ec5b7f4ab4df3b101d4d)\u003c/li\u003e\n\u003cli\u003eUpdated ripple color on actions in M3 toolbar. (3b971c9fe9d6ae9a175d96a448a2e740fa97996f)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBottomAppBar\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003eRemove special key shortcut and keyboard navigation cluster for bottom app bar for correct keyboard navigation a11y. (5c73d7a9284fb8e8409452bb95751bf70912acfd)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBottomNavigationView\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003eFix navigation item layout in non-compact windows (78189012dada1fae4516eaccab7b8f75c481aa73)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBottomSheet\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecated enableEdgeToEdge for bottom sheet dialogs on API 35+. (603f1ef9d5223fc06fa432c4175473eda2138330)\u003c/li\u003e\n\u003cli\u003ePrevent ACTION_DOWN events on the BottomSheetHandleDragView from setting touchingScrollChild to true. (af7f254bf660704368d46e630d34a81c479fa1c7)\u003c/li\u003e\n\u003cli\u003eFixed keyboard animation on Android 14 (a0b4dfa8769f98851efe97569c900f75eb0d5ef2)\u003c/li\u003e\n\u003cli\u003eFixed crash when protections are set before setContentView is called (d2119098489f6f6b55d77f2c7966b8ddf16c90ed)\u003c/li\u003e\n\u003cli\u003eAdded half-expanded state description for accessibility (95e7b452088d88005982a3f29ec212ef7ee8696d)\u003c/li\u003e\n\u003cli\u003eAdded support for androidx.core ProtectionLayout API and update dependency to 1.16 (e7f9f639d2f4a3b9f619ce704df82cbb14e49222)\u003c/li\u003e\n\u003cli\u003eMake handle respond to keyboard input (1ee07687af2c4c84f515e45c1b809d65aeecbbf4)\u003c/li\u003e\n\u003cli\u003eDelete duplicate \u0026quot;Handling insets and fullscreen\u0026quot; section (5e7e8238f7be448af6b4db4b2ad6128737c0bc50)\u003c/li\u003e\n\u003cli\u003eAdded support for Nested Scrolling with multiple nested scroll children. (4e4e8f3388beb7e82a87cb67142aa34444a79740)\u003c/li\u003e\n\u003cli\u003eMake behavior_draggableOnNestedScroll public (a67afdff0d207239d0f427a37e44074936db3166)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/material-components/material-components-android/commit/66c334b7946dabf33adfe1a2b7cad6bcaa4ea3ad\"\u003e\u003ccode\u003e66c334b\u003c/code\u003e\u003c/a\u003e [Release] Update library version to 1.14.0 stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/material-components/material-components-android/commit/12e57b5143609a96de8516426336bcf3b3e321f7\"\u003e\u003ccode\u003e12e57b5\u003c/code\u003e\u003c/a\u003e [Focus Rings] Add setters and getters for stroke widths and inner inset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/material-components/material-components-android/commit/f4652d6af613395835b17ce329ceb03f43fc4a84\"\u003e\u003ccode\u003ef4652d6\u003c/code\u003e\u003c/a\u003e [NavigationView] Improve focus saving when opening NavigationView\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/material-components/material-components-android/commit/14b9ac97b0863fa7fea6f59954441cea9f4e7e14\"\u003e\u003ccode\u003e14b9ac9\u003c/code\u003e\u003c/a\u003e [Focus Rings] Add setters for outer and inner stroke colors and for refreshin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/material-components/material-components-android/commit/d6de1da0f5532090d8b7de697e13c180f56e11e1\"\u003e\u003ccode\u003ed6de1da\u003c/code\u003e\u003c/a\u003e [A11y][BottomSheet] Auto-expand when a focused view is off-screen in non-touc...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/material-components/material-components-android/commit/41cfb65e8393cd7ff0f9dc082b400c852405e9cc\"\u003e\u003ccode\u003e41cfb65\u003c/code\u003e\u003c/a\u003e [A11y][NavigationView] Request and restore focus when opened and closed in Dr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/material-components/material-components-android/commit/8f63e9485bf6da5a9a0aaefa4bbf26c8ec1364a5\"\u003e\u003ccode\u003e8f63e94\u003c/code\u003e\u003c/a\u003e [Catalog] Fix lift on scroll glitchiness in All Components demo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/material-components/material-components-android/commit/80aa0cc0233af0e81a846271de0d5218beeceeaf\"\u003e\u003ccode\u003e80aa0cc\u003c/code\u003e\u003c/a\u003e [Release] Update library version to 1.14.0-rc01\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/material-components/material-components-android/commit/fd44c9d58699e18de06ca5de8687fe79f390568b\"\u003e\u003ccode\u003efd44c9d\u003c/code\u003e\u003c/a\u003e [Button] [SplitButton] Fix inset and optical centering issue for SplitButton ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/material-components/material-components-android/commit/e6ae416e7fc791d733eedde96ffea66d313ef231\"\u003e\u003ccode\u003ee6ae416\u003c/code\u003e\u003c/a\u003e [SearchView] Make sure IME is hidden when EditText loses focus\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/material-components/material-components-android/compare/1.13.0...1.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlinx:kotlinx-coroutines-android` from 1.10.2 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/releases\"\u003eorg.jetbrains.kotlinx:kotlinx-coroutines-android's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.11.0\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003ePromise\u003c/code\u003e-related functions from JS and Wasm/JS to the new \u003ccode\u003eweb\u003c/code\u003e target. On Wasm/JS, this is a breaking change. Before the change, \u003ccode\u003ePromise\u003c/code\u003e on Wasm/JS could work with arbitrary Kotlin types, but now, only \u003ccode\u003eJsAny\u003c/code\u003e subtypes are accepted (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4563\"\u003e#4563\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eChanged handling of coroutine exceptions that can't be propagated on JS and Wasm/JS. B\nefore, exceptions were logged, but now, they are reported to the JS runtime (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4451\"\u003e#4451\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4631\"\u003e#4631\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeprecated using \u003ccode\u003eCoroutineDispatcher\u003c/code\u003e as the coroutine context key; now, \u003ccode\u003eContinuationInterceptor\u003c/code\u003e has to be used instead (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4333\"\u003e#4333\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdvanced the deprecation levels on \u003ccode\u003ekotlinx-coroutines-test\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4604\"\u003e#4604\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded lint functions that mark passing a \u003ccode\u003eJob\u003c/code\u003e to coroutine builders as deprecated (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4435\"\u003e#4435\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003erunBlocking\u003c/code\u003e in code shared between JVM and Native (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4368\"\u003e#4368\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003esuspendCancellableCoroutine\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4574\"\u003e#4574\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eflowOn\u003c/code\u003e incorrectly handling \u003ccode\u003eThreadContextElement\u003c/code\u003e updates (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4403\"\u003e#4403\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed exceptions in user-supplied \u003ccode\u003eThread.UncaughtExceptionHandler\u003c/code\u003e instances causing the internal coroutines machinery to fail (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4516\"\u003e#4516\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCoroutineDispatcher.asScheduler\u003c/code\u003e in the RxJava integration not cancelling outstanding work when a \u003ccode\u003eWorker\u003c/code\u003e gets cancelled, which led to memory leaks in some scenarios (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4615\"\u003e#4615\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSharedFlow\u003c/code\u003e entering an invalid state when a subscriber and an emitter are cancelled simultaneously (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4583\"\u003e#4583\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed an R8 optimization leading to \u003ccode\u003eshareIn\u003c/code\u003e/\u003ccode\u003estateIn\u003c/code\u003e coroutines getting garbage-collected (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4646\"\u003e#4646\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/solevic\"\u003e\u003ccode\u003e@​solevic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSmall additions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eCompletableDeferred.asDeferred\u003c/code\u003e for obtaining a read-only \u003ccode\u003eDeferred\u003c/code\u003e view (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4408\"\u003e#4408\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSharedFlow.asFlow\u003c/code\u003e for obtaining a \u003ccode\u003eFlow\u003c/code\u003e view with hidden hot flow semantics (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4530\"\u003e#4530\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/g000sha256\"\u003e\u003ccode\u003e@​g000sha256\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow.collectLatest\u003c/code\u003e overload returning \u003ccode\u003eNothing\u003c/code\u003e to assist with finding unreachable code (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4454\"\u003e#4454\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eReceiveChannel.consumeTo\u003c/code\u003e for consuming a \u003ccode\u003eReceiveChannel\u003c/code\u003e into a \u003ccode\u003eMutableCollection\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4520\"\u003e#4520\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e overload returning a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;\u003c/code\u003e, similar to \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e returning \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4275\"\u003e#4275\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/xit0c\"\u003e\u003ccode\u003e@​xit0c\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded terminal \u003ccode\u003eFlow\u003c/code\u003e operators for collecting a \u003ccode\u003eFlow\u003c/code\u003e to a \u003ccode\u003eMap\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/1541\"\u003e#1541\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog relative to version 1.11.0\u003c/h3\u003e\n\u003cp\u003eNo changes, only the version is increased.\u003c/p\u003e\n\u003ch2\u003e1.11.0-rc02\u003c/h2\u003e\n\u003cp\u003eRestored binary compatibility with 1.10.2 and older versions on Wasm/JS for usages of \u003ccode\u003ePromise\u003c/code\u003e-related functions (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003e1.11.0-rc01\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/blob/master/CHANGES.md\"\u003eorg.jetbrains.kotlinx:kotlinx-coroutines-android's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.11.0\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003ePromise\u003c/code\u003e-related functions from JS and Wasm/JS to the new \u003ccode\u003eweb\u003c/code\u003e target. On Wasm/JS, this is a breaking change. Before the change, \u003ccode\u003ePromise\u003c/code\u003e on Wasm/JS could work with arbitrary Kotlin types, but now, only \u003ccode\u003eJsAny\u003c/code\u003e subtypes are accepted (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4563\"\u003e#4563\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eChanged handling of coroutine exceptions that can't be propagated on JS and Wasm/JS. Before, exceptions were logged, but now, they are reported to the JS runtime (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4451\"\u003e#4451\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4631\"\u003e#4631\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeprecated using \u003ccode\u003eCoroutineDispatcher\u003c/code\u003e as the coroutine context key; now, \u003ccode\u003eContinuationInterceptor\u003c/code\u003e has to be used instead (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4333\"\u003e#4333\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdvanced the deprecation levels on \u003ccode\u003ekotlinx-coroutines-test\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4604\"\u003e#4604\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded lint functions that mark passing a \u003ccode\u003eJob\u003c/code\u003e to coroutine builders as deprecated (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4435\"\u003e#4435\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003erunBlocking\u003c/code\u003e in code shared between JVM and Native (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4368\"\u003e#4368\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003esuspendCancellableCoroutine\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4574\"\u003e#4574\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eflowOn\u003c/code\u003e incorrectly handling \u003ccode\u003eThreadContextElement\u003c/code\u003e updates (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4403\"\u003e#4403\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed exceptions in user-supplied \u003ccode\u003eThread.UncaughtExceptionHandler\u003c/code\u003e instances causing the internal coroutines machinery to fail (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4516\"\u003e#4516\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCoroutineDispatcher.asScheduler\u003c/code\u003e in the RxJava integration not cancelling outstanding work when a \u003ccode\u003eWorker\u003c/code\u003e gets cancelled, which led to memory leaks in some scenarios (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4615\"\u003e#4615\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSharedFlow\u003c/code\u003e entering an invalid state when a subscriber and an emitter are cancelled simultaneously (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4583\"\u003e#4583\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed an R8 optimization leading to \u003ccode\u003eshareIn\u003c/code\u003e/\u003ccode\u003estateIn\u003c/code\u003e coroutines getting garbage-collected (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4646\"\u003e#4646\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/solevic\"\u003e\u003ccode\u003e@​solevic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSmall additions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eCompletableDeferred.asDeferred\u003c/code\u003e for obtaining a read-only \u003ccode\u003eDeferred\u003c/code\u003e view (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4408\"\u003e#4408\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSharedFlow.asFlow\u003c/code\u003e for obtaining a \u003ccode\u003eFlow\u003c/code\u003e view with hidden hot flow semantics (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4530\"\u003e#4530\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/g000sha256\"\u003e\u003ccode\u003e@​g000sha256\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow.collectLatest\u003c/code\u003e overload returning \u003ccode\u003eNothing\u003c/code\u003e to assist with finding unreachable code (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4454\"\u003e#4454\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eReceiveChannel.consumeTo\u003c/code\u003e for consuming a \u003ccode\u003eReceiveChannel\u003c/code\u003e into a \u003ccode\u003eMutableCollection\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4520\"\u003e#4520\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e overload returning a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;\u003c/code\u003e, similar to \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e returning \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4275\"\u003e#4275\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/xit0c\"\u003e\u003ccode\u003e@​xit0c\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded terminal \u003ccode\u003eFlow\u003c/code\u003e operators for collecting a \u003ccode\u003eFlow\u003c/code\u003e to a \u003ccode\u003eMap\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/1541\"\u003e#1541\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog relative to version 1.11.0\u003c/h3\u003e\n\u003cp\u003eNo changes, only the version is increased.\u003c/p\u003e\n\u003ch2\u003eVersion 1.11.0-rc02\u003c/h2\u003e\n\u003cp\u003eRestored binary compatibility with 1.10.2 and older versions on Wasm/JS for usages of \u003ccode\u003ePromise\u003c/code\u003e-related functions (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eVersion 1.11.0-rc01\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/8564f65764d3d05893cec026c6e94250e2b23874\"\u003e\u003ccode\u003e8564f65\u003c/code\u003e\u003c/a\u003e Version 1.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/a4c6af96c15fe30f5d4e8b810ea74f8babd5805c\"\u003e\u003ccode\u003ea4c6af9\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/ef917b460aa741691fbf991ee1b813049cae18c9\"\u003e\u003ccode\u003eef917b4\u003c/code\u003e\u003c/a\u003e KT-84955: mark apple x64 tagets as deprecated error (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/5ebc421e341bf2ddce734d369da87df1985e80bd\"\u003e\u003ccode\u003e5ebc421\u003c/code\u003e\u003c/a\u003e Update the release procedure description (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4670\"\u003e#4670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/95f46a073bc4a1230352108cea1835fd22219a80\"\u003e\u003ccode\u003e95f46a0\u003c/code\u003e\u003c/a\u003e Remove old maven repository settings (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4672\"\u003e#4672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/b4f4f0aa6acb692f3fbcadd70e4958e3e9d370fc\"\u003e\u003ccode\u003eb4f4f0a\u003c/code\u003e\u003c/a\u003e Fix package name of \u003ccode\u003eToMapCollectionSamplesTest\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4674\"\u003e#4674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/86738dca7dc9ac82249abc8206263fa0065ee631\"\u003e\u003ccode\u003e86738dc\u003c/code\u003e\u003c/a\u003e Added templates to the issue creation wizard (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4654\"\u003e#4654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/330fcc221fb583f0b119f34191f735a73b827378\"\u003e\u003ccode\u003e330fcc2\u003c/code\u003e\u003c/a\u003e Version 1.11.0-rc02\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/e31cef6e9f2d26794be7d75ecbf3033b6432d582\"\u003e\u003ccode\u003ee31cef6\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/dc6e9f61eaf3a67f4bf474a7987aedc3f16cef37\"\u003e\u003ccode\u003edc6e9f6\u003c/code\u003e\u003c/a\u003e Restore Promise-related functions on Wasm/JS as HIDDEN (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/compare/1.10.2...1.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlinx:kotlinx-serialization-json` from 1.10.0 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/releases\"\u003eorg.jetbrains.kotlinx:kotlinx-serialization-json's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.11.0\u003c/h2\u003e\n\u003cp\u003eThis release is based on Kotlin 2.3.20 and provides a new Json exceptions API and some bugfixes and improvements.\u003c/p\u003e\n\u003ch2\u003eExpose Json exceptions structure\u003c/h2\u003e\n\u003cp\u003eTo make working with exceptions easier and providing proper error codes in e.g., REST APIs,\nclasses \u003ccode\u003eJsonException\u003c/code\u003e, \u003ccode\u003eJsonDecodingException\u003c/code\u003e, and \u003ccode\u003eJsonEncodingException\u003c/code\u003e are now public.\nThey have relevant public properties, such as \u003ccode\u003eshortMessage\u003c/code\u003e, \u003ccode\u003epath\u003c/code\u003e, \u003ccode\u003eoffset\u003c/code\u003e, and others.\nThis API is currently experimental, and we're going to improve it further in the subsequent releases.\nSee the linked issues for the details: \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/1930\"\u003e#1930\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/1877\"\u003e#1877\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eAbility to hide user input from exception messages for security/privacy reasons.\u003c/h2\u003e\n\u003cp\u003eHistorically, exception messages in kotlinx.serialization often included the input Json itself for debuggability reason.\nSuch behavior may pose additional challenges for logging, analytics, and other systems, since\na system is not always allowed to store user data due to privacy/security reasons, which imposes additional sanitation logic.\nTo address this issue, a new property \u003ccode\u003eexceptionsWithDebugInfo\u003c/code\u003e is added to \u003ccode\u003eJsonConfiguration\u003c/code\u003e.\nDisable it to hide user input from exception messages.\nIMPORTANT: This behavior will be enabled by default when this property becomes stable.\nSee \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/2590\"\u003e#2590\u003c/a\u003e for more details.\u003c/p\u003e\n\u003ch2\u003eBugfixes and improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCBOR: Relax value range check when decoding numbers (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3167\"\u003e#3167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse a specialized writeDecimalLong method for IO stream integrations in Json (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3152\"\u003e#3152\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/blob/master/CHANGELOG.md\"\u003eorg.jetbrains.kotlinx:kotlinx-serialization-json's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.11.0 / 2026-04-10\u003c/h1\u003e\n\u003cp\u003eThis release is based on Kotlin 2.3.20 and provides new Json exceptions API and some bugfixes and improvements.\u003c/p\u003e\n\u003ch2\u003eExpose Json exceptions structure\u003c/h2\u003e\n\u003cp\u003eTo make working with exceptions easier and providing proper error codes in e.g., REST APIs,\nclasses \u003ccode\u003eJsonException\u003c/code\u003e, \u003ccode\u003eJsonDecodingException\u003c/code\u003e, and \u003ccode\u003eJsonEncodingException\u003c/code\u003e are now public.\nThey have relevant public properties, such as \u003ccode\u003eshortMessage\u003c/code\u003e, \u003ccode\u003epath\u003c/code\u003e, \u003ccode\u003eoffset\u003c/code\u003e, and others.\nThis API is currently experimental, and we're going to improve it further in the subsequent releases.\nSee the linked issues for the details: \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/1930\"\u003e#1930\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/1877\"\u003e#1877\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eAbility to hide user input from exception messages for security/privacy reasons.\u003c/h2\u003e\n\u003cp\u003eHistorically, exception messages in kotlinx.serialization often included the input Json itself for debuggability reason.\nSuch behavior may pose additional challenges for logging, analytics, and other systems, since\na system is not always allowed to store user data due to privacy/security reasons, which imposes additional sanitation logic.\nTo address this issue, a new property \u003ccode\u003eexceptionsWithDebugInfo\u003c/code\u003e is added to \u003ccode\u003eJsonConfiguration\u003c/code\u003e.\nDisable it to hide user input from exception messages.\nIMPORTANT: This behavior will be enabled by default when this property becomes stable.\nSee \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/2590\"\u003e#2590\u003c/a\u003e for more details.\u003c/p\u003e\n\u003ch2\u003eBugfixes and improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCBOR: Relax value range check when decoding numbers (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3167\"\u003e#3167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse a specialized writeDecimalLong method for IO stream integrations in Json (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3152\"\u003e#3152\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/6956af2e6073347c7832c3c5b374fa3b5a345956\"\u003e\u003ccode\u003e6956af2\u003c/code\u003e\u003c/a\u003e Prepare 1.11 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/390d84c68a19cbf7fa453dec22a333648bde49b4\"\u003e\u003ccode\u003e390d84c\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into dev\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/431fe2dc0a144300b33038820d24fc30302c8abc\"\u003e\u003ccode\u003e431fe2d\u003c/code\u003e\u003c/a\u003e Use local repo for publishing (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3171\"\u003e#3171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/05c12b60a6717b99053fb82e1f94d2f859727374\"\u003e\u003ccode\u003e05c12b6\u003c/code\u003e\u003c/a\u003e Add usage attribute to \u0026quot;testRepositories\u0026quot; configuration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/a4e1f082ef2e72caa139b474c05657de6015da20\"\u003e\u003ccode\u003ea4e1f08\u003c/code\u003e\u003c/a\u003e Bump Kover version to 0.9.8 release (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3174\"\u003e#3174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/304e858ccc7066854637d86ab80056f5f2bcc094\"\u003e\u003ccode\u003e304e858\u003c/code\u003e\u003c/a\u003e Expose Json exceptions structure (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3145\"\u003e#3145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/4a0338ef5093d765138151bc30282e909ca459e4\"\u003e\u003ccode\u003e4a0338e\u003c/code\u003e\u003c/a\u003e Included G Play SDK verification file for core-jvm (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3169\"\u003e#3169\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/421f64c74f0ea6d4a3cdc8dd483505366e3f6c8f\"\u003e\u003ccode\u003e421f64c\u003c/code\u003e\u003c/a\u003e CBOR: Relax value range check when decoding numbers (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3167\"\u003e#3167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/85a4f126ec491c77e2b3686cc22c1bae27a20783\"\u003e\u003ccode\u003e85a4f12\u003c/code\u003e\u003c/a\u003e KT-84955: mark apple x64 tagets as deprecated error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/bd38b0e49bce38d1a55576e89856bc63990167ed\"\u003e\u003ccode\u003ebd38b0e\u003c/code\u003e\u003c/a\u003e Remove dead code\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/compare/v1.10.0...v1.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.squareup.okhttp3:okhttp` from 5.3.2 to 5.5.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lysine-dev/okhttp/blob/main/CHANGELOG.md\"\u003ecom.squareup.okhttp3:okhttp's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 5.5.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2026-08-16\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eThis release introduces \u003cstrong\u003eopt-in\u003c/strong\u003e support for [Encrypted Client Hello (ECH)]. This new feature\nimproves user privacy by encrypting domain names in transit. With regular TLS, your coffee shop’s\nWi-Fi router can see that you’re visiting \u003cem\u003ewikipedia.com\u003c/em\u003e, but it cannot see which page you’re\nlooking at. With ECH, the router observes only the IP address. This additional privacy is most\neffective on sites hosted by big CDNs because the IP address doesn’t imply a particular website.\u003c/p\u003e\n\u003cp\u003eThis requires ECH support in the platform’s TLS stack. Today this is only Android 17 (API 37,\nreleased June 2026). When other TLS stacks add ECH support, we'll integrate them.\u003c/p\u003e\n\u003cp\u003eECH took a lot of work to implement because the encryption keys are published over DNS in the\n[HTTPS resource record], and we needed to write new code to fetch these records. This release\nincludes a major update to OkHttp’s DNS API: it now supports multiple resource record types (not\njust IP addresses!), asynchronous streaming results, and in-memory caching.\u003c/p\u003e\n\u003cp\u003eTo opt in, you can use \u003ccode\u003eDnsOverHttps\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"kotlin\"\u003e\u003ccode\u003e// DnsOverHttps itself uses OkHttpClient. Build both clients upon the\n// same bootstrap client so they share a connection pool and dispatcher.\nval bootstrapClient = OkHttpClient()\n\u003cp\u003e// This sample uses Cloudflare's 1.1.1.1 DnsOverHttps service.\nval client = bootstrapClient.newBuilder()\n.dns(DnsOverHttps.Builder()\n.client(bootstrapClient)\n.url(\u0026quot;\u003ca href=\"https://1.1.1.1/dns-query\u0026amp;quot;.toHttpUrl()\"\u003ehttps://1.1.1.1/dns-query\u0026amp;quot;.toHttpUrl()\u003c/a\u003e)\n.build())\n.build()\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eYou could also opt in with our new \u003ccode\u003eAndroidDns\u003c/code\u003e API. Unfortunately, the privacy benefits of ECH are\nthwarted because its DNS queries are not encrypted by default.\u003c/p\u003e\n\u003cpre lang=\"kotlin\"\u003e\u003ccode\u003e// AndroidDns fetches the HTTPS DNS resource records necessary for ECH.\nval client = OkHttpClient.Builder()\n  .dns(AndroidDns())\n  .build()\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003eNew: OkHttp artifacts are now signed with our [new signing key]. This project and three sibling\nprojects ([Retrofit], [Okio], and [SQLDelight]) recently joined [the Commonhaus Foundation].\u003c/li\u003e\n\u003cli\u003eFix: MockWebServer’s \u003ccode\u003e@StartStop\u003c/code\u003e annotation now supports \u003ccode\u003e@Nested\u003c/code\u003e JUnit 5 tests.\u003c/li\u003e\n\u003cli\u003eFix: Our default TLS hostname verifier now reject hosts that fail IP canonicalization.\u003c/li\u003e\n\u003cli\u003eFix: Closing a multipart part's sink no longer closes the entire request body.\u003c/li\u003e\n\u003cli\u003eFix: Flush HTTP/1 request bodies before detaching the timeout. We had a bug where timeouts\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysine-dev/okhttp/commit/a94bdf152084d11acecd44dcd09ffef203f4f0aa\"\u003e\u003ccode\u003ea94bdf1\u003c/code\u003e\u003c/a\u003e Prepare for release 5.5.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysine-dev/okhttp/commit/ecc3b05adfe6b2607b8ec251562c2cccf7c1923a\"\u003e\u003ccode\u003eecc3b05\u003c/code\u003e\u003c/a\u003e Use a fixed size for DoH request body (\u003ca href=\"https://redirect.github.com/lysine-dev/okhttp/issues/9687\"\u003e#9687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysine-dev/okhttp/commit/9926082660dfa6f1cc848c6f465cf5ccb998e415\"\u003e\u003ccode\u003e9926082\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Use a fixed size for DoH request body\u0026quot; (\u003ca href=\"https://redirect.github.com/lysine-dev/okhttp/issues/9686\"\u003e#9686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysine-dev/okhttp/commit/0070c2e7b4c162ee03abf1c88fd94083e94697f4\"\u003e\u003ccode\u003e0070c2e\u003c/code\u003e\u003c/a\u003e Use a fixed size for DoH request body\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysine-dev/okhttp/commit/15764539c69842dad607462f102a2507223dbfe7\"\u003e\u003ccode\u003e1576453\u003c/code\u003e\u003c/a\u003e Order ServiceMetadata records per the spec (\u003ca href=\"https://redirect.github.com/lysine-dev/okhttp/issues/9683\"\u003e#9683\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysine-dev/okhttp/commit/fb582e976a9a82d691342a4d57b3c72208ce416c\"\u003e\u003ccode\u003efb582e9\u003c/code\u003e\u003c/a\u003e Flip wiring of Dns.SYSTEM (\u003ca href=\"https://redirect.github.com/lysine-dev/okhttp/issues/9682\"\u003e#9682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysine-dev/okhttp/commit/4e884abb1a207c321acffb070c476acb4b89fa3f\"\u003e\u003ccode\u003e4e884ab\u003c/code\u003e\u003c/a\u003e retryOnConnectionFailure doesn't impact ECH retries (\u003ca href=\"https://redirect.github.com/lysine-dev/okhttp/issues/9681\"\u003e#9681\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysine-dev/okhttp/commit/0433cee8131b63fa2c0634fa2f9b3a01f9a8b1f3\"\u003e\u003ccode\u003e0433cee\u003c/code\u003e\u003c/a\u003e Only one contributing.md doc (\u003ca href=\"https://redirect.github.com/lysine-dev/okhttp/issues/9678\"\u003e#9678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysine-dev/okhttp/commit/a2cf5aa9f8711dabe514871e9dc4a9336a0e403f\"\u003e\u003ccode\u003ea2cf5a...\n\n_Description has been truncated_","html_url":"https://github.com/linuxhsj/openclaw-zero-token/pull/298","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/linuxhsj%2Fopenclaw-zero-token/issues/298","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/298/packages"},{"uuid":"5442065104","node_id":"PR_kwDOSboaV88AAAABDW5YmA","number":51,"state":"closed","title":"deps: bump the build-toolchain group across 1 directory with 3 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-09-13T19:12:08.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-13T18:54:18.000Z","updated_at":"2026-09-13T19:12:08.000Z","time_to_close":1070,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"build-toolchain","update_count":3,"packages":[{"name":"org.jetbrains.kotlin.plugin.compose","old_version":"2.3.21","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.3.21","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.3.21","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"com.google.devtools.ksp","old_version":"2.3.7","new_version":"2.3.12","repository_url":"https://github.com/google/ksp"}],"path":null,"ecosystem":"maven"},"body":"Bumps the build-toolchain group with 3 updates in the / directory: [org.jetbrains.kotlin.plugin.compose](https://github.com/JetBrains/kotlin), [org.jetbrains.kotlin.plugin.serialization](https://github.com/JetBrains/kotlin) and [com.google.devtools.ksp](https://github.com/google/ksp).\n\nUpdates `org.jetbrains.kotlin.plugin.compose` from 2.3.21 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.plugin.compose's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.plugin.compose's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.3.21...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.plugin.serialization` from 2.3.21 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.plugin.serialization's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.plugin.serialization's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.3.21...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.plugin.serialization` from 2.3.21 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.plugin.serialization's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.plugin.serialization's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.3.21...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.google.devtools.ksp` from 2.3.7 to 2.3.12\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/ksp/releases\"\u003ecom.google.devtools.ksp's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.12\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eMigrating Processors to Support Backing Fields\u003c/h3\u003e\n\u003cp\u003eThis release introduces support for explicit backing fields (\u003ca href=\"https://redirect.github.com/google/ksp/issues/2873\"\u003e#2873\u003c/a\u003e ), which may now be returned by \u003ccode\u003eResolver.getSymbolsWithAnnotation\u003c/code\u003e. To prevent breaking existing processors, new language features require an explicit opt-in.\u003c/p\u003e\n\u003cp\u003eProcessors adapting to new features must opt in via both of the following steps simultaneously (failing to do both may lead to undefined behavior):\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eThe processor should call the \u003ccode\u003eregisterProcessorForNewFeatures\u003c/code\u003e function in \u003ccode\u003eSymbolProcessorEnvironment\u003c/code\u003e immediately when created (and only once). Example: \u003ca href=\"https://github.com/google/ksp/blob/958be42cfd07943f901727d12ab7fec6540d543f/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AbstractTestProcessor.kt#L30\"\u003eAbstractTestProcessor.kt#L30\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAll implementations of \u003ccode\u003eKSVisitor\u003c/code\u003e should move to \u003ccode\u003eKSVisitorNext\u003c/code\u003e. If their processor code does not directly implement the interface but instead \u003cstrong\u003eextends\u003c/strong\u003e one of the KSP-provided visitors (such as \u003ccode\u003eKSTopDownVisitor\u003c/code\u003e), they should instead extend \u003ccode\u003eKSTopDownVisitor(enableNewFeatures = true)\u003c/code\u003e and override \u003ccode\u003evisitBackingField\u003c/code\u003e depending on their code and needs.\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix Resolver.getDeclarationsFromPackage returning incomplete declarations from KLibs in Kotlin Multiplatform (\u003ca href=\"https://redirect.github.com/google/ksp/issues/2396\"\u003e#2396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix KSP CLI process hanging indefinitely when a processor throws an unhandled exception (\u003ca href=\"https://redirect.github.com/google/ksp/issues/3120\"\u003e#3120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix implicit task dependency error between KSP and Android Lint in Android KMP (\u003ca href=\"https://redirect.github.com/google/ksp/issues/3128\"\u003e#3128\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix NullPointerException by registering PluginProblemReporter as an application service (\u003ca href=\"https://redirect.github.com/google/ksp/issues/3140\"\u003e#3140\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDo not mark companion objects as JAVA_STATIC in Resolver.effectiveJavaModifiers (\u003ca href=\"https://redirect.github.com/google/ksp/issues/3125\"\u003e#3125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix JAVA_STATIC modifier resolution for \u003ca href=\"https://github.com/JvmStatic\"\u003e\u003ccode\u003e@​JvmStatic\u003c/code\u003e\u003c/a\u003e members in Resolver.effectiveJavaModifiers (\u003ca href=\"https://redirect.github.com/google/ksp/issues/3124\"\u003e#3124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate minimum supported Android Gradle Plugin (AGP) version to 8.12.0 (\u003ca href=\"https://redirect.github.com/google/ksp/issues/3149\"\u003e#3149\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/KlyneChrysler\"\u003e\u003ccode\u003e@​KlyneChrysler\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/budindepunk\"\u003e\u003ccode\u003e@​budindepunk\u003c/code\u003e\u003c/a\u003e, and everyone who reported bugs and participated in discussions!\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/google/ksp/compare/2.3.11...2.3.12\"\u003ehttps://github.com/google/ksp/compare/2.3.11...2.3.12\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.3.11\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003eorg.gradle.isolated-projects\u003c/code\u003e for project isolation (\u003ca href=\"https://redirect.github.com/google/ksp/issues/3051\"\u003e#3051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix premature \u003ccode\u003ekspDebugAndroidTest\u003c/code\u003e task skipping on Android library modules (\u003ca href=\"https://redirect.github.com/google/ksp/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix missing parent declaration exception for \u003ccode\u003e@NotNull\u003c/code\u003e annotations during incremental compilation (\u003ca href=\"https://redirect.github.com/google/ksp/issues/3030\"\u003e#3030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClean output directories instead of skipping tasks when processor classpath transitions to empty (\u003ca href=\"https://redirect.github.com/google/ksp/issues/3046\"\u003e#3046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix build cache misses by marking \u003ccode\u003eKspGradleConfig.logLevel\u003c/code\u003e as \u003ccode\u003e@Internal\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/google/ksp/issues/3039\"\u003e#3039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eorg.gradle.isolated-projects=true\u003c/code\u003e to KSP Gradle properties reference table (\u003ca href=\"https://redirect.github.com/google/ksp/issues/3076\"\u003e#3076\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd KSP Gradle properties reference table to README documentation (\u003ca href=\"https://redirect.github.com/google/ksp/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument collection values in \u003ccode\u003eKSValueArgument.value\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/google/ksp/issues/3069\"\u003e#3069\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate error messaging for \u003ccode\u003eksp.useKSP2\u003c/code\u003e deprecation notice (\u003ca href=\"https://redirect.github.com/google/ksp/issues/3066\"\u003e#3066\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThanks to \u003ca href=\"https://github.com/simonlebras\"\u003e\u003ccode\u003e@​simonlebras\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ChristianKatzmann\"\u003e\u003ccode\u003e@​ChristianKatzmann\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Yong-yuan-X\"\u003e\u003ccode\u003e@​Yong-yuan-X\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/bacecek\"\u003e\u003ccode\u003e@​bacecek\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/KlyneChrysler\"\u003e\u003ccode\u003e@​KlyneChrysler\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Shaurya2k06\"\u003e\u003ccode\u003e@​Shaurya2k06\u003c/code\u003e\u003c/a\u003e, and everyone who reported bugs and participated in discussions!\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/google/ksp/compare/2.3.10...2.3.11\"\u003ehttps://github.com/google/ksp/compare/2.3.10...2.3.11\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.3.10\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix OOMs caused by unstopped coroutine Dispatcher threads by moving KSP task cache to a gradle build service (\u003ca href=\"https://redirect.github.com/google/ksp/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSanitize ':' in internal-name module suffix so KSP works with Kotlin 2.4.0 default module names (\u003ca href=\"https://redirect.github.com/google/ksp/issues/2964\"\u003e#2964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFilter source file trees in KspAATask to restore NO-SOURCE skipping behaviour (\u003ca href=\"https://redirect.github.com/google/ksp/issues/2947\"\u003e#2947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix R-class resolution in KSP when AGP 9 built-in Kotlin is enabled (\u003ca href=\"https://redirect.github.com/google/ksp/issues/2857\"\u003e#2857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix KSP2 incremental cache path normalization mismatch (\u003ca href=\"https://redirect.github.com/google/ksp/issues/2854\"\u003e#2854\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/ksp/commit/a3c38590913b863cc6b73b41d54ff8afa625f642\"\u003e\u003ccode\u003ea3c3859\u003c/code\u003e\u003c/a\u003e Format Resolver file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/ksp/commit/a614317b071a434139689d8fc0f5c1377b4f0d44\"\u003e\u003ccode\u003ea614317\u003c/code\u003e\u003c/a\u003e Fix grammatical errors in Resolver doc comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/ksp/commit/c19f255fd96877bbc5b1b18c227c2a3d56883a24\"\u003e\u003ccode\u003ec19f255\u003c/code\u003e\u003c/a\u003e Merge equal EXPECT NEXT and EXPECT CURRENT in javaBackingFieldUsedInKotlin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/ksp/commit/d3df886048fc6512a06649371b2c1917863160cf\"\u003e\u003ccode\u003ed3df886\u003c/code\u003e\u003c/a\u003e Add test for getting default annotation values in KMP\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/ksp/commit/3bcac2082b36d3be96ea37070fa007d26233af88\"\u003e\u003ccode\u003e3bcac20\u003c/code\u003e\u003c/a\u003e Mark testJavaBackingFieldUsedInKotlin as fixed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/ksp/commit/e74bb5f56328808f1ad37ba62e66ec3a8e72976e\"\u003e\u003ccode\u003ee74bb5f\u003c/code\u003e\u003c/a\u003e Update expected test output in libOrigins\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/ksp/commit/c9b1d406ed5bebb34411c4036fecbf0b014b013a\"\u003e\u003ccode\u003ec9b1d40\u003c/code\u003e\u003c/a\u003e Use KSSyntheticJavaBackingFieldImpl in KSPropertyDeclarationImpl\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/ksp/commit/afefe15219f9ef70363390236eca8e012c12f6d2\"\u003e\u003ccode\u003eafefe15\u003c/code\u003e\u003c/a\u003e Add KSSyntheticJavaBackingFieldImpl\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/ksp/commit/2da07c146f61caa0428c97df1152466a7a2aa7d5\"\u003e\u003ccode\u003e2da07c1\u003c/code\u003e\u003c/a\u003e Add test for missing synthetic Java fields\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/ksp/commit/70335307edb9381edd707e5c0eabedf22300c3ab\"\u003e\u003ccode\u003e7033530\u003c/code\u003e\u003c/a\u003e Fix visibility modifiers for Kotlin-based backing fields\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/ksp/compare/2.3.7...2.3.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/megamaced/nc_collectives_android/pull/51","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/megamaced%2Fnc_collectives_android/issues/51","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/51/packages"},{"uuid":"5441148016","node_id":"PR_kwDORV9tWc8AAAABDWMbXg","number":32,"state":"open","title":"chore(deps): bump the dependencies group across 1 directory with 10 updates","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-13T16:02:15.000Z","updated_at":"2026-09-13T16:02:41.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"dependencies","update_count":10,"packages":[{"name":"gradle-wrapper","old_version":"9.6.1","new_version":"9.7.1","repository_url":"https://github.com/gradle/gradle"},{"name":"io.ktor:ktor-client-core","old_version":"3.5.1","new_version":"3.5.2","repository_url":"https://github.com/ktorio/ktor"},{"name":"io.kotest:kotest-runner-junit5-jvm","old_version":"6.2.1","new_version":"6.2.4","repository_url":"https://github.com/kotest/kotest"},{"name":"io.kotest:kotest-assertions-core-jvm","old_version":"6.2.1","new_version":"6.2.4","repository_url":"https://github.com/kotest/kotest"},{"name":"org.slf4j:slf4j-simple","old_version":"2.0.18","new_version":"2.0.19"},{"name":"org.jetbrains.kotlin.multiplatform","old_version":"2.4.0","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.4.0","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.native.cocoapods","old_version":"2.4.0","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"}],"path":null,"ecosystem":"maven"},"body":"Bumps the dependencies group with 8 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [gradle-wrapper](https://github.com/gradle/gradle) | `9.6.1` | `9.7.1` |\n| [io.ktor:ktor-client-core](https://github.com/ktorio/ktor) | `3.5.1` | `3.5.2` |\n| [io.kotest:kotest-runner-junit5-jvm](https://github.com/kotest/kotest) | `6.2.1` | `6.2.4` |\n| [io.kotest:kotest-assertions-core-jvm](https://github.com/kotest/kotest) | `6.2.1` | `6.2.4` |\n| org.slf4j:slf4j-simple | `2.0.18` | `2.0.19` |\n| [org.jetbrains.kotlin.multiplatform](https://github.com/JetBrains/kotlin) | `2.4.0` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.serialization](https://github.com/JetBrains/kotlin) | `2.4.0` | `2.4.20` |\n| [org.jetbrains.kotlin.native.cocoapods](https://github.com/JetBrains/kotlin) | `2.4.0` | `2.4.20` |\n\n\nUpdates `gradle-wrapper` from 9.6.1 to 9.7.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gradle/gradle/releases\"\u003egradle-wrapper's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.7.1\u003c/h2\u003e\n\u003cp\u003eThe Gradle team is excited to announce Gradle 9.7.1.\u003c/p\u003e\n\u003cp\u003eThis is a patch release for 9.7.0. We recommend using 9.7.1 instead of 9.7.0.\u003c/p\u003e\n\u003cp\u003eHere are the highlights of 9.7.0 release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIsolated Projects graduates to incubating\u003c/li\u003e\n\u003cli\u003eBroader Configuration Cache compatibility\u003c/li\u003e\n\u003cli\u003eResilient Sync helps you fix broken builds\u003c/li\u003e\n\u003cli\u003eMore source locations in problem reports\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://docs.gradle.org/9.7.1/release-notes.html\"\u003eRead the Release Notes\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eWe would like to thank the following community members for their contributions to this release of Gradle:\n\u003ca href=\"https://github.com/aSemy\"\u003eAdam\u003c/a\u003e,\n\u003ca href=\"https://github.com/Gautam-aman\"\u003eAman Gautam\u003c/a\u003e,\n\u003ca href=\"https://github.com/YukiCodepth\"\u003eAman Kumar\u003c/a\u003e,\n\u003ca href=\"https://github.com/adubrouski\"\u003eAnton Dubrouski\u003c/a\u003e,\n\u003ca href=\"https://github.com/liutikas\"\u003eAurimas\u003c/a\u003e,\n\u003ca href=\"https://github.com/gbhavya07\"\u003egbhavya07\u003c/a\u003e,\n\u003ca href=\"https://github.com/joshfriend\"\u003eJosh Friend\u003c/a\u003e,\n\u003ca href=\"https://github.com/nicklauslittle-gov\"\u003enicklauslittle-gov\u003c/a\u003e,\n\u003ca href=\"https://github.com/psoni674\"\u003ePragati\u003c/a\u003e,\n\u003ca href=\"https://github.com/Project516\"\u003eproject516\u003c/a\u003e,\n\u003ca href=\"https://github.com/Uomocapra\"\u003eQin Mi\u003c/a\u003e,\n\u003ca href=\"https://github.com/rkdfx\"\u003eRavi\u003c/a\u003e,\n\u003ca href=\"https://github.com/sk-reddy17\"\u003esk-reddy17\u003c/a\u003e,\n\u003ca href=\"https://github.com/Suvrat1629\"\u003eSuvrat Acharya\u003c/a\u003e,\n\u003ca href=\"https://github.com/ShreckYe\"\u003eYongshun Ye\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eUpgrade instructions\u003c/h2\u003e\n\u003cp\u003eSwitch your build to use Gradle 9.7.1 by updating your wrapper:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e./gradlew :wrapper --gradle-version=9.7.1 \u0026amp;\u0026amp; ./gradlew :wrapper\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eSee the Gradle \u003ca href=\"https://docs.gradle.org/9.7.1/userguide/upgrading_version_9.html\"\u003e9.x upgrade guide\u003c/a\u003e to learn about deprecations, breaking changes and other considerations when upgrading.\u003c/p\u003e\n\u003cp\u003eFor Java, Groovy, Kotlin and Android compatibility, see the \u003ca href=\"https://docs.gradle.org/9.7.1/userguide/compatibility.html\"\u003efull compatibility notes\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eReporting problems\u003c/h2\u003e\n\u003cp\u003eIf you find a problem with this release, please file a bug on \u003ca href=\"https://github.com/gradle/gradle/issues\"\u003eGitHub Issues\u003c/a\u003e adhering to our issue guidelines.\nIf you're not sure you're encountering a bug, please use the \u003ca href=\"https://discuss.gradle.org/c/help-discuss\"\u003eforum\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eWe hope you will build happiness with Gradle, and we look forward to your feedback via \u003ca href=\"https://twitter.com/gradle\"\u003eTwitter\u003c/a\u003e or on \u003ca href=\"https://github.com/gradle\"\u003eGitHub\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003e9.7.0\u003c/h2\u003e\n\u003cp\u003eThe Gradle team is excited to announce Gradle 9.7.0.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/92f0512e7f06d84621afba191f75e265363890cf\"\u003e\u003ccode\u003e92f0512\u003c/code\u003e\u003c/a\u003e update fixed issues for 9.7.1 (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/38892\"\u003e#38892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/820ee75a99a179bbffa41bcedc6477b685fabb9f\"\u003e\u003ccode\u003e820ee75\u003c/code\u003e\u003c/a\u003e update fixed issues for 9.7.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/82c23f9bd2a89b4cc644e1f90a28a8668feb3dee\"\u003e\u003ccode\u003e82c23f9\u003c/code\u003e\u003c/a\u003e Fix annotation parameter ordering problem in KTS (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/38878\"\u003e#38878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/ef11a7268fe8cc8d6ab849ec911aa11220180553\"\u003e\u003ccode\u003eef11a72\u003c/code\u003e\u003c/a\u003e Fix annotation parameter ordering issue\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/bb0d8a974a71b1003efea41e4046e98855cd5ff8\"\u003e\u003ccode\u003ebb0d8a9\u003c/code\u003e\u003c/a\u003e Make relevant tests polyglot (run for multiple DSLs)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/336e129d7f95c03486acafc97abf59734acfed48\"\u003e\u003ccode\u003e336e129\u003c/code\u003e\u003c/a\u003e Update signing configuration (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/38874\"\u003e#38874\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/4bdf0da2dad9884d089a6062a45ea7183e7d735d\"\u003e\u003ccode\u003e4bdf0da\u003c/code\u003e\u003c/a\u003e Update signing configuration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/cd9b92c1b82856248cf1dc58b50378238bec7b52\"\u003e\u003ccode\u003ecd9b92c\u003c/code\u003e\u003c/a\u003e List issues resolved in 9.7.1 (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/38839\"\u003e#38839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/5f4e381964897ad8d6b99e5a7c77f26dba3259fb\"\u003e\u003ccode\u003e5f4e381\u003c/code\u003e\u003c/a\u003e List issues resolved in 9.7.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/1e08ab551367aeb5fb48b26e72807e1d2b27c939\"\u003e\u003ccode\u003e1e08ab5\u003c/code\u003e\u003c/a\u003e Keep type-use annotations in extracted ABI classes (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/38810\"\u003e#38810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gradle/gradle/compare/v9.6.1...v9.7.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `io.ktor:ktor-client-core` from 3.5.1 to 3.5.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ktorio/ktor/releases\"\u003eio.ktor:ktor-client-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.5.2\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003ePublished 31 July 2026\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8032\"\u003eKTOR-8032\u003c/a\u003e RateLimit: Allow limit requests based on authentication result\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9719\"\u003eKTOR-9719\u003c/a\u003e \u003ccode\u003eApplicationCall.isStaticContent\u003c/code\u003e returns false when called from plugin interceptors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8450\"\u003eKTOR-8450\u003c/a\u003e ContentNegotiation: it doesn't handle content type suffixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-7892\"\u003eKTOR-7892\u003c/a\u003e SwaggerUI: Missing oauth2-redirect.html support in the plugin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9759\"\u003eKTOR-9759\u003c/a\u003e Reject whitespace in URL hosts during parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9681\"\u003eKTOR-9681\u003c/a\u003e Update kotlinx-io to 0.9.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9743\"\u003eKTOR-9743\u003c/a\u003e ByteReadChannel.readLineStrict: Misleading definition of limit parameter in KDocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9504\"\u003eKTOR-9504\u003c/a\u003e Improve KDoc for EmbeddedServer.addShutdownHook\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugfixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9741\"\u003eKTOR-9741\u003c/a\u003e CIO: request-handler coroutine leak on half-closed idle connection after ≥1MB response\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-7661\"\u003eKTOR-7661\u003c/a\u003e Maven + YAML config file does not work\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9585\"\u003eKTOR-9585\u003c/a\u003e OpenAPI: JsonSchema title is truncated when it contains a dot\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9704\"\u003eKTOR-9704\u003c/a\u003e UTF-8 encoding in ktor-io bypasses JVM String.getBytes intrinsics, slowing every text response by 5-7x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9588\"\u003eKTOR-9588\u003c/a\u003e SSE client (CIO engine) sends spurious \u003ccode\u003eContent-Length: 0\u003c/code\u003e on body-less GET (RFC 9110 § 8.6 violation; rejected by AWS ELB)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9679\"\u003eKTOR-9679\u003c/a\u003e ByteReadChannel.readLine corrupts multi-byte UTF-8 by splitting a character at a buffer boundary\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9767\"\u003eKTOR-9767\u003c/a\u003e ByteReadChannel.readLineTo: Return read bytes count instead of decoded characters count \u003ca href=\"#\"\u003e\u003cimg src=\"https://img.shields.io/badge/%5BImpactful%20change%5D-orange?style=flat-square\" alt=\"\" /\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8992\"\u003eKTOR-8992\u003c/a\u003e HoconConfigLoader is not loaded when ktor-server-config-yaml on the classpath\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9698\"\u003eKTOR-9698\u003c/a\u003e OpenAPI: schema for kotlinx.serialization sealed types omits discriminator property in variant schemas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9690\"\u003eKTOR-9690\u003c/a\u003e Netty: in-flight requests are aborted on stop(), ignoring shutdown grace period\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8903\"\u003eKTOR-8903\u003c/a\u003e Netty: Close channel connection on errors properly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9707\"\u003eKTOR-9707\u003c/a\u003e SaveBody performance regression\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9703\"\u003eKTOR-9703\u003c/a\u003e Inefficient text reading function in DefaultTransform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9711\"\u003eKTOR-9711\u003c/a\u003e Netty HTTP/2: a single client-canceled stream (RST_STREAM) breaks response flushing for the whole connection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9688\"\u003eKTOR-9688\u003c/a\u003e RateLimit: No access to principal when wrapped with authentication since 3.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9677\"\u003eKTOR-9677\u003c/a\u003e Auto-reloading: server is reloaded only once since 3.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9683\"\u003eKTOR-9683\u003c/a\u003e Sockets: Canceling a SelectorManager job doesn't close it properly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9671\"\u003eKTOR-9671\u003c/a\u003e Darwin: Semicolons in URL path are sanitized\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ktorio/ktor/blob/main/CHANGELOG.md\"\u003eio.ktor:ktor-client-core's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.5.2\u003c/h1\u003e\n\u003cblockquote\u003e\n\u003cp\u003ePublished 31 July 2026\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8032\"\u003eKTOR-8032\u003c/a\u003e RateLimit: Allow limit requests based on authentication result\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9719\"\u003eKTOR-9719\u003c/a\u003e \u003ccode\u003eApplicationCall.isStaticContent\u003c/code\u003e returns false when called from plugin interceptors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8450\"\u003eKTOR-8450\u003c/a\u003e ContentNegotiation: it doesn't handle content type suffixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-7892\"\u003eKTOR-7892\u003c/a\u003e SwaggerUI: Missing oauth2-redirect.html support in the plugin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9759\"\u003eKTOR-9759\u003c/a\u003e Reject whitespace in URL hosts during parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9681\"\u003eKTOR-9681\u003c/a\u003e Update kotlinx-io to 0.9.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9743\"\u003eKTOR-9743\u003c/a\u003e ByteReadChannel.readLineStrict: Misleading definition of limit parameter in KDocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9504\"\u003eKTOR-9504\u003c/a\u003e Improve KDoc for EmbeddedServer.addShutdownHook\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugfixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9741\"\u003eKTOR-9741\u003c/a\u003e CIO: request-handler coroutine leak on half-closed idle connection after ≥1MB response\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-7661\"\u003eKTOR-7661\u003c/a\u003e Maven + YAML config file does not work\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9585\"\u003eKTOR-9585\u003c/a\u003e OpenAPI: JsonSchema title is truncated when it contains a dot\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9704\"\u003eKTOR-9704\u003c/a\u003e UTF-8 encoding in ktor-io bypasses JVM String.getBytes intrinsics, slowing every text response by 5-7x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9588\"\u003eKTOR-9588\u003c/a\u003e SSE client (CIO engine) sends spurious \u003ccode\u003eContent-Length: 0\u003c/code\u003e on body-less GET (RFC 9110 § 8.6 violation; rejected by AWS ELB)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9679\"\u003eKTOR-9679\u003c/a\u003e ByteReadChannel.readLine corrupts multi-byte UTF-8 by splitting a character at a buffer boundary\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9767\"\u003eKTOR-9767\u003c/a\u003e ByteReadChannel.readLineTo: Return read bytes count instead of decoded characters count \u003ca href=\"#\"\u003e\u003cimg src=\"https://img.shields.io/badge/%5BImpactful%20change%5D-orange?style=flat-square\" alt=\"\" /\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8992\"\u003eKTOR-8992\u003c/a\u003e HoconConfigLoader is not loaded when ktor-server-config-yaml on the classpath\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9698\"\u003eKTOR-9698\u003c/a\u003e OpenAPI: schema for kotlinx.serialization sealed types omits discriminator property in variant schemas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9690\"\u003eKTOR-9690\u003c/a\u003e Netty: in-flight requests are aborted on stop(), ignoring shutdown grace period\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8903\"\u003eKTOR-8903\u003c/a\u003e Netty: Close channel connection on errors properly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9707\"\u003eKTOR-9707\u003c/a\u003e SaveBody performance regression\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9703\"\u003eKTOR-9703\u003c/a\u003e Inefficient text reading function in DefaultTransform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9711\"\u003eKTOR-9711\u003c/a\u003e Netty HTTP/2: a single client-canceled stream (RST_STREAM) breaks response flushing for the whole connection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9688\"\u003eKTOR-9688\u003c/a\u003e RateLimit: No access to principal when wrapped with authentication since 3.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9677\"\u003eKTOR-9677\u003c/a\u003e Auto-reloading: server is reloaded only once since 3.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9683\"\u003eKTOR-9683\u003c/a\u003e Sockets: Canceling a SelectorManager job doesn't close it properly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9671\"\u003eKTOR-9671\u003c/a\u003e Darwin: Semicolons in URL path are sanitized\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/01c469a85f913aeb5aff36e5c4445ed04b896e84\"\u003e\u003ccode\u003e01c469a\u003c/code\u003e\u003c/a\u003e Release 3.5.2 (\u003ca href=\"https://redirect.github.com/ktorio/ktor/issues/5781\"\u003e#5781\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/c965a0ce85e1f1da30c0af1d8d8470c88d5c49a6\"\u003e\u003ccode\u003ec965a0c\u003c/code\u003e\u003c/a\u003e KTOR-9741 Prevent CIO request handler leak (\u003ca href=\"https://redirect.github.com/ktorio/ktor/issues/5783\"\u003e#5783\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/74df4585b80202ffc6830de5ec616042efff0136\"\u003e\u003ccode\u003e74df458\u003c/code\u003e\u003c/a\u003e chore: fix some comments to improve readability\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/2672567708f6fb9f5d301a5d4952ae8266bbbb78\"\u003e\u003ccode\u003e2672567\u003c/code\u003e\u003c/a\u003e [KTOR-9704] Optimized encoding flow for UTF-8 (\u003ca href=\"https://redirect.github.com/ktorio/ktor/issues/5743\"\u003e#5743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/d5680edbe6ae5f0a0d49e628a2c38cf0ef773d92\"\u003e\u003ccode\u003ed5680ed\u003c/code\u003e\u003c/a\u003e KTOR-5391: Document ECDSA certificate limitation for client authentication (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/9b0f356877111822d781fc74fb0352a12b84e4f2\"\u003e\u003ccode\u003e9b0f356\u003c/code\u003e\u003c/a\u003e \u003ccode\u003esomething::javaClass.name\u003c/code\u003e is not the name of the class of something but `\u0026quot;j...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/58256cd084f49338f738e3bcece15b54184ac299\"\u003e\u003ccode\u003e58256cd\u003c/code\u003e\u003c/a\u003e KTOR-9743 Clarify readLine documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/088bd60702eb2f59a0c20fb989ecdf2b12445452\"\u003e\u003ccode\u003e088bd60\u003c/code\u003e\u003c/a\u003e KTOR-9679 Fix regressions caused by adding buffering\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/167176a8d960078e9d39625776526a90b165a6f3\"\u003e\u003ccode\u003e167176a\u003c/code\u003e\u003c/a\u003e KTOR-9588 Do not send Content-Length: 0 for body-less GET requests (\u003ca href=\"https://redirect.github.com/ktorio/ktor/issues/5620\"\u003e#5620\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/7fb0844702b4e8e00ed751d36d010a6293a33eb1\"\u003e\u003ccode\u003e7fb0844\u003c/code\u003e\u003c/a\u003e KTOR-9585 Fix schema title trimming\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ktorio/ktor/compare/3.5.1...3.5.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `io.ktor:ktor-client-content-negotiation` from 3.5.1 to 3.5.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ktorio/ktor/releases\"\u003eio.ktor:ktor-client-content-negotiation's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.5.2\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003ePublished 31 July 2026\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8032\"\u003eKTOR-8032\u003c/a\u003e RateLimit: Allow limit requests based on authentication result\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9719\"\u003eKTOR-9719\u003c/a\u003e \u003ccode\u003eApplicationCall.isStaticContent\u003c/code\u003e returns false when called from plugin interceptors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8450\"\u003eKTOR-8450\u003c/a\u003e ContentNegotiation: it doesn't handle content type suffixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-7892\"\u003eKTOR-7892\u003c/a\u003e SwaggerUI: Missing oauth2-redirect.html support in the plugin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9759\"\u003eKTOR-9759\u003c/a\u003e Reject whitespace in URL hosts during parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9681\"\u003eKTOR-9681\u003c/a\u003e Update kotlinx-io to 0.9.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9743\"\u003eKTOR-9743\u003c/a\u003e ByteReadChannel.readLineStrict: Misleading definition of limit parameter in KDocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9504\"\u003eKTOR-9504\u003c/a\u003e Improve KDoc for EmbeddedServer.addShutdownHook\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugfixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9741\"\u003eKTOR-9741\u003c/a\u003e CIO: request-handler coroutine leak on half-closed idle connection after ≥1MB response\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-7661\"\u003eKTOR-7661\u003c/a\u003e Maven + YAML config file does not work\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9585\"\u003eKTOR-9585\u003c/a\u003e OpenAPI: JsonSchema title is truncated when it contains a dot\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9704\"\u003eKTOR-9704\u003c/a\u003e UTF-8 encoding in ktor-io bypasses JVM String.getBytes intrinsics, slowing every text response by 5-7x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9588\"\u003eKTOR-9588\u003c/a\u003e SSE client (CIO engine) sends spurious \u003ccode\u003eContent-Length: 0\u003c/code\u003e on body-less GET (RFC 9110 § 8.6 violation; rejected by AWS ELB)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9679\"\u003eKTOR-9679\u003c/a\u003e ByteReadChannel.readLine corrupts multi-byte UTF-8 by splitting a character at a buffer boundary\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9767\"\u003eKTOR-9767\u003c/a\u003e ByteReadChannel.readLineTo: Return read bytes count instead of decoded characters count \u003ca href=\"#\"\u003e\u003cimg src=\"https://img.shields.io/badge/%5BImpactful%20change%5D-orange?style=flat-square\" alt=\"\" /\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8992\"\u003eKTOR-8992\u003c/a\u003e HoconConfigLoader is not loaded when ktor-server-config-yaml on the classpath\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9698\"\u003eKTOR-9698\u003c/a\u003e OpenAPI: schema for kotlinx.serialization sealed types omits discriminator property in variant schemas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9690\"\u003eKTOR-9690\u003c/a\u003e Netty: in-flight requests are aborted on stop(), ignoring shutdown grace period\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8903\"\u003eKTOR-8903\u003c/a\u003e Netty: Close channel connection on errors properly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9707\"\u003eKTOR-9707\u003c/a\u003e SaveBody performance regression\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9703\"\u003eKTOR-9703\u003c/a\u003e Inefficient text reading function in DefaultTransform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9711\"\u003eKTOR-9711\u003c/a\u003e Netty HTTP/2: a single client-canceled stream (RST_STREAM) breaks response flushing for the whole connection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9688\"\u003eKTOR-9688\u003c/a\u003e RateLimit: No access to principal when wrapped with authentication since 3.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9677\"\u003eKTOR-9677\u003c/a\u003e Auto-reloading: server is reloaded only once since 3.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9683\"\u003eKTOR-9683\u003c/a\u003e Sockets: Canceling a SelectorManager job doesn't close it properly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9671\"\u003eKTOR-9671\u003c/a\u003e Darwin: Semicolons in URL path are sanitized\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ktorio/ktor/blob/main/CHANGELOG.md\"\u003eio.ktor:ktor-client-content-negotiation's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.5.2\u003c/h1\u003e\n\u003cblockquote\u003e\n\u003cp\u003ePublished 31 July 2026\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8032\"\u003eKTOR-8032\u003c/a\u003e RateLimit: Allow limit requests based on authentication result\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9719\"\u003eKTOR-9719\u003c/a\u003e \u003ccode\u003eApplicationCall.isStaticContent\u003c/code\u003e returns false when called from plugin interceptors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8450\"\u003eKTOR-8450\u003c/a\u003e ContentNegotiation: it doesn't handle content type suffixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-7892\"\u003eKTOR-7892\u003c/a\u003e SwaggerUI: Missing oauth2-redirect.html support in the plugin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9759\"\u003eKTOR-9759\u003c/a\u003e Reject whitespace in URL hosts during parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9681\"\u003eKTOR-9681\u003c/a\u003e Update kotlinx-io to 0.9.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9743\"\u003eKTOR-9743\u003c/a\u003e ByteReadChannel.readLineStrict: Misleading definition of limit parameter in KDocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9504\"\u003eKTOR-9504\u003c/a\u003e Improve KDoc for EmbeddedServer.addShutdownHook\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugfixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9741\"\u003eKTOR-9741\u003c/a\u003e CIO: request-handler coroutine leak on half-closed idle connection after ≥1MB response\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-7661\"\u003eKTOR-7661\u003c/a\u003e Maven + YAML config file does not work\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9585\"\u003eKTOR-9585\u003c/a\u003e OpenAPI: JsonSchema title is truncated when it contains a dot\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9704\"\u003eKTOR-9704\u003c/a\u003e UTF-8 encoding in ktor-io bypasses JVM String.getBytes intrinsics, slowing every text response by 5-7x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9588\"\u003eKTOR-9588\u003c/a\u003e SSE client (CIO engine) sends spurious \u003ccode\u003eContent-Length: 0\u003c/code\u003e on body-less GET (RFC 9110 § 8.6 violation; rejected by AWS ELB)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9679\"\u003eKTOR-9679\u003c/a\u003e ByteReadChannel.readLine corrupts multi-byte UTF-8 by splitting a character at a buffer boundary\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9767\"\u003eKTOR-9767\u003c/a\u003e ByteReadChannel.readLineTo: Return read bytes count instead of decoded characters count \u003ca href=\"#\"\u003e\u003cimg src=\"https://img.shields.io/badge/%5BImpactful%20change%5D-orange?style=flat-square\" alt=\"\" /\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8992\"\u003eKTOR-8992\u003c/a\u003e HoconConfigLoader is not loaded when ktor-server-config-yaml on the classpath\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9698\"\u003eKTOR-9698\u003c/a\u003e OpenAPI: schema for kotlinx.serialization sealed types omits discriminator property in variant schemas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9690\"\u003eKTOR-9690\u003c/a\u003e Netty: in-flight requests are aborted on stop(), ignoring shutdown grace period\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8903\"\u003eKTOR-8903\u003c/a\u003e Netty: Close channel connection on errors properly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9707\"\u003eKTOR-9707\u003c/a\u003e SaveBody performance regression\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9703\"\u003eKTOR-9703\u003c/a\u003e Inefficient text reading function in DefaultTransform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9711\"\u003eKTOR-9711\u003c/a\u003e Netty HTTP/2: a single client-canceled stream (RST_STREAM) breaks response flushing for the whole connection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9688\"\u003eKTOR-9688\u003c/a\u003e RateLimit: No access to principal when wrapped with authentication since 3.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9677\"\u003eKTOR-9677\u003c/a\u003e Auto-reloading: server is reloaded only once since 3.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9683\"\u003eKTOR-9683\u003c/a\u003e Sockets: Canceling a SelectorManager job doesn't close it properly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9671\"\u003eKTOR-9671\u003c/a\u003e Darwin: Semicolons in URL path are sanitized\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/01c469a85f913aeb5aff36e5c4445ed04b896e84\"\u003e\u003ccode\u003e01c469a\u003c/code\u003e\u003c/a\u003e Release 3.5.2 (\u003ca href=\"https://redirect.github.com/ktorio/ktor/issues/5781\"\u003e#5781\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/c965a0ce85e1f1da30c0af1d8d8470c88d5c49a6\"\u003e\u003ccode\u003ec965a0c\u003c/code\u003e\u003c/a\u003e KTOR-9741 Prevent CIO request handler leak (\u003ca href=\"https://redirect.github.com/ktorio/ktor/issues/5783\"\u003e#5783\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/74df4585b80202ffc6830de5ec616042efff0136\"\u003e\u003ccode\u003e74df458\u003c/code\u003e\u003c/a\u003e chore: fix some comments to improve readability\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/2672567708f6fb9f5d301a5d4952ae8266bbbb78\"\u003e\u003ccode\u003e2672567\u003c/code\u003e\u003c/a\u003e [KTOR-9704] Optimized encoding flow for UTF-8 (\u003ca href=\"https://redirect.github.com/ktorio/ktor/issues/5743\"\u003e#5743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/d5680edbe6ae5f0a0d49e628a2c38cf0ef773d92\"\u003e\u003ccode\u003ed5680ed\u003c/code\u003e\u003c/a\u003e KTOR-5391: Document ECDSA certificate limitation for client authentication (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/9b0f356877111822d781fc74fb0352a12b84e4f2\"\u003e\u003ccode\u003e9b0f356\u003c/code\u003e\u003c/a\u003e \u003ccode\u003esomething::javaClass.name\u003c/code\u003e is not the name of the class of something but `\u0026quot;j...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/58256cd084f49338f738e3bcece15b54184ac299\"\u003e\u003ccode\u003e58256cd\u003c/code\u003e\u003c/a\u003e KTOR-9743 Clarify readLine documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/088bd60702eb2f59a0c20fb989ecdf2b12445452\"\u003e\u003ccode\u003e088bd60\u003c/code\u003e\u003c/a\u003e KTOR-9679 Fix regressions caused by adding buffering\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/167176a8d960078e9d39625776526a90b165a6f3\"\u003e\u003ccode\u003e167176a\u003c/code\u003e\u003c/a\u003e KTOR-9588 Do not send Content-Length: 0 for body-less GET requests (\u003ca href=\"https://redirect.github.com/ktorio/ktor/issues/5620\"\u003e#5620\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/7fb0844702b4e8e00ed751d36d010a6293a33eb1\"\u003e\u003ccode\u003e7fb0844\u003c/code\u003e\u003c/a\u003e KTOR-9585 Fix schema title trimming\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ktorio/ktor/compare/3.5.1...3.5.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `io.ktor:ktor-serialization-kotlinx-json` from 3.5.1 to 3.5.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ktorio/ktor/releases\"\u003eio.ktor:ktor-serialization-kotlinx-json's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.5.2\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003ePublished 31 July 2026\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8032\"\u003eKTOR-8032\u003c/a\u003e RateLimit: Allow limit requests based on authentication result\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9719\"\u003eKTOR-9719\u003c/a\u003e \u003ccode\u003eApplicationCall.isStaticContent\u003c/code\u003e returns false when called from plugin interceptors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8450\"\u003eKTOR-8450\u003c/a\u003e ContentNegotiation: it doesn't handle content type suffixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-7892\"\u003eKTOR-7892\u003c/a\u003e SwaggerUI: Missing oauth2-redirect.html support in the plugin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9759\"\u003eKTOR-9759\u003c/a\u003e Reject whitespace in URL hosts during parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9681\"\u003eKTOR-9681\u003c/a\u003e Update kotlinx-io to 0.9.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9743\"\u003eKTOR-9743\u003c/a\u003e ByteReadChannel.readLineStrict: Misleading definition of limit parameter in KDocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9504\"\u003eKTOR-9504\u003c/a\u003e Improve KDoc for EmbeddedServer.addShutdownHook\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugfixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9741\"\u003eKTOR-9741\u003c/a\u003e CIO: request-handler coroutine leak on half-closed idle connection after ≥1MB response\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-7661\"\u003eKTOR-7661\u003c/a\u003e Maven + YAML config file does not work\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9585\"\u003eKTOR-9585\u003c/a\u003e OpenAPI: JsonSchema title is truncated when it contains a dot\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9704\"\u003eKTOR-9704\u003c/a\u003e UTF-8 encoding in ktor-io bypasses JVM String.getBytes intrinsics, slowing every text response by 5-7x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9588\"\u003eKTOR-9588\u003c/a\u003e SSE client (CIO engine) sends spurious \u003ccode\u003eContent-Length: 0\u003c/code\u003e on body-less GET (RFC 9110 § 8.6 violation; rejected by AWS ELB)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9679\"\u003eKTOR-9679\u003c/a\u003e ByteReadChannel.readLine corrupts multi-byte UTF-8 by splitting a character at a buffer boundary\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9767\"\u003eKTOR-9767\u003c/a\u003e ByteReadChannel.readLineTo: Return read bytes count instead of decoded characters count \u003ca href=\"#\"\u003e\u003cimg src=\"https://img.shields.io/badge/%5BImpactful%20change%5D-orange?style=flat-square\" alt=\"\" /\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8992\"\u003eKTOR-8992\u003c/a\u003e HoconConfigLoader is not loaded when ktor-server-config-yaml on the classpath\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9698\"\u003eKTOR-9698\u003c/a\u003e OpenAPI: schema for kotlinx.serialization sealed types omits discriminator property in variant schemas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9690\"\u003eKTOR-9690\u003c/a\u003e Netty: in-flight requests are aborted on stop(), ignoring shutdown grace period\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8903\"\u003eKTOR-8903\u003c/a\u003e Netty: Close channel connection on errors properly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9707\"\u003eKTOR-9707\u003c/a\u003e SaveBody performance regression\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9703\"\u003eKTOR-9703\u003c/a\u003e Inefficient text reading function in DefaultTransform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9711\"\u003eKTOR-9711\u003c/a\u003e Netty HTTP/2: a single client-canceled stream (RST_STREAM) breaks response flushing for the whole connection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9688\"\u003eKTOR-9688\u003c/a\u003e RateLimit: No access to principal when wrapped with authentication since 3.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9677\"\u003eKTOR-9677\u003c/a\u003e Auto-reloading: server is reloaded only once since 3.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9683\"\u003eKTOR-9683\u003c/a\u003e Sockets: Canceling a SelectorManager job doesn't close it properly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9671\"\u003eKTOR-9671\u003c/a\u003e Darwin: Semicolons in URL path are sanitized\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ktorio/ktor/blob/main/CHANGELOG.md\"\u003eio.ktor:ktor-serialization-kotlinx-json's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.5.2\u003c/h1\u003e\n\u003cblockquote\u003e\n\u003cp\u003ePublished 31 July 2026\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8032\"\u003eKTOR-8032\u003c/a\u003e RateLimit: Allow limit requests based on authentication result\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9719\"\u003eKTOR-9719\u003c/a\u003e \u003ccode\u003eApplicationCall.isStaticContent\u003c/code\u003e returns false when called from plugin interceptors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8450\"\u003eKTOR-8450\u003c/a\u003e ContentNegotiation: it doesn't handle content type suffixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-7892\"\u003eKTOR-7892\u003c/a\u003e SwaggerUI: Missing oauth2-redirect.html support in the plugin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9759\"\u003eKTOR-9759\u003c/a\u003e Reject whitespace in URL hosts during parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9681\"\u003eKTOR-9681\u003c/a\u003e Update kotlinx-io to 0.9.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9743\"\u003eKTOR-9743\u003c/a\u003e ByteReadChannel.readLineStrict: Misleading definition of limit parameter in KDocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9504\"\u003eKTOR-9504\u003c/a\u003e Improve KDoc for EmbeddedServer.addShutdownHook\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugfixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9741\"\u003eKTOR-9741\u003c/a\u003e CIO: request-handler coroutine leak on half-closed idle connection after ≥1MB response\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-7661\"\u003eKTOR-7661\u003c/a\u003e Maven + YAML config file does not work\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9585\"\u003eKTOR-9585\u003c/a\u003e OpenAPI: JsonSchema title is truncated when it contains a dot\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9704\"\u003eKTOR-9704\u003c/a\u003e UTF-8 encoding in ktor-io bypasses JVM String.getBytes intrinsics, slowing every text response by 5-7x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9588\"\u003eKTOR-9588\u003c/a\u003e SSE client (CIO engine) sends spurious \u003ccode\u003eContent-Length: 0\u003c/code\u003e on body-less GET (RFC 9110 § 8.6 violation; rejected by AWS ELB)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9679\"\u003eKTOR-9679\u003c/a\u003e ByteReadChannel.readLine corrupts multi-byte UTF-8 by splitting a character at a buffer boundary\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9767\"\u003eKTOR-9767\u003c/a\u003e ByteReadChannel.readLineTo: Return read bytes count instead of decoded characters count \u003ca href=\"#\"\u003e\u003cimg src=\"https://img.shields.io/badge/%5BImpactful%20change%5D-orange?style=flat-square\" alt=\"\" /\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8992\"\u003eKTOR-8992\u003c/a\u003e HoconConfigLoader is not loaded when ktor-server-config-yaml on the classpath\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9698\"\u003eKTOR-9698\u003c/a\u003e OpenAPI: schema for kotlinx.serialization sealed types omits discriminator property in variant schemas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9690\"\u003eKTOR-9690\u003c/a\u003e Netty: in-flight requests are aborted on stop(), ignoring shutdown grace period\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8903\"\u003eKTOR-8903\u003c/a\u003e Netty: Close channel connection on errors properly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9707\"\u003eKTOR-9707\u003c/a\u003e SaveBody performance regression\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9703\"\u003eKTOR-9703\u003c/a\u003e Inefficient text reading function in DefaultTransform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9711\"\u003eKTOR-9711\u003c/a\u003e Netty HTTP/2: a single client-canceled stream (RST_STREAM) breaks response flushing for the whole connection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9688\"\u003eKTOR-9688\u003c/a\u003e RateLimit: No access to principal when wrapped with authentication since 3.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9677\"\u003eKTOR-9677\u003c/a\u003e Auto-reloading: server is reloaded only once since 3.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9683\"\u003eKTOR-9683\u003c/a\u003e Sockets: Canceling a SelectorManager job doesn't close it properly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9671\"\u003eKTOR-9671\u003c/a\u003e Darwin: Semicolons in URL path are sanitized\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/01c469a85f913aeb5aff36e5c4445ed04b896e84\"\u003e\u003ccode\u003e01c469a\u003c/code\u003e\u003c/a\u003e Release 3.5.2 (\u003ca href=\"https://redirect.github.com/ktorio/ktor/issues/5781\"\u003e#5781\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/c965a0ce85e1f1da30c0af1d8d8470c88d5c49a6\"\u003e\u003ccode\u003ec965a0c\u003c/code\u003e\u003c/a\u003e KTOR-9741 Prevent CIO request handler leak (\u003ca href=\"https://redirect.github.com/ktorio/ktor/issues/5783\"\u003e#5783\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/74df4585b80202ffc6830de5ec616042efff0136\"\u003e\u003ccode\u003e74df458\u003c/code\u003e\u003c/a\u003e chore: fix some comments to improve readability\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/2672567708f6fb9f5d301a5d4952ae8266bbbb78\"\u003e\u003ccode\u003e2672567\u003c/code\u003e\u003c/a\u003e [KTOR-9704] Optimized encoding flow for UTF-8 (\u003ca href=\"https://redirect.github.com/ktorio/ktor/issues/5743\"\u003e#5743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/d5680edbe6ae5f0a0d49e628a2c38cf0ef773d92\"\u003e\u003ccode\u003ed5680ed\u003c/code\u003e\u003c/a\u003e KTOR-5391: Document ECDSA certificate limitation for client authentication (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/9b0f356877111822d781fc74fb0352a12b84e4f2\"\u003e\u003ccode\u003e9b0f356\u003c/code\u003e\u003c/a\u003e \u003ccode\u003esomething::javaClass.name\u003c/code\u003e is not the name of the class of something but `\u0026quot;j...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/58256cd084f49338f738e3bcece15b54184ac299\"\u003e\u003ccode\u003e58256cd\u003c/code\u003e\u003c/a\u003e KTOR-9743 Clarify readLine documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/088bd60702eb2f59a0c20fb989ecdf2b12445452\"\u003e\u003ccode\u003e088bd60\u003c/code\u003e\u003c/a\u003e KTOR-9679 Fix regressions caused by adding buffering\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/167176a8d960078e9d39625776526a90b165a6f3\"\u003e\u003ccode\u003e167176a\u003c/code\u003e\u003c/a\u003e KTOR-9588 Do not send Content-Length: 0 for body-less GET requests (\u003ca href=\"https://redirect.github.com/ktorio/ktor/issues/5620\"\u003e#5620\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/7fb0844702b4e8e00ed751d36d010a6293a33eb1\"\u003e\u003ccode\u003e7fb0844\u003c/code\u003e\u003c/a\u003e KTOR-9585 Fix schema title trimming\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ktorio/ktor/compare/3.5.1...3.5.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `io.kotest:kotest-runner-junit5-jvm` from 6.2.1 to 6.2.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kotest/kotest/releases\"\u003eio.kotest:kotest-runner-junit5-jvm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev6.2.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAlex/same time offset date time  (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6180\"\u003e#6180\u003c/a\u003e) by \u003ca href=\"https://github.com/AlexCue987\"\u003e\u003ccode\u003e@​AlexCue987\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6181\"\u003ekotest/kotest#6181\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlex/range intersect details  (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6183\"\u003e#6183\u003c/a\u003e) by \u003ca href=\"https://github.com/AlexCue987\"\u003e\u003ccode\u003e@​AlexCue987\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6184\"\u003ekotest/kotest#6184\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eForce commons-beanutils to 1.11.0 (CVE-2025-48734) by \u003ca href=\"https://github.com/sksamuel\"\u003e\u003ccode\u003e@​sksamuel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6187\"\u003ekotest/kotest#6187\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate kotlinx-datetime to 0.8.0 by \u003ca href=\"https://github.com/sksamuel\"\u003e\u003ccode\u003e@​sksamuel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6186\"\u003ekotest/kotest#6186\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: route a few hardcoded dependency/plugin versions through the version catalog by \u003ca href=\"https://github.com/stlpine\"\u003e\u003ccode\u003e@​stlpine\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6189\"\u003ekotest/kotest#6189\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echeck gradle wrapper gh action by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6192\"\u003ekotest/kotest#6192\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(assertions): state the containExactCopies lower bound as at least 1 by \u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6193\"\u003ekotest/kotest#6193\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGeneral improvements - framework by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6190\"\u003ekotest/kotest#6190\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGeneral improvements - IJ plugin by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6191\"\u003ekotest/kotest#6191\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix jump to source by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6195\"\u003ekotest/kotest#6195\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependency net.bytebuddy:byte-buddy to v1.18.11 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6202\"\u003ekotest/kotest#6202\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependency io.github.classgraph:classgraph to v4.8.186 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6201\"\u003ekotest/kotest#6201\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupdate docs to clarify that \u003ccode\u003ecopies\u003c/code\u003e in shouldContainExactCopies must be 1 or higher by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6207\"\u003ekotest/kotest#6207\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003espring extension improvements by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6204\"\u003ekotest/kotest#6204\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003esourceRef improvements by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6203\"\u003ekotest/kotest#6203\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eintroduce a TeamCity renderer that allows tree view and force it for our legacy IJ plugin by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6210\"\u003ekotest/kotest#6210\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix kdoc on StrictThrowableHandling by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6212\"\u003ekotest/kotest#6212\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003emake ai skill available to users via claude marketplace and tie versioning to kotest releases by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6211\"\u003ekotest/kotest#6211\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003espec tags cache by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6206\"\u003ekotest/kotest#6206\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ejunit testFinished improvements by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6205\"\u003ekotest/kotest#6205\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd module-factory support to KoinExtension (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6006\"\u003e#6006\u003c/a\u003e) by \u003ca href=\"https://github.com/sksamuel\"\u003e\u003ccode\u003e@​sksamuel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6138\"\u003ekotest/kotest#6138\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stlpine\"\u003e\u003ccode\u003e@​stlpine\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6189\"\u003ekotest/kotest#6189\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/kotest/kotest/compare/6.2.3...v6.2.4\"\u003ehttps://github.com/kotest/kotest/compare/6.2.3...v6.2.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.2.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocument Kotest Gradle plugin usage by \u003ca href=\"https://github.com/cfcromn\"\u003e\u003ccode\u003e@​cfcromn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6166\"\u003ekotest/kotest#6166\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd Double.atMost by \u003ca href=\"https://github.com/AlexCue987\"\u003e\u003ccode\u003e@​AlexCue987\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6175\"\u003ekotest/kotest#6175\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd offsetDateTime.shouldHaveSameInstantAsZonedDateTime(other: ZonedDateTime) by \u003ca href=\"https://github.com/AlexCue987\"\u003e\u003ccode\u003e@​AlexCue987\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6173\"\u003ekotest/kotest#6173\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ematch fields of data classes that are data objects by \u003ca href=\"https://github.com/AlexCue987\"\u003e\u003ccode\u003e@​AlexCue987\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6177\"\u003ekotest/kotest#6177\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecomplete custom styles DSL by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6179\"\u003ekotest/kotest#6179\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cfcromn\"\u003e\u003ccode\u003e@​cfcromn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6166\"\u003ekotest/kotest#6166\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/kotest/kotest/compare/6.2.2...v6.2.3\"\u003ehttps://github.com/kotest/kotest/compare/6.2.2...v6.2.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.2.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocument instant-based ZonedDateTime \u003ccode\u003eplusOrMinus\u003c/code\u003e comparison by \u003ca href=\"https://github.com/AlexCue987\"\u003e\u003ccode\u003e@​AlexCue987\u003c/code\u003e\u003c/a\u003e with \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6159\"\u003ekotest/kotest#6159\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd documentation for OffsetDateTime tolerance matcher by \u003ca href=\"https://github.com/AlexCue987\"\u003e\u003ccode\u003e@​AlexCue987\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6161\"\u003ekotest/kotest#6161\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typo in proptest config docs by \u003ca href=\"https://github.com/axiom\"\u003e\u003ccode\u003e@​axiom\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6155\"\u003ekotest/kotest#6155\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edisable return-value-checker for releases by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6165\"\u003ekotest/kotest#6165\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(kotest-framework-engine): Use display-name rendering for ignored tests in TeamCity listener by \u003ca href=\"https://github.com/sksamuel\"\u003e\u003ccode\u003e@​sksamuel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6119\"\u003ekotest/kotest#6119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(kotest-assertions-core): Handle null map values in shouldBeEqualUsingFields by \u003ca href=\"https://github.com/sksamuel\"\u003e\u003ccode\u003e@​sksamuel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6112\"\u003ekotest/kotest#6112\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kotest/kotest/commit/736a47b8ab4305e8aef76237b7792fc499cf50a1\"\u003e\u003ccode\u003e736a47b\u003c/code\u003e\u003c/a\u003e Add module-factory support to KoinExtension (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6006\"\u003e#6006\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6138\"\u003e#6138\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kotest/kotest/commit/cb91c7e167f9184f23e0bec5941a7701560d2c99\"\u003e\u003ccode\u003ecb91c7e\u003c/code\u003e\u003c/a\u003e junit testFinished improvements (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6205\"\u003e#6205\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kotest/kotest/commit/5c898b4fbd3c9830972d03b4d67af9005c01f759\"\u003e\u003ccode\u003e5c898b4\u003c/code\u003e\u003c/a\u003e spec tags cache (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6206\"\u003e#6206\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kotest/kotest/commit/69fdc8dc9f3cbeadc18b40f6350758631c238d44\"\u003e\u003ccode\u003e69fdc8d\u003c/code\u003e\u003c/a\u003e make ai skill available to users via claude marketplace and tie versioning to...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kotest/kotest/commit/2403f4fbe36e0afe260f44577f9662d2ccab81db\"\u003e\u003ccode\u003e2403f4f\u003c/code\u003e\u003c/a\u003e fix kdoc on StrictThrowableHandling (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6212\"\u003e#6212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kotest/kotest/commit/f96cf2a6fcc3402570cc56588506ced6014651ef\"\u003e\u003ccode\u003ef96cf2a\u003c/code\u003e\u003c/a\u003e introduce a TeamCity renderer that allows tree view and force it for our IJ p...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kotest/kotest/commit/05792718cb028710e1e45c01c8543f1dc3067826\"\u003e\u003ccode\u003e0579271\u003c/code\u003e\u003c/a\u003e sourceRef improvements (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6203\"\u003e#6203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kotest/kotest/commit/da26f165abca6d049d0902be2d4f27d3597d9643\"\u003e\u003ccode\u003eda26f16\u003c/code\u003e\u003c/a\u003e spring extension improvements (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6204\"\u003e#6204\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kotest/kotest/commit/cc5cf2536ffd22792ba01a4d78b3d3b07ee2a3db\"\u003e\u003ccode\u003ecc5cf25\u003c/code\u003e\u003c/a\u003e update docs to clarify that \u003ccode\u003ecopies\u003c/code\u003e in shouldContainExactCopies must be 1 or...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kotest/kotest/commit/1d648f92ebe6a6c675ce3fa8a39f23108616a9d3\"\u003e\u003ccode\u003e1d648f9\u003c/code\u003e\u003c/a\u003e Update dependency io.github.classgraph:classgraph to v4.8.186 (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6201\"\u003e#6201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kotest/kotest/compare/6.2.1...6.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `io.kotest:kotest-assertions-core-jvm` from 6.2.1 to 6.2.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kotest/kotest/releases\"\u003eio.kotest:kotest-assertions-core-jvm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev6.2.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAlex/same time offset date time  (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6180\"\u003e#6180\u003c/a\u003e) by \u003ca href=\"https://github.com/AlexCue987\"\u003e\u003ccode\u003e@​AlexCue987\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6181\"\u003ekotest/kotest#6181\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlex/range intersect details  (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6183\"\u003e#6183\u003c/a\u003e) by \u003ca href=\"https://github.com/AlexCue987\"\u003e\u003ccode\u003e@​AlexCue987\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6184\"\u003ekotest/kotest#6184\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eForce commons-beanutils to 1.11.0 (CVE-2025-48734) by \u003ca href=\"https://github.com/sksamuel\"\u003e\u003ccode\u003e@​sksamuel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6187\"\u003ekotest/kotest#6187\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate kotlinx-datetime to 0.8.0 by \u003ca href=\"https://github.com/sksamuel\"\u003e\u003ccode\u003e@​sksamuel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6186\"\u003ekotest/kotest#6186\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: route a few hardcoded dependency/plugin versions through the version catalog by \u003ca href=\"https://github.com/stlpine\"\u003e\u003ccode\u003e@​stlpine\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6189\"\u003ekotest/kotest#6189\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echeck gradle wrapper gh action by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6192\"\u003ekotest/kotest#6192\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(assertions): state the containExactCopies lower bound as at least 1 by \u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6193\"\u003ekotest/kotest#6193\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGeneral improvements - framework by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6190\"\u003ekotest/kotest#6190\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGeneral improvements - IJ plugin by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6191\"\u003ekotest/kotest#6191\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix jump to source by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6195\"\u003ekotest/kotest#6195\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependency net.bytebuddy:byte-buddy to v1.18.11 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6202\"\u003ekotest/kotest#6202\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependency io.github.classgraph:classgraph to v4.8.186 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6201\"\u003ekotest/kotest#6201\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupdate docs to clarify that \u003ccode\u003ecopies\u003c/code\u003e in shouldContainExactCopies must be 1 or higher by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6207\"\u003ekotest/kotest#6207\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003espring extension improvements by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6204\"\u003ekotest/kotest#6204\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003esourceRef improvements by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6203\"\u003ekotest/kotest#6203\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eintroduce a TeamCity renderer that allows tree view and force it for our legacy IJ plugin by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6210\"\u003ekotest/kotest#6210\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix kdoc on StrictThrowableHandling by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6212\"\u003ekotest/kotest#6212\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003emake ai skill available to users via claude marketplace and tie versioning to kotest releases by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6211\"\u003ekotest/kotest#6211\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003espec tags cache by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6206\"\u003ekotest/kotest#6206\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ejunit testFinished improvements by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6205\"\u003ekotest/kotest#6205\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd module-factory support to KoinExtension (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6006\"\u003e#6006\u003c/a\u003e) by \u003ca href=\"https://github.com/sksamuel\"\u003e\u003ccode\u003e@​sksamuel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6138\"\u003ekotest/kotest#6138\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stlpine\"\u003e\u003ccode\u003e@​stlpine\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6189\"\u003ekotest/kotest#6189\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/kotest/kotest/compare/6.2.3...v6.2.4\"\u003ehttps://github.com/kotest/kotest/compare/6.2.3...v6.2.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.2.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocument Kotest Gradle plugin usage by \u003ca href=\"https://github.com/cfcromn\"\u003e\u003ccode\u003e@​cfcromn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6166\"\u003ekotest/kotest#6166\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd Double.atMost by \u003ca href=\"https://github.com/AlexCue987\"\u003e\u003ccode\u003e@​AlexCue987\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6175\"\u003ekotest/kotest#6175\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd offsetDateTime.shouldHaveSameInstantAsZonedDateTime(other: ZonedDateTime) by \u003ca href=\"https://github.com/AlexCue987\"\u003e\u003ccode\u003e@​AlexCue987\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6173\"\u003ekotest/kotest#6173\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ematch fields of data classes that are data objects by \u003ca href=\"https://github.com/AlexCue987\"\u003e\u003ccode\u003e@​AlexCue987\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6177\"\u003ekotest/kotest#6177\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecomplete custom styles DSL by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6179\"\u003ekotest/kotest#6179\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cfcromn\"\u003e\u003ccode\u003e@​cfcromn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6166\"\u003ekotest/kotest#6166\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/kotest/kotest/compare/6.2.2...v6.2.3\"\u003ehttps://github.com/kotest/kotest/compare/6.2.2...v6.2.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.2.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocument instant-based ZonedDateTime \u003ccode\u003eplusOrMinus\u003c/code\u003e comparison by \u003ca href=\"https://github.com/AlexCue987\"\u003e\u003ccode\u003e@​AlexCue987\u003c/code\u003e\u003c/a\u003e with \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6159\"\u003ekotest/kotest#6159\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd documentation for OffsetDateTime tolerance matcher by \u003ca href=\"https://github.com/AlexCue987\"\u003e\u003ccode\u003e@​AlexCue987\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6161\"\u003ekotest/kotest#6161\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typo in proptest config docs by \u003ca href=\"https://github.com/axiom\"\u003e\u003ccode\u003e@​axiom\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6155\"\u003ekotest/kotest#6155\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edisable return-value-checker for releases by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6165\"\u003ekotest/kotest#6165\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(kotest-framework-engine): Use display-name rendering for ignored tests in TeamCity listener by \u003ca href=\"https://github.com/sksamuel\"\u003e\u003ccode\u003e@​sksamuel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6119\"\u003ekotest/kotest#6119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(kotest-assertions-core): Handle null map values in shouldBeEqualUsingFields by \u003ca href=\"https://github.com/sksamuel\"\u003e\u003ccode\u003e@​sksamuel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6112\"\u003ekotest/kotest#6112\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kotest/kotest/commit/736a47b8ab4305e8aef76237b7792fc499cf50a1\"\u003e\u003ccode\u003e736a47b\u003c/code\u003e\u003c/a\u003e Add module-factory support to KoinExtension (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6006\"\u003e#6006\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6138\"\u003e#6138\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kotest/kotest/commit/cb91c7e167f9184f23e0bec5941a7701560d2c99\"\u003e\u003ccode\u003ecb91c7e\u003c/code\u003e\u003c/a\u003e junit testFinished improvements (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6205\"\u003e#6205\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kotest/kotest/commit/5c898b4fbd3c9830972d03b4d67af9005c01f759\"\u003e\u003ccode\u003e5c898b4\u003c/code\u003e\u003c/a\u003e spec tags cache (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6206\"\u003e#6206\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kotest/kotest/commit/69fdc8dc9f3cbeadc18b40f6350758631c238d44\"\u003e\u003ccode\u003e69fdc8d\u003c/code\u003e\u003c/a\u003e make ai skill available to users via claude marketplace and tie versioning to...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kotest/kotest/commit/2403f4fbe36e0afe260f44577f9662d2ccab81db\"\u003e\u003ccode\u003e2403f4f\u003c/code\u003e\u003c/a\u003e fix kdoc on StrictThrowableHandling (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6212\"\u003e#6212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kotest/kotest/commit/f96cf2a6fcc3402570cc56588506ced6014651ef\"\u003e\u003ccode\u003ef96cf2a\u003c/code\u003e\u003c/a\u003e introduce a TeamCity renderer that allows tree view and force it for our IJ p...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kotest/kotest/commit/05792718cb028710e1e45c01c8543f1dc3067826\"\u003e\u003ccode\u003e0579271\u003c/code\u003e\u003c/a\u003e sourceRef improvements (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6203\"\u003e#6203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kotest/kotest/commit/da26f165abca6d049d0902be2d4f27d3597d9643\"\u003e\u003ccode\u003eda26f16\u003c/code\u003e\u003c/a\u003e spring extension improvements (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6204\"\u003e#6204\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kotest/kotest/commit/cc5cf2536ffd22792ba01a4d78b3d3b07ee2a3db\"\u003e\u003ccode\u003ecc5cf25\u003c/code\u003e\u003c/a\u003e update docs to clarify that \u003ccode\u003ecopies\u003c/code\u003e in shouldContainExactCopies must be 1 or...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kotest/kotest/commit/1d648f92ebe6a6c675ce3fa8a39f23108616a9d3\"\u003e\u003ccode\u003e1d648f9\u003c/code\u003e\u003c/a\u003e Update dependency io.github.classgraph:classgraph to v4.8.186 (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6201\"\u003e#6201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kotest/kotest/compare/6.2.1...6.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `io.kotest:kotest-assertions-core-jvm` from 6.2.1 to 6.2.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kotest/kotest/releases\"\u003eio.kotest:kotest-assertions-core-jvm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev6.2.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAlex/same time offset date time  (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6180\"\u003e#6180\u003c/a\u003e) by \u003ca href=\"https://github.com/AlexCue987\"\u003e\u003ccode\u003e@​AlexCue987\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6181\"\u003ekotest/kotest#6181\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlex/range intersect details  (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6183\"\u003e#6183\u003c/a\u003e) by \u003ca href=\"https://github.com/AlexCue987\"\u003e\u003ccode\u003e@​AlexCue987\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6184\"\u003ekotest/kotest#6184\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eForce commons-beanutils to 1.11.0 (CVE-2025-48734) by \u003ca href=\"https://github.com/sksamuel\"\u003e\u003ccode\u003e@​sksamuel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6187\"\u003ekotest/kotest#6187\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate kotlinx-datetime to 0.8.0 by \u003ca href=\"https://github.com/sksamuel\"\u003e\u003ccode\u003e@​sksamuel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6186\"\u003ekotest/kotest#6186\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: route a few hardcoded dependency/plugin versions through the version catalog by \u003ca href=\"https://github.com/stlpine\"\u003e\u003ccode\u003e@​stlpine\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6189\"\u003ekotest/kotest#6189\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echeck gradle wrapper gh action by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6192\"\u003ekotest/kotest#6192\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(assertions): state the containExactCopies lower bound as at least 1 by \u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6193\"\u003ekotest/kotest#6193\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGeneral improvements - framework by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6190\"\u003ekotest/kotest#6190\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGeneral improvements - IJ plugin by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6191\"\u003ekotest/kotest#6191\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix jump to source by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6195\"\u003ekotest/kotest#6195\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependency net.bytebuddy:byte-buddy to v1.18.11 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6202\"\u003ekotest/kotest#6202\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependency io.github.classgraph:classgraph to v4.8.186 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6201\"\u003ekotest/kotest#6201\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupdate docs to clarify that \u003ccode\u003ecopies\u003c/code\u003e in shouldContainExactCopies must be 1 or higher by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6207\"\u003ekotest/kotest#6207\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003espring extension improvements by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6204\"\u003ekotest/kotest#6204\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003esourceRef improvements by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6203\"\u003ekotest/kotest#6203\u003c/a\u003e\u003c/l...\n\n_Description has been truncated_","html_url":"https://github.com/uakihir0/kmatrix/pull/32","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/uakihir0%2Fkmatrix/issues/32","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/32/packages"},{"uuid":"5440899887","node_id":"PR_kwDOTN5Mws8AAAABDWAA4w","number":66,"state":"open","title":"Bump the deps group with 9 updates","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-13T15:19:27.000Z","updated_at":"2026-09-13T15:27:26.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"deps","update_count":9,"packages":[{"name":"com.diffplug.spotless","old_version":"8.10.1","new_version":"8.10.2"},{"name":"com.helger:parser-generator-cc","old_version":"1.1.4","new_version":"3.0.0","repository_url":"https://github.com/phax/ParserGeneratorCC"},{"name":"org.jetbrains.kotlin:kotlin-gradle-plugin","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.tinylog:tinylog-api-kotlin","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/tinylog-org/tinylog"},{"name":"org.tinylog:tinylog-impl","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/tinylog-org/tinylog"},{"name":"org.tinylog:tinylog-api","old_version":"2.8.0-M2","new_version":"2.8.0","repository_url":"https://github.com/tinylog-org/tinylog"},{"name":"org.jetbrains.kotlin.jvm","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.graalvm.buildtools.native","old_version":"1.1.11","new_version":"1.1.12","repository_url":"https://github.com/graalvm/native-build-tools"}],"path":null,"ecosystem":"maven"},"body":"Bumps the deps group with 9 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| com.diffplug.spotless | `8.10.1` | `8.10.2` |\n| [com.helger:parser-generator-cc](https://github.com/phax/ParserGeneratorCC) | `1.1.4` | `3.0.0` |\n| [org.jetbrains.kotlin:kotlin-gradle-plugin](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.tinylog:tinylog-api-kotlin](https://github.com/tinylog-org/tinylog) | `2.7.0` | `2.8.0` |\n| [org.tinylog:tinylog-impl](https://github.com/tinylog-org/tinylog) | `2.7.0` | `2.8.0` |\n| [org.tinylog:tinylog-api](https://github.com/tinylog-org/tinylog) | `2.8.0-M2` | `2.8.0` |\n| [org.jetbrains.kotlin.jvm](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.serialization](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.graalvm.buildtools.native](https://github.com/graalvm/native-build-tools) | `1.1.11` | `1.1.12` |\n\nUpdates `com.diffplug.spotless` from 8.10.1 to 8.10.2\n\nUpdates `com.helger:parser-generator-cc` from 1.1.4 to 3.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/phax/ParserGeneratorCC/releases\"\u003ecom.helger:parser-generator-cc's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBreaking API change\u003c/strong\u003e \u003ccode\u003eContainer\u003c/code\u003e is generic - \u003ccode\u003eContainer \u0026lt;T\u0026gt;\u003c/code\u003e with a typed \u003ccode\u003egetMember ()\u003c/code\u003e and \u003ccode\u003esetMember (T)\u003c/code\u003e instead of \u003ccode\u003eObject\u003c/code\u003e.\nThe grammar passes it as an out parameter through nine productions; they are typed \u003ccode\u003eContainer\u0026lt;Expansion\u0026gt;\u003c/code\u003e for the BNF and regular expression chain and \u003ccode\u003eContainer\u0026lt;ICCCharacter\u0026gt;\u003c/code\u003e for the character descriptors, which are an unrelated hierarchy.\n17 of the 37 casts on \u003ccode\u003egetMember ()\u003c/code\u003e in \u003ccode\u003eJavaCC.jj\u003c/code\u003e are gone, plus one in \u003ccode\u003emakeTryBlock\u003c/code\u003e.\nThe remaining 19 \u003ccode\u003eAbstractExpRegularExpression\u003c/code\u003e casts stay because \u003ccode\u003eexpansion_unit\u003c/code\u003e hands its \u003ccode\u003eContainer\u0026lt;Expansion\u0026gt;\u003c/code\u003e to \u003ccode\u003eregular_expression\u003c/code\u003e, and generics are invariant - that pins the whole regular expression chain to \u003ccode\u003eExpansion\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe code generators resolve \u003ccode\u003elexer ()\u003c/code\u003e, \u003ccode\u003egrammar ()\u003c/code\u003e, \u003ccode\u003etokenizerBuild ()\u003c/code\u003e and \u003ccode\u003eoptionValues ()\u003c/code\u003e into a local variable instead of calling them once per use.\nEach call is a \u003ccode\u003eThreadLocal\u003c/code\u003e lookup, and they sat in the innermost loops - \u003ccode\u003eLexGenJava.start\u003c/code\u003e alone made 184 of them, 175 inside loops, and \u003ccode\u003eLexGenCpp.start\u003c/code\u003e 157.\n1069 calls across 35 methods became 35 locals; generating \u003ccode\u003egrammars/JavaCC.jj\u003c/code\u003e drops from 13.3 ms to 11.3 ms and \u003ccode\u003egrammars/CobolParser.jj\u003c/code\u003e from 20.2 ms to 17.0 ms (best of 25 runs after 8 warm ups).\nGenerated output is unchanged\u003c/li\u003e\n\u003cli\u003eThe remaining \u003ccode\u003einstanceof\u003c/code\u003e tests that were followed by a cast use pattern matching now, in \u003ccode\u003eParseEngine\u003c/code\u003e, \u003ccode\u003eSemanticize\u003c/code\u003e, \u003ccode\u003eExpRCharacterList\u003c/code\u003e, \u003ccode\u003eExpRChoice\u003c/code\u003e, \u003ccode\u003eExpRStringLiteral\u003c/code\u003e, \u003ccode\u003eJJDoc\u003c/code\u003e, \u003ccode\u003eLexGenCpp\u003c/code\u003e and \u003ccode\u003eOptions\u003c/code\u003e.\n\u003ccode\u003eLexGenCpp\u003c/code\u003e had three casts of \u003ccode\u003elexer ().getCurRE ()\u003c/code\u003e in one condition where the Java backend already had one binding, so the two backends read alike again.\nThis also removes a latent \u003ccode\u003eClassCastException\u003c/code\u003e in \u003ccode\u003eOptions.setInputFileOption\u003c/code\u003e, which tested \u003ccode\u003eaObject instanceof Integer\u003c/code\u003e but cast \u003ccode\u003eaRealSrc\u003c/code\u003e; only \u003ccode\u003e\u0026amp;\u0026amp;\u003c/code\u003e short circuiting kept it unreachable, because the grammar can produce a \u003ccode\u003eList\u0026lt;String\u0026gt;\u003c/code\u003e but never a \u003ccode\u003eList\u0026lt;Integer\u0026gt;\u003c/code\u003e.\nThe action blocks in \u003ccode\u003eJavaCC.jj\u003c/code\u003e and \u003ccode\u003eConditionParser.jj\u003c/code\u003e keep their casts on purpose - the Java grammar the generator parses them with has no production for \u003ccode\u003einstanceof Type name\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe reworked classes declare their members in one consistent order: nested types, then the fields, then the constructor, then the instance methods, with the static factory methods last.\n\u003ccode\u003ePGCCContext.current ()\u003c/code\u003e, \u003ccode\u003ePGCCContext.reset ()\u003c/code\u003e and \u003ccode\u003eProcessState.getInstance ()\u003c/code\u003e moved to the end of their class, matching \u003ccode\u003eLookaheadState.current ()\u003c/code\u003e, and \u003ccode\u003eTokenizerData\u003c/code\u003e's three nested types moved above the fields whose types they are.\nPure reordering; no API and no behaviour change\u003c/li\u003e\n\u003cli\u003eGenerating a large lexer is around 3x faster.\nThe epsilon closure walked the whole state list twice per call purely to record which states a pass had visited, which is quadratic in the token count; the passes are numbered now and the walks are gone.\nOn a synthetic 1280 token grammar that loop ran 690 million times and was 70% of the run, and generation drops from 1344 ms to 413 ms.\nGenerated output is unchanged\u003c/li\u003e\n\u003cli\u003eEvery public and protected member of the generator carries javadoc now, and \u003ccode\u003emvn javadoc:javadoc\u003c/code\u003e reports no warnings.\nWriting it up turned up 16 members with no caller left and two option constants that were never registered, all removed.\n\u003ccode\u003eTOKEN_MANAGER_SUPERCLASS\u003c/code\u003e is documented as accepted and ignored - the option that works is \u003ccode\u003eTOKEN_MANAGER_SUPER_CLASS\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed the generated C++ token manager not compiling for a grammar with \u003ccode\u003e'\u003c/code\u003e or \u003ccode\u003e\\\u003c/code\u003e in a string literal.\nThe switch over the current character got \u003ccode\u003ecase ''':\u003c/code\u003e and \u003ccode\u003ecase '\\':\u003c/code\u003e, because only the Java backend escaped those two characters in a case label\u003c/li\u003e\n\u003cli\u003eFixed two token manager debug messages in the generated C++ running into the following line, and one being indented outside the \u003ccode\u003eif\u003c/code\u003e that guards it.\n\u003ccode\u003eDEBUG_TOKEN_MANAGER\u003c/code\u003e only\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBreaking API change\u003c/strong\u003e Replaced the internal \u003ccode\u003eEJDKVersion\u003c/code\u003e enum with \u003ccode\u003eEJavaVersion\u003c/code\u003e from ph-commons, so that \u003ccode\u003eJDK_VERSION\u003c/code\u003e values above 14 are supported.\n\u003ccode\u003eOptions.getJdkVersion ()\u003c/code\u003e returns \u003ccode\u003ecom.helger.base.system.EJavaVersion\u003c/code\u003e now\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePotentially breaking\u003c/strong\u003e The default value of \u003ccode\u003eJDK_VERSION\u003c/code\u003e moved from \u003ccode\u003e1.5\u003c/code\u003e to \u003ccode\u003e1.8\u003c/code\u003e, so that generated code uses the \u003ccode\u003eCharset\u003c/code\u003e based constructors and the diamond operator unless configured otherwise\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBreaking API change\u003c/strong\u003e \u003ccode\u003eLexGenJava\u003c/code\u003e, \u003ccode\u003eParseGenJava\u003c/code\u003e, \u003ccode\u003eLexGenCpp\u003c/code\u003e and \u003ccode\u003eParseGenCpp\u003c/code\u003e moved from \u003ccode\u003ecom.helger.pgcc.parser\u003c/code\u003e to \u003ccode\u003ecom.helger.pgcc.output.java\u003c/code\u003e and \u003ccode\u003ecom.helger.pgcc.output.cpp\u003c/code\u003e, so that the package says which target language a class writes.\n\u003ccode\u003ecom.helger.pgcc.parser\u003c/code\u003e no longer contains anything that writes a file\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBreaking API change\u003c/strong\u003e The generator state moved from static fields into \u003ccode\u003ecom.helger.pgcc.context.PGCCContext\u003c/code\u003e, one instance per run and per thread.\nThe old classes remain as facades, so \u003ccode\u003eOptions\u003c/code\u003e, \u003ccode\u003eJavaCCErrors\u003c/code\u003e and \u003ccode\u003eJavaCCGlobals\u003c/code\u003e are used exactly as before, but \u003ccode\u003eJavaCCGlobals\u003c/code\u003e exposes the grammar through \u003ccode\u003egrammar ()\u003c/code\u003e instead of public static fields.\nTwo generator runs can now happen at the same time in one JVM\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eJavaCCLauncher\u003c/code\u003e, \u003ccode\u003eJJTreeLauncher\u003c/code\u003e and \u003ccode\u003eJJDocLauncher\u003c/code\u003e as properly named command line entry points; the lower case \u003ccode\u003ejavacc\u003c/code\u003e, \u003ccode\u003ejjtree\u003c/code\u003e and \u003ccode\u003ejjdoc\u003c/code\u003e classes remain as deprecated aliases\u003c/li\u003e\n\u003cli\u003eFixed generated files never being rebuilt when regenerating into a directory that already contains them.\nThe checksum that decides this was computed before the writer had been flushed, so for anything but a very large file it was the checksum of nothing and never matched.\nHand edited files are still protected, as intended\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eJavaCCGlobals.getToolNames\u003c/code\u003e throwing a \u003ccode\u003eNullPointerException\u003c/code\u003e instead of returning an empty list when the file does not exist\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eJDK_VERSION\u003c/code\u003e values above 14 silently falling back to the default\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBreaking\u003c/strong\u003e Removed the undocumented and untested \u003ccode\u003eTOKEN_MANAGER_CODE_GENERATOR\u003c/code\u003e and \u003ccode\u003ePARSER_CODE_GENERATOR\u003c/code\u003e options together with the table driven token manager behind them\u003c/li\u003e\n\u003cli\u003eRemoved the dead \u003ccode\u003etest/\u003c/code\u003e (upstream Ant build) and \u003ccode\u003edocs/\u003c/code\u003e directories, and trimmed \u003ccode\u003ewww/doc/\u003c/code\u003e to the reference pages\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eOUTPUT_LANGUAGE\u003c/code\u003e (and every other option with an indirect effect) being ignored when set on the command line instead of in the grammar file\u003c/li\u003e\n\u003cli\u003eFixed the JJDoc \u003ccode\u003e-BNF\u003c/code\u003e output dropping every terminal from the productions, so that \u003ccode\u003e\u0026lt;NUMBER\u0026gt; ( \u0026lt;PLUS\u0026gt; \u0026lt;NUMBER\u0026gt; )* \u0026lt;EOF\u0026gt;\u003c/code\u003e was written as \u003ccode\u003e( )* \u0026lt;EOF\u0026gt;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed JJTree carrying node types from one run into the next when several grammars are processed in the same JVM, so that the second grammar's output contained the first grammar's node classes.\nThe C++ node files were affected most visibly\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eJavaCCInterpreter\u003c/code\u003e failing on the first character of any input for grammars with more than one character class token.\nThe composite state the tokenizer starts in had no entry in the \u003ccode\u003eTokenizerData\u003c/code\u003e, so the NFA was skipped entirely.\nOnly the interpreter is affected; generated code never used this path\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/phax/ParserGeneratorCC/commits/parser-generator-cc-3.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin:kotlin-gradle-plugin` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin:kotlin-gradle-plugin's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin:kotlin-gradle-plugin's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.tinylog:tinylog-api-kotlin` from 2.7.0 to 2.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tinylog-org/tinylog/releases\"\u003eorg.tinylog:tinylog-api-kotlin's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.8.0\u003c/h2\u003e\n\u003cp\u003eThe final release version 2.8.0 contains the same set of features as tinylog 2.8.0-M2 as no bugs were found.\u003c/p\u003e\n\u003ch2\u003eVersion 2.8.0-M2\u003c/h2\u003e\n\u003cp\u003eOutput suppressed exceptions when rendering throwables (\u003ca href=\"https://redirect.github.com/tinylog-org/tinylog/pull/910\"\u003etinylog-org/tinylog#910\u003c/a\u003e, thanks to \u003ca href=\"https://github.com/arimu1\"\u003e\u003ccode\u003e@​arimu1\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003eVersion 2.8.0-M1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd ability to output all keys and values in thread context (\u003ca href=\"https://redirect.github.com/tinylog-org/tinylog/pull/708\"\u003etinylog-org/tinylog#708\u003c/a\u003e, thanks to \u003ca href=\"https://github.com/rhanneken\"\u003e\u003ccode\u003e@​rhanneken\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSubstitute with isNullOrEmpty() call (\u003ca href=\"https://redirect.github.com/tinylog-org/tinylog/pull/678\"\u003etinylog-org/tinylog#678\u003c/a\u003e, thanks to \u003ca href=\"https://github.com/FourteenBrush\"\u003e\u003ccode\u003e@​FourteenBrush\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/a72fd10e54ad3e8c67fe25ca578faa5d81105417\"\u003e\u003ccode\u003ea72fd10\u003c/code\u003e\u003c/a\u003e Release version 2.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/41ec713b9508d47a8d4275d536c5eeac7615dee6\"\u003e\u003ccode\u003e41ec713\u003c/code\u003e\u003c/a\u003e Bump org.slf4j:slf4j-api from 2.0.18 to 2.0.19 (\u003ca href=\"https://redirect.github.com/tinylog-org/tinylog/issues/923\"\u003e#923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/cb8d0e7d25d2322c2c868407e0774302513800a7\"\u003e\u003ccode\u003ecb8d0e7\u003c/code\u003e\u003c/a\u003e Bump actions/setup-java from 5 to 6 (\u003ca href=\"https://redirect.github.com/tinylog-org/tinylog/issues/919\"\u003e#919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/832be3c457a01198760ac5421083fbf86bbdaf25\"\u003e\u003ccode\u003e832be3c\u003c/code\u003e\u003c/a\u003e Bump crazy-max/ghaction-import-gpg from 6 to 7 (\u003ca href=\"https://redirect.github.com/tinylog-org/tinylog/issues/913\"\u003e#913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/576d2dc8db633a3c6bf38160d25a37d005834ed6\"\u003e\u003ccode\u003e576d2dc\u003c/code\u003e\u003c/a\u003e Restore snapshot version 2.8-SNAPSHOT\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/17b903b205db18a57e73c11a3ed6136aa7152dfc\"\u003e\u003ccode\u003e17b903b\u003c/code\u003e\u003c/a\u003e Release version 2.8.0-M2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/183d67f1925ac50bad647f3ab2206bb63e21fbbe\"\u003e\u003ccode\u003e183d67f\u003c/code\u003e\u003c/a\u003e Downgrade p2-maven-plugin from 2.0.0 to 1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/29079a0fddecd25b162709ffbef977bc3a5cddae\"\u003e\u003ccode\u003e29079a0\u003c/code\u003e\u003c/a\u003e Migrate from nexus-staging-maven-plugin to central-publishing-maven-plugin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/7e5c9d8779e611feb40e53202d32b33a7afdff45\"\u003e\u003ccode\u003e7e5c9d8\u003c/code\u003e\u003c/a\u003e Fix Maven badge\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/117be3b76f0545f0d381770965bff9dfb4399cac\"\u003e\u003ccode\u003e117be3b\u003c/code\u003e\u003c/a\u003e Update copyright date\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tinylog-org/tinylog/compare/2.7.0...2.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.tinylog:tinylog-impl` from 2.7.0 to 2.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tinylog-org/tinylog/releases\"\u003eorg.tinylog:tinylog-impl's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.8.0\u003c/h2\u003e\n\u003cp\u003eThe final release version 2.8.0 contains the same set of features as tinylog 2.8.0-M2 as no bugs were found.\u003c/p\u003e\n\u003ch2\u003eVersion 2.8.0-M2\u003c/h2\u003e\n\u003cp\u003eOutput suppressed exceptions when rendering throwables (\u003ca href=\"https://redirect.github.com/tinylog-org/tinylog/pull/910\"\u003etinylog-org/tinylog#910\u003c/a\u003e, thanks to \u003ca href=\"https://github.com/arimu1\"\u003e\u003ccode\u003e@​arimu1\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003eVersion 2.8.0-M1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd ability to output all keys and values in thread context (\u003ca href=\"https://redirect.github.com/tinylog-org/tinylog/pull/708\"\u003etinylog-org/tinylog#708\u003c/a\u003e, thanks to \u003ca href=\"https://github.com/rhanneken\"\u003e\u003ccode\u003e@​rhanneken\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSubstitute with isNullOrEmpty() call (\u003ca href=\"https://redirect.github.com/tinylog-org/tinylog/pull/678\"\u003etinylog-org/tinylog#678\u003c/a\u003e, thanks to \u003ca href=\"https://github.com/FourteenBrush\"\u003e\u003ccode\u003e@​FourteenBrush\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/a72fd10e54ad3e8c67fe25ca578faa5d81105417\"\u003e\u003ccode\u003ea72fd10\u003c/code\u003e\u003c/a\u003e Release version 2.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/41ec713b9508d47a8d4275d536c5eeac7615dee6\"\u003e\u003ccode\u003e41ec713\u003c/code\u003e\u003c/a\u003e Bump org.slf4j:slf4j-api from 2.0.18 to 2.0.19 (\u003ca href=\"https://redirect.github.com/tinylog-org/tinylog/issues/923\"\u003e#923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/cb8d0e7d25d2322c2c868407e0774302513800a7\"\u003e\u003ccode\u003ecb8d0e7\u003c/code\u003e\u003c/a\u003e Bump actions/setup-java from 5 to 6 (\u003ca href=\"https://redirect.github.com/tinylog-org/tinylog/issues/919\"\u003e#919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/832be3c457a01198760ac5421083fbf86bbdaf25\"\u003e\u003ccode\u003e832be3c\u003c/code\u003e\u003c/a\u003e Bump crazy-max/ghaction-import-gpg from 6 to 7 (\u003ca href=\"https://redirect.github.com/tinylog-org/tinylog/issues/913\"\u003e#913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/576d2dc8db633a3c6bf38160d25a37d005834ed6\"\u003e\u003ccode\u003e576d2dc\u003c/code\u003e\u003c/a\u003e Restore snapshot version 2.8-SNAPSHOT\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/17b903b205db18a57e73c11a3ed6136aa7152dfc\"\u003e\u003ccode\u003e17b903b\u003c/code\u003e\u003c/a\u003e Release version 2.8.0-M2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/183d67f1925ac50bad647f3ab2206bb63e21fbbe\"\u003e\u003ccode\u003e183d67f\u003c/code\u003e\u003c/a\u003e Downgrade p2-maven-plugin from 2.0.0 to 1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/29079a0fddecd25b162709ffbef977bc3a5cddae\"\u003e\u003ccode\u003e29079a0\u003c/code\u003e\u003c/a\u003e Migrate from nexus-staging-maven-plugin to central-publishing-maven-plugin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/7e5c9d8779e611feb40e53202d32b33a7afdff45\"\u003e\u003ccode\u003e7e5c9d8\u003c/code\u003e\u003c/a\u003e Fix Maven badge\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/117be3b76f0545f0d381770965bff9dfb4399cac\"\u003e\u003ccode\u003e117be3b\u003c/code\u003e\u003c/a\u003e Update copyright date\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tinylog-org/tinylog/compare/2.7.0...2.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.tinylog:tinylog-api` from 2.8.0-M2 to 2.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tinylog-org/tinylog/releases\"\u003eorg.tinylog:tinylog-api's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.8.0\u003c/h2\u003e\n\u003cp\u003eThe final release version 2.8.0 contains the same set of features as tinylog 2.8.0-M2 as no bugs were found.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/a72fd10e54ad3e8c67fe25ca578faa5d81105417\"\u003e\u003ccode\u003ea72fd10\u003c/code\u003e\u003c/a\u003e Release version 2.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/41ec713b9508d47a8d4275d536c5eeac7615dee6\"\u003e\u003ccode\u003e41ec713\u003c/code\u003e\u003c/a\u003e Bump org.slf4j:slf4j-api from 2.0.18 to 2.0.19 (\u003ca href=\"https://redirect.github.com/tinylog-org/tinylog/issues/923\"\u003e#923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/cb8d0e7d25d2322c2c868407e0774302513800a7\"\u003e\u003ccode\u003ecb8d0e7\u003c/code\u003e\u003c/a\u003e Bump actions/setup-java from 5 to 6 (\u003ca href=\"https://redirect.github.com/tinylog-org/tinylog/issues/919\"\u003e#919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/832be3c457a01198760ac5421083fbf86bbdaf25\"\u003e\u003ccode\u003e832be3c\u003c/code\u003e\u003c/a\u003e Bump crazy-max/ghaction-import-gpg from 6 to 7 (\u003ca href=\"https://redirect.github.com/tinylog-org/tinylog/issues/913\"\u003e#913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/576d2dc8db633a3c6bf38160d25a37d005834ed6\"\u003e\u003ccode\u003e576d2dc\u003c/code\u003e\u003c/a\u003e Restore snapshot version 2.8-SNAPSHOT\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tinylog-org/tinylog/compare/2.8.0-M2...2.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.tinylog:tinylog-impl` from 2.7.0 to 2.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tinylog-org/tinylog/releases\"\u003eorg.tinylog:tinylog-impl's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.8.0\u003c/h2\u003e\n\u003cp\u003eThe final release version 2.8.0 contains the same set of features as tinylog 2.8.0-M2 as no bugs were found.\u003c/p\u003e\n\u003ch2\u003eVersion 2.8.0-M2\u003c/h2\u003e\n\u003cp\u003eOutput suppressed exceptions when rendering throwables (\u003ca href=\"https://redirect.github.com/tinylog-org/tinylog/pull/910\"\u003etinylog-org/tinylog#910\u003c/a\u003e, thanks to \u003ca href=\"https://github.com/arimu1\"\u003e\u003ccode\u003e@​arimu1\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003eVersion 2.8.0-M1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd ability to output all keys and values in thread context (\u003ca href=\"https://redirect.github.com/tinylog-org/tinylog/pull/708\"\u003etinylog-org/tinylog#708\u003c/a\u003e, thanks to \u003ca href=\"https://github.com/rhanneken\"\u003e\u003ccode\u003e@​rhanneken\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSubstitute with isNullOrEmpty() call (\u003ca href=\"https://redirect.github.com/tinylog-org/tinylog/pull/678\"\u003etinylog-org/tinylog#678\u003c/a\u003e, thanks to \u003ca href=\"https://github.com/FourteenBrush\"\u003e\u003ccode\u003e@​FourteenBrush\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/a72fd10e54ad3e8c67fe25ca578faa5d81105417\"\u003e\u003ccode\u003ea72fd10\u003c/code\u003e\u003c/a\u003e Release version 2.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/41ec713b9508d47a8d4275d536c5eeac7615dee6\"\u003e\u003ccode\u003e41ec713\u003c/code\u003e\u003c/a\u003e Bump org.slf4j:slf4j-api from 2.0.18 to 2.0.19 (\u003ca href=\"https://redirect.github.com/tinylog-org/tinylog/issues/923\"\u003e#923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/cb8d0e7d25d2322c2c868407e0774302513800a7\"\u003e\u003ccode\u003ecb8d0e7\u003c/code\u003e\u003c/a\u003e Bump actions/setup-java from 5 to 6 (\u003ca href=\"https://redirect.github.com/tinylog-org/tinylog/issues/919\"\u003e#919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/832be3c457a01198760ac5421083fbf86bbdaf25\"\u003e\u003ccode\u003e832be3c\u003c/code\u003e\u003c/a\u003e Bump crazy-max/ghaction-import-gpg from 6 to 7 (\u003ca href=\"https://redirect.github.com/tinylog-org/tinylog/issues/913\"\u003e#913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/576d2dc8db633a3c6bf38160d25a37d005834ed6\"\u003e\u003ccode\u003e576d2dc\u003c/code\u003e\u003c/a\u003e Restore snapshot version 2.8-SNAPSHOT\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/17b903b205db18a57e73c11a3ed6136aa7152dfc\"\u003e\u003ccode\u003e17b903b\u003c/code\u003e\u003c/a\u003e Release version 2.8.0-M2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/183d67f1925ac50bad647f3ab2206bb63e21fbbe\"\u003e\u003ccode\u003e183d67f\u003c/code\u003e\u003c/a\u003e Downgrade p2-maven-plugin from 2.0.0 to 1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/29079a0fddecd25b162709ffbef977bc3a5cddae\"\u003e\u003ccode\u003e29079a0\u003c/code\u003e\u003c/a\u003e Migrate from nexus-staging-maven-plugin to central-publishing-maven-plugin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/7e5c9d8779e611feb40e53202d32b33a7afdff45\"\u003e\u003ccode\u003e7e5c9d8\u003c/code\u003e\u003c/a\u003e Fix Maven badge\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/117be3b76f0545f0d381770965bff9dfb4399cac\"\u003e\u003ccode\u003e117be3b\u003c/code\u003e\u003c/a\u003e Update copyright date\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tinylog-org/tinylog/compare/2.7.0...2.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin:kotlin-gradle-plugin` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin:kotlin-gradle-plugin's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin:kotlin-gradle-plugin's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.jvm` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.jvm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.jvm's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.plugin.serialization` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.plugin.serialization's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light C...\n\n_Description has been truncated_","html_url":"https://github.com/jmltoolkit/jmltk/pull/66","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmltoolkit%2Fjmltk/issues/66","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/66/packages"},{"uuid":"5439146765","node_id":"PR_kwDORIzpkc8AAAABDUrjOg","number":308,"state":"open","title":"Android: Bump the android-dependencies group in /android with 20 updates","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-13T08:49:34.000Z","updated_at":"2026-09-13T09:11:21.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Android: Bump","group_name":"android-dependencies","update_count":20,"packages":[{"name":"gradle-wrapper","old_version":"9.4.1","new_version":"9.7.1","repository_url":"https://github.com/gradle/gradle"},{"name":"com.google.code.gson:gson","old_version":"2.11.0","new_version":"2.14.0","repository_url":"https://github.com/google/gson"},{"name":"androidx.core:core-ktx","old_version":"1.13.1","new_version":"1.19.0"},{"name":"androidx.test.ext:junit","old_version":"1.2.1","new_version":"1.3.0"},{"name":"androidx.test.espresso:espresso-core","old_version":"3.6.1","new_version":"3.7.0"},{"name":"androidx.compose:compose-bom","old_version":"2026.02.01","new_version":"2026.09.00"},{"name":"androidx.navigation:navigation-compose","old_version":"2.8.4","new_version":"2.10.1"},{"name":"androidx.security:security-crypto","old_version":"1.1.0-alpha06","new_version":"1.1.0"},{"name":"com.squareup.okhttp3:okhttp","old_version":"4.12.0","new_version":"5.5.0","repository_url":"https://github.com/lysine-dev/okhttp"},{"name":"org.jetbrains.kotlinx:kotlinx-serialization-json","old_version":"1.7.3","new_version":"1.11.0","repository_url":"https://github.com/Kotlin/kotlinx.serialization"},{"name":"org.jetbrains.kotlinx:kotlinx-coroutines-android","old_version":"1.9.0","new_version":"1.11.0","repository_url":"https://github.com/Kotlin/kotlinx.coroutines"},{"name":"org.jetbrains.kotlinx:kotlinx-coroutines-play-services","old_version":"1.9.0","new_version":"1.11.0","repository_url":"https://github.com/Kotlin/kotlinx.coroutines"},{"name":"com.google.android.gms:play-services-auth","old_version":"21.4.0","new_version":"22.0.0"},{"name":"com.patrykandpatrick.vico:compose-m3","old_version":"2.0.2","new_version":"3.3.1","repository_url":"https://github.com/patrykandpatrick/vico"},{"name":"androidx.core:core-splashscreen","old_version":"1.0.1","new_version":"1.2.0"},{"name":"androidx.browser:browser","old_version":"1.8.0","new_version":"1.10.0"},{"name":"com.google.ai.edge.litertlm:litertlm-android","old_version":"0.16.0","new_version":"0.17.0","repository_url":"https://github.com/google-ai-edge/LiteRT-LM"},{"name":"com.android.application","old_version":"9.2.0","new_version":"9.4.0"},{"name":"org.jetbrains.kotlin.plugin.compose","old_version":"2.2.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.2.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"}],"path":"/android","ecosystem":"maven"},"body":"Bumps the android-dependencies group in /android with 20 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [gradle-wrapper](https://github.com/gradle/gradle) | `9.4.1` | `9.7.1` |\n| [com.google.code.gson:gson](https://github.com/google/gson) | `2.11.0` | `2.14.0` |\n| androidx.core:core-ktx | `1.13.1` | `1.19.0` |\n| androidx.test.ext:junit | `1.2.1` | `1.3.0` |\n| androidx.test.espresso:espresso-core | `3.6.1` | `3.7.0` |\n| androidx.compose:compose-bom | `2026.02.01` | `2026.09.00` |\n| androidx.navigation:navigation-compose | `2.8.4` | `2.10.1` |\n| androidx.security:security-crypto | `1.1.0-alpha06` | `1.1.0` |\n| [com.squareup.okhttp3:okhttp](https://github.com/lysine-dev/okhttp) | `4.12.0` | `5.5.0` |\n| [org.jetbrains.kotlinx:kotlinx-serialization-json](https://github.com/Kotlin/kotlinx.serialization) | `1.7.3` | `1.11.0` |\n| [org.jetbrains.kotlinx:kotlinx-coroutines-android](https://github.com/Kotlin/kotlinx.coroutines) | `1.9.0` | `1.11.0` |\n| [org.jetbrains.kotlinx:kotlinx-coroutines-play-services](https://github.com/Kotlin/kotlinx.coroutines) | `1.9.0` | `1.11.0` |\n| com.google.android.gms:play-services-auth | `21.4.0` | `22.0.0` |\n| [com.patrykandpatrick.vico:compose-m3](https://github.com/patrykandpatrick/vico) | `2.0.2` | `3.3.1` |\n| androidx.core:core-splashscreen | `1.0.1` | `1.2.0` |\n| androidx.browser:browser | `1.8.0` | `1.10.0` |\n| [com.google.ai.edge.litertlm:litertlm-android](https://github.com/google-ai-edge/LiteRT-LM) | `0.16.0` | `0.17.0` |\n| com.android.application | `9.2.0` | `9.4.0` |\n| [org.jetbrains.kotlin.plugin.compose](https://github.com/JetBrains/kotlin) | `2.2.10` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.serialization](https://github.com/JetBrains/kotlin) | `2.2.10` | `2.4.20` |\n\nUpdates `gradle-wrapper` from 9.4.1 to 9.7.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gradle/gradle/releases\"\u003egradle-wrapper's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.7.1\u003c/h2\u003e\n\u003cp\u003eThe Gradle team is excited to announce Gradle 9.7.1.\u003c/p\u003e\n\u003cp\u003eThis is a patch release for 9.7.0. We recommend using 9.7.1 instead of 9.7.0.\u003c/p\u003e\n\u003cp\u003eHere are the highlights of 9.7.0 release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIsolated Projects graduates to incubating\u003c/li\u003e\n\u003cli\u003eBroader Configuration Cache compatibility\u003c/li\u003e\n\u003cli\u003eResilient Sync helps you fix broken builds\u003c/li\u003e\n\u003cli\u003eMore source locations in problem reports\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://docs.gradle.org/9.7.1/release-notes.html\"\u003eRead the Release Notes\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eWe would like to thank the following community members for their contributions to this release of Gradle:\n\u003ca href=\"https://github.com/aSemy\"\u003eAdam\u003c/a\u003e,\n\u003ca href=\"https://github.com/Gautam-aman\"\u003eAman Gautam\u003c/a\u003e,\n\u003ca href=\"https://github.com/YukiCodepth\"\u003eAman Kumar\u003c/a\u003e,\n\u003ca href=\"https://github.com/adubrouski\"\u003eAnton Dubrouski\u003c/a\u003e,\n\u003ca href=\"https://github.com/liutikas\"\u003eAurimas\u003c/a\u003e,\n\u003ca href=\"https://github.com/gbhavya07\"\u003egbhavya07\u003c/a\u003e,\n\u003ca href=\"https://github.com/joshfriend\"\u003eJosh Friend\u003c/a\u003e,\n\u003ca href=\"https://github.com/nicklauslittle-gov\"\u003enicklauslittle-gov\u003c/a\u003e,\n\u003ca href=\"https://github.com/psoni674\"\u003ePragati\u003c/a\u003e,\n\u003ca href=\"https://github.com/Project516\"\u003eproject516\u003c/a\u003e,\n\u003ca href=\"https://github.com/Uomocapra\"\u003eQin Mi\u003c/a\u003e,\n\u003ca href=\"https://github.com/rkdfx\"\u003eRavi\u003c/a\u003e,\n\u003ca href=\"https://github.com/sk-reddy17\"\u003esk-reddy17\u003c/a\u003e,\n\u003ca href=\"https://github.com/Suvrat1629\"\u003eSuvrat Acharya\u003c/a\u003e,\n\u003ca href=\"https://github.com/ShreckYe\"\u003eYongshun Ye\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eUpgrade instructions\u003c/h2\u003e\n\u003cp\u003eSwitch your build to use Gradle 9.7.1 by updating your wrapper:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e./gradlew :wrapper --gradle-version=9.7.1 \u0026amp;\u0026amp; ./gradlew :wrapper\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eSee the Gradle \u003ca href=\"https://docs.gradle.org/9.7.1/userguide/upgrading_version_9.html\"\u003e9.x upgrade guide\u003c/a\u003e to learn about deprecations, breaking changes and other considerations when upgrading.\u003c/p\u003e\n\u003cp\u003eFor Java, Groovy, Kotlin and Android compatibility, see the \u003ca href=\"https://docs.gradle.org/9.7.1/userguide/compatibility.html\"\u003efull compatibility notes\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eReporting problems\u003c/h2\u003e\n\u003cp\u003eIf you find a problem with this release, please file a bug on \u003ca href=\"https://github.com/gradle/gradle/issues\"\u003eGitHub Issues\u003c/a\u003e adhering to our issue guidelines.\nIf you're not sure you're encountering a bug, please use the \u003ca href=\"https://discuss.gradle.org/c/help-discuss\"\u003eforum\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eWe hope you will build happiness with Gradle, and we look forward to your feedback via \u003ca href=\"https://twitter.com/gradle\"\u003eTwitter\u003c/a\u003e or on \u003ca href=\"https://github.com/gradle\"\u003eGitHub\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003e9.7.0\u003c/h2\u003e\n\u003cp\u003eThe Gradle team is excited to announce Gradle 9.7.0.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/92f0512e7f06d84621afba191f75e265363890cf\"\u003e\u003ccode\u003e92f0512\u003c/code\u003e\u003c/a\u003e update fixed issues for 9.7.1 (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/38892\"\u003e#38892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/820ee75a99a179bbffa41bcedc6477b685fabb9f\"\u003e\u003ccode\u003e820ee75\u003c/code\u003e\u003c/a\u003e update fixed issues for 9.7.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/82c23f9bd2a89b4cc644e1f90a28a8668feb3dee\"\u003e\u003ccode\u003e82c23f9\u003c/code\u003e\u003c/a\u003e Fix annotation parameter ordering problem in KTS (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/38878\"\u003e#38878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/ef11a7268fe8cc8d6ab849ec911aa11220180553\"\u003e\u003ccode\u003eef11a72\u003c/code\u003e\u003c/a\u003e Fix annotation parameter ordering issue\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/bb0d8a974a71b1003efea41e4046e98855cd5ff8\"\u003e\u003ccode\u003ebb0d8a9\u003c/code\u003e\u003c/a\u003e Make relevant tests polyglot (run for multiple DSLs)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/336e129d7f95c03486acafc97abf59734acfed48\"\u003e\u003ccode\u003e336e129\u003c/code\u003e\u003c/a\u003e Update signing configuration (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/38874\"\u003e#38874\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/4bdf0da2dad9884d089a6062a45ea7183e7d735d\"\u003e\u003ccode\u003e4bdf0da\u003c/code\u003e\u003c/a\u003e Update signing configuration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/cd9b92c1b82856248cf1dc58b50378238bec7b52\"\u003e\u003ccode\u003ecd9b92c\u003c/code\u003e\u003c/a\u003e List issues resolved in 9.7.1 (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/38839\"\u003e#38839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/5f4e381964897ad8d6b99e5a7c77f26dba3259fb\"\u003e\u003ccode\u003e5f4e381\u003c/code\u003e\u003c/a\u003e List issues resolved in 9.7.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/1e08ab551367aeb5fb48b26e72807e1d2b27c939\"\u003e\u003ccode\u003e1e08ab5\u003c/code\u003e\u003c/a\u003e Keep type-use annotations in extracted ABI classes (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/38810\"\u003e#38810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gradle/gradle/compare/v9.4.1...v9.7.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.google.code.gson:gson` from 2.11.0 to 2.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/gson/releases\"\u003ecom.google.code.gson:gson's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eGson 2.14.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type adapters for \u003ccode\u003ejava.time\u003c/code\u003e classes by \u003ca href=\"https://github.com/eamonnmcmanus\"\u003e\u003ccode\u003e@​eamonnmcmanus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/google/gson/pull/2948\"\u003egoogle/gson#2948\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eWhen the \u003ccode\u003ejava.time\u003c/code\u003e API is available, Gson automatically can read and write instances of classes like \u003ccode\u003eInstant\u003c/code\u003e and \u003ccode\u003eDuration\u003c/code\u003e. The format it uses essentially freezes the JSON representation that \u003ccode\u003eReflectiveTypeAdapterFactory\u003c/code\u003e established by default, based on the private fields of \u003ccode\u003ejava.time\u003c/code\u003e classes. That's not a great representation, but it is understandable. Changing it to anything else would break compatibility with systems that are expecting the current format.\u003c/p\u003e\n\u003cp\u003eWith this change, Gson no longer tries to access private fields of these classes using reflection. So it is no longer necessary to run with \u003ccode\u003e--add-opens\u003c/code\u003e for these classes on recent JDKs.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove \u003ccode\u003ecom.google.gson.graph\u003c/code\u003e by \u003ca href=\"https://github.com/eamonnmcmanus\"\u003e\u003ccode\u003e@​eamonnmcmanus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/google/gson/pull/2990\"\u003egoogle/gson#2990\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis package was not part of any released artifact and depended on Gson internals in potentially problematic ways.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eValidate that strings being parsed as integers consist of ASCII characters by \u003ca href=\"https://github.com/eamonnmcmanus\"\u003e\u003ccode\u003e@​eamonnmcmanus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/google/gson/pull/2995\"\u003egoogle/gson#2995\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePreviously, strings could contain non-ASCII Unicode digits and still be parsed as integers. That's inconsistent with how JSON numbers are treated.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix duplicate key detection when first value is null by \u003ca href=\"https://github.com/andrewstellman\"\u003e\u003ccode\u003e@​andrewstellman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/google/gson/pull/3006\"\u003egoogle/gson#3006\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis could potentially break code that was relying on the incorrect behaviour. For example, this JSON string was previously accepted but will no longer be: \u003ccode\u003e{\u0026quot;foo\u0026quot;: null, \u0026quot;foo\u0026quot;: bar}\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove \u003ccode\u003eSerializable\u003c/code\u003e from internal \u003ccode\u003eType\u003c/code\u003e implementation classes. by \u003ca href=\"https://github.com/eamonnmcmanus\"\u003e\u003ccode\u003e@​eamonnmcmanus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/google/gson/pull/3011\"\u003egoogle/gson#3011\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe nested classes \u003ccode\u003eParameterizedTypeImpl\u003c/code\u003e, \u003ccode\u003eGenericArrayTypeImpl\u003c/code\u003e, and \u003ccode\u003eWildcardTypeImpl\u003c/code\u003e in \u003ccode\u003eGsonTypes\u003c/code\u003e are implementations of the corresponding types (without \u003ccode\u003eImpl\u003c/code\u003e) in \u003ccode\u003ejava.lang.reflect\u003c/code\u003e. For some reason, they were serializable, even though the \u003ccode\u003ejava.lang.reflect\u003c/code\u003e implementations are not. Having unnecessarily serializable classes could \u003cem\u003econceivably\u003c/em\u003e have been a security problem if they were part of a larger exploit using serialization. (We do not consider this a likely scenario and do not suggest that you need to update Gson just to get this change.)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eLegacyProtoTypeAdapterFactory\u003c/code\u003e. by \u003ca href=\"https://github.com/eamonnmcmanus\"\u003e\u003ccode\u003e@​eamonnmcmanus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/google/gson/pull/3014\"\u003egoogle/gson#3014\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is not part of any released artifact, but may be of use when trying to fix code that is currently accessing the internals of protobuf classes via reflection.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake AppendableWriter do flush and close if delegation object supports by \u003ca href=\"https://github.com/MukjepScarlet\"\u003e\u003ccode\u003e@​MukjepScarlet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/google/gson/pull/2925\"\u003egoogle/gson#2925\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther less visible changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd default capacity to EnumTypeAdapter maps by \u003ca href=\"https://github.com/MukjepScarlet\"\u003e\u003ccode\u003e@​MukjepScarlet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/google/gson/pull/2959\"\u003egoogle/gson#2959\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: move derived adapters from Gson to TypeAdapters by \u003ca href=\"https://github.com/MukjepScarlet\"\u003e\u003ccode\u003e@​MukjepScarlet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/google/gson/pull/2951\"\u003egoogle/gson#2951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003enew Gson()\u003c/code\u003e by \u003ca href=\"https://github.com/MukjepScarlet\"\u003e\u003ccode\u003e@​MukjepScarlet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/google/gson/pull/2864\"\u003egoogle/gson#2864\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ThirdGoddess\"\u003e\u003ccode\u003e@​ThirdGoddess\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/google/gson/pull/2944\"\u003egoogle/gson#2944\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lmj798\"\u003e\u003ccode\u003e@​lmj798\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/google/gson/pull/2988\"\u003egoogle/gson#2988\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Eng-YasminKotb\"\u003e\u003ccode\u003e@​Eng-YasminKotb\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/google/gson/pull/3005\"\u003egoogle/gson#3005\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/andrewstellman\"\u003e\u003ccode\u003e@​andrewstellman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/google/gson/pull/3006\"\u003egoogle/gson#3006\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/google/gson/compare/gson-parent-2.13.2...gson-parent-2.14.0\"\u003ehttps://github.com/google/gson/compare/gson-parent-2.13.2...gson-parent-2.14.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eGson 2.13.2\u003c/h2\u003e\n\u003cp\u003eThe main changes in this release are just newer dependencies.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/gson/commit/3ff35d6269894901ab8006258395aafc4b9765cd\"\u003e\u003ccode\u003e3ff35d6\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release gson-parent-2.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/gson/commit/a3024fde2a5c12b9a9a0b6b914ae4899aa574d81\"\u003e\u003ccode\u003ea3024fd\u003c/code\u003e\u003c/a\u003e Bump the maven group with 13 updates (\u003ca href=\"https://redirect.github.com/google/gson/issues/3002\"\u003e#3002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/gson/commit/5689ffe44952ca6ed44c595886b9043286311b23\"\u003e\u003ccode\u003e5689ffe\u003c/code\u003e\u003c/a\u003e Bump the github-actions group across 1 directory with 3 updates (\u003ca href=\"https://redirect.github.com/google/gson/issues/3018\"\u003e#3018\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/gson/commit/48db33cbf93af6b2f5b117dfdfd826de47f7229c\"\u003e\u003ccode\u003e48db33c\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eLegacyProtoTypeAdapterFactory\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/google/gson/issues/3014\"\u003e#3014\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/gson/commit/53d703ee76ca3e951fa4a727307c1f28dbcaf3aa\"\u003e\u003ccode\u003e53d703e\u003c/code\u003e\u003c/a\u003e Update outdated comment regarding serializable types (\u003ca href=\"https://redirect.github.com/google/gson/issues/3012\"\u003e#3012\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/gson/commit/0189b727761f31596d1a27b7c60b42478dc9f331\"\u003e\u003ccode\u003e0189b72\u003c/code\u003e\u003c/a\u003e Remove \u003ccode\u003eSerializable\u003c/code\u003e from internal \u003ccode\u003eType\u003c/code\u003e implementation classes. (\u003ca href=\"https://redirect.github.com/google/gson/issues/3011\"\u003e#3011\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/gson/commit/f4d371d29c04066dbe7fdb31f642831f9c7f40cd\"\u003e\u003ccode\u003ef4d371d\u003c/code\u003e\u003c/a\u003e Fix duplicate key detection when first value is null (\u003ca href=\"https://redirect.github.com/google/gson/issues/3006\"\u003e#3006\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/gson/commit/27d9ba1eeeeb156540cf5397504a4f9f256e911f\"\u003e\u003ccode\u003e27d9ba1\u003c/code\u003e\u003c/a\u003e Fix typo in README (JPMS dependencies section) (\u003ca href=\"https://redirect.github.com/google/gson/issues/3005\"\u003e#3005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/gson/commit/1fa9b7a0a994b006b3be00e2df9de778e71e6807\"\u003e\u003ccode\u003e1fa9b7a\u003c/code\u003e\u003c/a\u003e Validate that strings being parsed as integers consist of ASCII characters (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/gson/commit/b7d59549188867deb42e46073fb38735a5beda1c\"\u003e\u003ccode\u003eb7d5954\u003c/code\u003e\u003c/a\u003e Add iterator fail-fast tests for LinkedTreeMap.clear() (\u003ca href=\"https://redirect.github.com/google/gson/issues/2992\"\u003e#2992\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/gson/compare/gson-parent-2.11.0...gson-parent-2.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `androidx.core:core-ktx` from 1.13.1 to 1.19.0\n\nUpdates `androidx.test.ext:junit` from 1.2.1 to 1.3.0\n\nUpdates `androidx.test.espresso:espresso-core` from 3.6.1 to 3.7.0\n\nUpdates `androidx.compose:compose-bom` from 2026.02.01 to 2026.09.00\n\nUpdates `androidx.navigation:navigation-compose` from 2.8.4 to 2.10.1\n\nUpdates `androidx.security:security-crypto` from 1.1.0-alpha06 to 1.1.0\n\nUpdates `com.squareup.okhttp3:okhttp` from 4.12.0 to 5.5.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lysine-dev/okhttp/blob/main/CHANGELOG.md\"\u003ecom.squareup.okhttp3:okhttp's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 5.5.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2026-08-16\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eThis release introduces \u003cstrong\u003eopt-in\u003c/strong\u003e support for [Encrypted Client Hello (ECH)]. This new feature\nimproves user privacy by encrypting domain names in transit. With regular TLS, your coffee shop’s\nWi-Fi router can see that you’re visiting \u003cem\u003ewikipedia.com\u003c/em\u003e, but it cannot see which page you’re\nlooking at. With ECH, the router observes only the IP address. This additional privacy is most\neffective on sites hosted by big CDNs because the IP address doesn’t imply a particular website.\u003c/p\u003e\n\u003cp\u003eThis requires ECH support in the platform’s TLS stack. Today this is only Android 17 (API 37,\nreleased June 2026). When other TLS stacks add ECH support, we'll integrate them.\u003c/p\u003e\n\u003cp\u003eECH took a lot of work to implement because the encryption keys are published over DNS in the\n[HTTPS resource record], and we needed to write new code to fetch these records. This release\nincludes a major update to OkHttp’s DNS API: it now supports multiple resource record types (not\njust IP addresses!), asynchronous streaming results, and in-memory caching.\u003c/p\u003e\n\u003cp\u003eTo opt in, you can use \u003ccode\u003eDnsOverHttps\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"kotlin\"\u003e\u003ccode\u003e// DnsOverHttps itself uses OkHttpClient. Build both clients upon the\n// same bootstrap client so they share a connection pool and dispatcher.\nval bootstrapClient = OkHttpClient()\n\u003cp\u003e// This sample uses Cloudflare's 1.1.1.1 DnsOverHttps service.\nval client = bootstrapClient.newBuilder()\n.dns(DnsOverHttps.Builder()\n.client(bootstrapClient)\n.url(\u0026quot;\u003ca href=\"https://1.1.1.1/dns-query\u0026amp;quot;.toHttpUrl()\"\u003ehttps://1.1.1.1/dns-query\u0026amp;quot;.toHttpUrl()\u003c/a\u003e)\n.build())\n.build()\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eYou could also opt in with our new \u003ccode\u003eAndroidDns\u003c/code\u003e API. Unfortunately, the privacy benefits of ECH are\nthwarted because its DNS queries are not encrypted by default.\u003c/p\u003e\n\u003cpre lang=\"kotlin\"\u003e\u003ccode\u003e// AndroidDns fetches the HTTPS DNS resource records necessary for ECH.\nval client = OkHttpClient.Builder()\n  .dns(AndroidDns())\n  .build()\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003eNew: OkHttp artifacts are now signed with our [new signing key]. This project and three sibling\nprojects ([Retrofit], [Okio], and [SQLDelight]) recently joined [the Commonhaus Foundation].\u003c/li\u003e\n\u003cli\u003eFix: MockWebServer’s \u003ccode\u003e@StartStop\u003c/code\u003e annotation now supports \u003ccode\u003e@Nested\u003c/code\u003e JUnit 5 tests.\u003c/li\u003e\n\u003cli\u003eFix: Our default TLS hostname verifier now reject hosts that fail IP canonicalization.\u003c/li\u003e\n\u003cli\u003eFix: Closing a multipart part's sink no longer closes the entire request body.\u003c/li\u003e\n\u003cli\u003eFix: Flush HTTP/1 request bodies before detaching the timeout. We had a bug where timeouts\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysine-dev/okhttp/commit/a94bdf152084d11acecd44dcd09ffef203f4f0aa\"\u003e\u003ccode\u003ea94bdf1\u003c/code\u003e\u003c/a\u003e Prepare for release 5.5.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysine-dev/okhttp/commit/ecc3b05adfe6b2607b8ec251562c2cccf7c1923a\"\u003e\u003ccode\u003eecc3b05\u003c/code\u003e\u003c/a\u003e Use a fixed size for DoH request body (\u003ca href=\"https://redirect.github.com/lysine-dev/okhttp/issues/9687\"\u003e#9687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysine-dev/okhttp/commit/9926082660dfa6f1cc848c6f465cf5ccb998e415\"\u003e\u003ccode\u003e9926082\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Use a fixed size for DoH request body\u0026quot; (\u003ca href=\"https://redirect.github.com/lysine-dev/okhttp/issues/9686\"\u003e#9686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysine-dev/okhttp/commit/0070c2e7b4c162ee03abf1c88fd94083e94697f4\"\u003e\u003ccode\u003e0070c2e\u003c/code\u003e\u003c/a\u003e Use a fixed size for DoH request body\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysine-dev/okhttp/commit/15764539c69842dad607462f102a2507223dbfe7\"\u003e\u003ccode\u003e1576453\u003c/code\u003e\u003c/a\u003e Order ServiceMetadata records per the spec (\u003ca href=\"https://redirect.github.com/lysine-dev/okhttp/issues/9683\"\u003e#9683\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysine-dev/okhttp/commit/fb582e976a9a82d691342a4d57b3c72208ce416c\"\u003e\u003ccode\u003efb582e9\u003c/code\u003e\u003c/a\u003e Flip wiring of Dns.SYSTEM (\u003ca href=\"https://redirect.github.com/lysine-dev/okhttp/issues/9682\"\u003e#9682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysine-dev/okhttp/commit/4e884abb1a207c321acffb070c476acb4b89fa3f\"\u003e\u003ccode\u003e4e884ab\u003c/code\u003e\u003c/a\u003e retryOnConnectionFailure doesn't impact ECH retries (\u003ca href=\"https://redirect.github.com/lysine-dev/okhttp/issues/9681\"\u003e#9681\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysine-dev/okhttp/commit/0433cee8131b63fa2c0634fa2f9b3a01f9a8b1f3\"\u003e\u003ccode\u003e0433cee\u003c/code\u003e\u003c/a\u003e Only one contributing.md doc (\u003ca href=\"https://redirect.github.com/lysine-dev/okhttp/issues/9678\"\u003e#9678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysine-dev/okhttp/commit/a2cf5aa9f8711dabe514871e9dc4a9336a0e403f\"\u003e\u003ccode\u003ea2cf5aa\u003c/code\u003e\u003c/a\u003e Don't recover after an ECH public_name fails to verify (\u003ca href=\"https://redirect.github.com/lysine-dev/okhttp/issues/9680\"\u003e#9680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysine-dev/okhttp/commit/5410de9760bce8719129c3d08eb19e5bace75f6e\"\u003e\u003ccode\u003e5410de9\u003c/code\u003e\u003c/a\u003e Test ECH + HTTP proxy (\u003ca href=\"https://redirect.github.com/lysine-dev/okhttp/issues/9671\"\u003e#9671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lysine-dev/okhttp/compare/parent-4.12.0...parent-5.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlinx:kotlinx-serialization-json` from 1.7.3 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/releases\"\u003eorg.jetbrains.kotlinx:kotlinx-serialization-json's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.11.0\u003c/h2\u003e\n\u003cp\u003eThis release is based on Kotlin 2.3.20 and provides a new Json exceptions API and some bugfixes and improvements.\u003c/p\u003e\n\u003ch2\u003eExpose Json exceptions structure\u003c/h2\u003e\n\u003cp\u003eTo make working with exceptions easier and providing proper error codes in e.g., REST APIs,\nclasses \u003ccode\u003eJsonException\u003c/code\u003e, \u003ccode\u003eJsonDecodingException\u003c/code\u003e, and \u003ccode\u003eJsonEncodingException\u003c/code\u003e are now public.\nThey have relevant public properties, such as \u003ccode\u003eshortMessage\u003c/code\u003e, \u003ccode\u003epath\u003c/code\u003e, \u003ccode\u003eoffset\u003c/code\u003e, and others.\nThis API is currently experimental, and we're going to improve it further in the subsequent releases.\nSee the linked issues for the details: \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/1930\"\u003e#1930\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/1877\"\u003e#1877\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eAbility to hide user input from exception messages for security/privacy reasons.\u003c/h2\u003e\n\u003cp\u003eHistorically, exception messages in kotlinx.serialization often included the input Json itself for debuggability reason.\nSuch behavior may pose additional challenges for logging, analytics, and other systems, since\na system is not always allowed to store user data due to privacy/security reasons, which imposes additional sanitation logic.\nTo address this issue, a new property \u003ccode\u003eexceptionsWithDebugInfo\u003c/code\u003e is added to \u003ccode\u003eJsonConfiguration\u003c/code\u003e.\nDisable it to hide user input from exception messages.\nIMPORTANT: This behavior will be enabled by default when this property becomes stable.\nSee \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/2590\"\u003e#2590\u003c/a\u003e for more details.\u003c/p\u003e\n\u003ch2\u003eBugfixes and improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCBOR: Relax value range check when decoding numbers (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3167\"\u003e#3167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse a specialized writeDecimalLong method for IO stream integrations in Json (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3152\"\u003e#3152\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.10.0\u003c/h2\u003e\n\u003cp\u003eThis release is based on Kotlin 2.3.0 and contains all of the changes from 1.10.0-RC.\nThe only additional change is a fix for ProtoBuf packing of Kotlin unsigned types (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3079\"\u003e#3079\u003c/a\u003e).\nBig thanks to \u003ca href=\"https://github.com/KosmX\"\u003eKosmX\u003c/a\u003e for contributing the fix.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eFor your convenience, the changelog for 1.10.0-RC is duplicated below:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eStabilization of APIs\u003c/h2\u003e\n\u003cp\u003ekotlinx-serialization 1.10 and subsequent releases will be focused on stabilization of existing APIs.\nThe following APIs and configuration options are no longer experimental because they're widely used without any known major issues:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eJson\u003c/code\u003e configuration options: \u003ccode\u003edecodeEnumsCaseInsensitive\u003c/code\u003e, \u003ccode\u003eallowTrailingComma\u003c/code\u003e, \u003ccode\u003eallowComments\u003c/code\u003e, and \u003ccode\u003eprettyPrintIndent\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3100\"\u003e#3100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@EncodeDefault\u003c/code\u003e annotation and its modes. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3106\"\u003e#3106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eJsonUnquotedLiteral\u003c/code\u003e constructor function (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/2900\"\u003e#2900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eJsonPrimitive\u003c/code\u003e constructor function overloads that accept unsigned types. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3117\"\u003e#3117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eJSON DSL functions on \u003ccode\u003eJsonElement\u003c/code\u003e with \u003ccode\u003eNothing?\u003c/code\u003e overloads. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3117\"\u003e#3117\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eReadiness for return value checker\u003c/h2\u003e\n\u003cp\u003eKotlin 2.3.0 \u003ca href=\"https://kotlinlang.org/docs/whatsnew23.html#unused-return-value-checker\"\u003eintroduces a new feature\u003c/a\u003e aimed at helping you to catch bugs related to the accidentally ignored return value of the function.\nkotlinx-serialization 1.10.0-RC code is fully marked for this feature, meaning that you can get warnings for unused function calls like \u003ccode\u003eJson.encodeToString(...)\u003c/code\u003e. To get the warnings, the feature has to be enabled in your project as \u003ca href=\"https://kotlinlang.org/docs/unused-return-value-checker.html#configure-the-unused-return-value-checker\"\u003edescribed here\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003ePolymorphism improvements\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/blob/master/CHANGELOG.md\"\u003eorg.jetbrains.kotlinx:kotlinx-serialization-json's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.11.0 / 2026-04-10\u003c/h1\u003e\n\u003cp\u003eThis release is based on Kotlin 2.3.20 and provides new Json exceptions API and some bugfixes and improvements.\u003c/p\u003e\n\u003ch2\u003eExpose Json exceptions structure\u003c/h2\u003e\n\u003cp\u003eTo make working with exceptions easier and providing proper error codes in e.g., REST APIs,\nclasses \u003ccode\u003eJsonException\u003c/code\u003e, \u003ccode\u003eJsonDecodingException\u003c/code\u003e, and \u003ccode\u003eJsonEncodingException\u003c/code\u003e are now public.\nThey have relevant public properties, such as \u003ccode\u003eshortMessage\u003c/code\u003e, \u003ccode\u003epath\u003c/code\u003e, \u003ccode\u003eoffset\u003c/code\u003e, and others.\nThis API is currently experimental, and we're going to improve it further in the subsequent releases.\nSee the linked issues for the details: \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/1930\"\u003e#1930\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/1877\"\u003e#1877\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eAbility to hide user input from exception messages for security/privacy reasons.\u003c/h2\u003e\n\u003cp\u003eHistorically, exception messages in kotlinx.serialization often included the input Json itself for debuggability reason.\nSuch behavior may pose additional challenges for logging, analytics, and other systems, since\na system is not always allowed to store user data due to privacy/security reasons, which imposes additional sanitation logic.\nTo address this issue, a new property \u003ccode\u003eexceptionsWithDebugInfo\u003c/code\u003e is added to \u003ccode\u003eJsonConfiguration\u003c/code\u003e.\nDisable it to hide user input from exception messages.\nIMPORTANT: This behavior will be enabled by default when this property becomes stable.\nSee \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/2590\"\u003e#2590\u003c/a\u003e for more details.\u003c/p\u003e\n\u003ch2\u003eBugfixes and improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCBOR: Relax value range check when decoding numbers (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3167\"\u003e#3167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse a specialized writeDecimalLong method for IO stream integrations in Json (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3152\"\u003e#3152\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.10.0 / 2026-01-21\u003c/h1\u003e\n\u003cp\u003eThis release is based on Kotlin 2.3.0 and contains all of the changes from 1.10.0-RC.\nThe only additional change is a fix for ProtoBuf packing of Kotlin unsigned types (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3079\"\u003e#3079\u003c/a\u003e).\nBig thanks to \u003ca href=\"https://github.com/KosmX\"\u003eKosmX\u003c/a\u003e for contributing the fix.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eFor your convenience, the changelog for 1.10.0-RC is duplicated below:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eStabilization of APIs\u003c/h2\u003e\n\u003cp\u003ekotlinx-serialization 1.10 and subsequent releases will be focused on stabilization of existing APIs.\nThe following APIs and configuration options are no longer experimental because they're widely used without any known major issues:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eJson\u003c/code\u003e configuration options: \u003ccode\u003edecodeEnumsCaseInsensitive\u003c/code\u003e, \u003ccode\u003eallowTrailingComma\u003c/code\u003e, \u003ccode\u003eallowComments\u003c/code\u003e, and \u003ccode\u003eprettyPrintIndent\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3100\"\u003e#3100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@EncodeDefault\u003c/code\u003e annotation and its modes. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3106\"\u003e#3106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eJsonUnquotedLiteral\u003c/code\u003e constructor function (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/2900\"\u003e#2900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eJsonPrimitive\u003c/code\u003e constructor function overloads that accept unsigned types. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3117\"\u003e#3117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eJSON DSL functions on \u003ccode\u003eJsonElement\u003c/code\u003e with \u003ccode\u003eNothing?\u003c/code\u003e overloads. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3117\"\u003e#3117\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eReadiness for return value checker\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/6956af2e6073347c7832c3c5b374fa3b5a345956\"\u003e\u003ccode\u003e6956af2\u003c/code\u003e\u003c/a\u003e Prepare 1.11 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/390d84c68a19cbf7fa453dec22a333648bde49b4\"\u003e\u003ccode\u003e390d84c\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into dev\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/431fe2dc0a144300b33038820d24fc30302c8abc\"\u003e\u003ccode\u003e431fe2d\u003c/code\u003e\u003c/a\u003e Use local repo for publishing (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3171\"\u003e#3171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/05c12b60a6717b99053fb82e1f94d2f859727374\"\u003e\u003ccode\u003e05c12b6\u003c/code\u003e\u003c/a\u003e Add usage attribute to \u0026quot;testRepositories\u0026quot; configuration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/a4e1f082ef2e72caa139b474c05657de6015da20\"\u003e\u003ccode\u003ea4e1f08\u003c/code\u003e\u003c/a\u003e Bump Kover version to 0.9.8 release (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3174\"\u003e#3174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/304e858ccc7066854637d86ab80056f5f2bcc094\"\u003e\u003ccode\u003e304e858\u003c/code\u003e\u003c/a\u003e Expose Json exceptions structure (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3145\"\u003e#3145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/4a0338ef5093d765138151bc30282e909ca459e4\"\u003e\u003ccode\u003e4a0338e\u003c/code\u003e\u003c/a\u003e Included G Play SDK verification file for core-jvm (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3169\"\u003e#3169\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/421f64c74f0ea6d4a3cdc8dd483505366e3f6c8f\"\u003e\u003ccode\u003e421f64c\u003c/code\u003e\u003c/a\u003e CBOR: Relax value range check when decoding numbers (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3167\"\u003e#3167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/85a4f126ec491c77e2b3686cc22c1bae27a20783\"\u003e\u003ccode\u003e85a4f12\u003c/code\u003e\u003c/a\u003e KT-84955: mark apple x64 tagets as deprecated error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/bd38b0e49bce38d1a55576e89856bc63990167ed\"\u003e\u003ccode\u003ebd38b0e\u003c/code\u003e\u003c/a\u003e Remove dead code\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/compare/v1.7.3...v1.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlinx:kotlinx-coroutines-android` from 1.9.0 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/releases\"\u003eorg.jetbrains.kotlinx:kotlinx-coroutines-android's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.11.0\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003ePromise\u003c/code\u003e-related functions from JS and Wasm/JS to the new \u003ccode\u003eweb\u003c/code\u003e target. On Wasm/JS, this is a breaking change. Before the change, \u003ccode\u003ePromise\u003c/code\u003e on Wasm/JS could work with arbitrary Kotlin types, but now, only \u003ccode\u003eJsAny\u003c/code\u003e subtypes are accepted (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4563\"\u003e#4563\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eChanged handling of coroutine exceptions that can't be propagated on JS and Wasm/JS. B\nefore, exceptions were logged, but now, they are reported to the JS runtime (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4451\"\u003e#4451\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4631\"\u003e#4631\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeprecated using \u003ccode\u003eCoroutineDispatcher\u003c/code\u003e as the coroutine context key; now, \u003ccode\u003eContinuationInterceptor\u003c/code\u003e has to be used instead (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4333\"\u003e#4333\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdvanced the deprecation levels on \u003ccode\u003ekotlinx-coroutines-test\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4604\"\u003e#4604\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded lint functions that mark passing a \u003ccode\u003eJob\u003c/code\u003e to coroutine builders as deprecated (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4435\"\u003e#4435\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003erunBlocking\u003c/code\u003e in code shared between JVM and Native (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4368\"\u003e#4368\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003esuspendCancellableCoroutine\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4574\"\u003e#4574\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eflowOn\u003c/code\u003e incorrectly handling \u003ccode\u003eThreadContextElement\u003c/code\u003e updates (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4403\"\u003e#4403\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed exceptions in user-supplied \u003ccode\u003eThread.UncaughtExceptionHandler\u003c/code\u003e instances causing the internal coroutines machinery to fail (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4516\"\u003e#4516\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCoroutineDispatcher.asScheduler\u003c/code\u003e in the RxJava integration not cancelling outstanding work when a \u003ccode\u003eWorker\u003c/code\u003e gets cancelled, which led to memory leaks in some scenarios (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4615\"\u003e#4615\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSharedFlow\u003c/code\u003e entering an invalid state when a subscriber and an emitter are cancelled simultaneously (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4583\"\u003e#4583\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed an R8 optimization leading to \u003ccode\u003eshareIn\u003c/code\u003e/\u003ccode\u003estateIn\u003c/code\u003e coroutines getting garbage-collected (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4646\"\u003e#4646\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/solevic\"\u003e\u003ccode\u003e@​solevic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSmall additions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eCompletableDeferred.asDeferred\u003c/code\u003e for obtaining a read-only \u003ccode\u003eDeferred\u003c/code\u003e view (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4408\"\u003e#4408\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSharedFlow.asFlow\u003c/code\u003e for obtaining a \u003ccode\u003eFlow\u003c/code\u003e view with hidden hot flow semantics (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4530\"\u003e#4530\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/g000sha256\"\u003e\u003ccode\u003e@​g000sha256\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow.collectLatest\u003c/code\u003e overload returning \u003ccode\u003eNothing\u003c/code\u003e to assist with finding unreachable code (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4454\"\u003e#4454\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eReceiveChannel.consumeTo\u003c/code\u003e for consuming a \u003ccode\u003eReceiveChannel\u003c/code\u003e into a \u003ccode\u003eMutableCollection\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4520\"\u003e#4520\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e overload returning a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;\u003c/code\u003e, similar to \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e returning \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4275\"\u003e#4275\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/xit0c\"\u003e\u003ccode\u003e@​xit0c\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded terminal \u003ccode\u003eFlow\u003c/code\u003e operators for collecting a \u003ccode\u003eFlow\u003c/code\u003e to a \u003ccode\u003eMap\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/1541\"\u003e#1541\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog relative to version 1.11.0\u003c/h3\u003e\n\u003cp\u003eNo changes, only the version is increased.\u003c/p\u003e\n\u003ch2\u003e1.11.0-rc02\u003c/h2\u003e\n\u003cp\u003eRestored binary compatibility with 1.10.2 and older versions on Wasm/JS for usages of \u003ccode\u003ePromise\u003c/code\u003e-related functions (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003e1.11.0-rc01\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/blob/master/CHANGES.md\"\u003eorg.jetbrains.kotlinx:kotlinx-coroutines-android's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.11.0\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003ePromise\u003c/code\u003e-related functions from JS and Wasm/JS to the new \u003ccode\u003eweb\u003c/code\u003e target. On Wasm/JS, this is a breaking change. Before the change, \u003ccode\u003ePromise\u003c/code\u003e on Wasm/JS could work with arbitrary Kotlin types, but now, only \u003ccode\u003eJsAny\u003c/code\u003e subtypes are accepted (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4563\"\u003e#4563\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eChanged handling of coroutine exceptions that can't be propagated on JS and Wasm/JS. Before, exceptions were logged, but now, they are reported to the JS runtime (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4451\"\u003e#4451\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4631\"\u003e#4631\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeprecated using \u003ccode\u003eCoroutineDispatcher\u003c/code\u003e as the coroutine context key; now, \u003ccode\u003eContinuationInterceptor\u003c/code\u003e has to be used instead (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4333\"\u003e#4333\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdvanced the deprecation levels on \u003ccode\u003ekotlinx-coroutines-test\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4604\"\u003e#4604\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded lint functions that mark passing a \u003ccode\u003eJob\u003c/code\u003e to coroutine builders as deprecated (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4435\"\u003e#4435\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003erunBlocking\u003c/code\u003e in code shared between JVM and Native (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4368\"\u003e#4368\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003esuspendCancellableCoroutine\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4574\"\u003e#4574\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eflowOn\u003c/code\u003e incorrectly handling \u003ccode\u003eThreadContextElement\u003c/code\u003e updates (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4403\"\u003e#4403\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed exceptions in user-supplied \u003ccode\u003eThread.UncaughtExceptionHandler\u003c/code\u003e instances causing the internal coroutines machinery to fail (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4516\"\u003e#4516\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCoroutineDispatcher.asScheduler\u003c/code\u003e in the RxJava integration not cancelling outstanding work when a \u003ccode\u003eWorker\u003c/code\u003e gets cancelled, which led to memory leaks in some scenarios (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4615\"\u003e#4615\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSharedFlow\u003c/code\u003e entering an invalid state when a subscriber and an emitter are cancelled simultaneously (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4583\"\u003e#4583\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed an R8 optimization leading to \u003ccode\u003eshareIn\u003c/code\u003e/\u003ccode\u003estateIn\u003c/code\u003e coroutines getting garbage-collected (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4646\"\u003e#4646\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/solevic\"\u003e\u003ccode\u003e@​solevic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSmall additions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eCompletableDeferred.asDeferred\u003c/code\u003e for obtaining a read-only \u003ccode\u003eDeferred\u003c/code\u003e view (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4408\"\u003e#4408\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSharedFlow.asFlow\u003c/code\u003e for obtaining a \u003ccode\u003eFlow\u003c/code\u003e view with hidden hot flow semantics (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4530\"\u003e#4530\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/g000sha256\"\u003e\u003ccode\u003e@​g000sha256\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow.collectLatest\u003c/code\u003e overload returning \u003ccode\u003eNothing\u003c/code\u003e to assist with finding unreachable code (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4454\"\u003e#4454\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eReceiveChannel.consumeTo\u003c/code\u003e for consuming a \u003ccode\u003eReceiveChannel\u003c/code\u003e into a \u003ccode\u003eMutableCollection\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4520\"\u003e#4520\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e overload returning a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;\u003c/code\u003e, similar to \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e returning \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4275\"\u003e#4275\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/xit0c\"\u003e\u003ccode\u003e@​xit0c\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded terminal \u003ccode\u003eFlow\u003c/code\u003e operators for collecting a \u003ccode\u003eFlow\u003c/code\u003e to a \u003ccode\u003eMap\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/1541\"\u003e#1541\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog relative to version 1.11.0\u003c/h3\u003e\n\u003cp\u003eNo changes, only the version is increased.\u003c/p\u003e\n\u003ch2\u003eVersion 1.11.0-rc02\u003c/h2\u003e\n\u003cp\u003eRestored binary compatibility with 1.10.2 and older versions on Wasm/JS for usages of \u003ccode\u003ePromise\u003c/code\u003e-related functions (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eVersion 1.11.0-rc01\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/8564f65764d3d05893cec026c6e94250e2b23874\"\u003e\u003ccode\u003e8564f65\u003c/code\u003e\u003c/a\u003e Version 1.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/a4c6af96c15fe30f5d4e8b810ea74f8babd5805c\"\u003e\u003ccode\u003ea4c6af9\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/ef917b460aa741691fbf991ee1b813049cae18c9\"\u003e\u003ccode\u003eef917b4\u003c/code\u003e\u003c/a\u003e KT-84955: mark apple x64 tagets as deprecated error (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/5ebc421e341bf2ddce734d369da87df1985e80bd\"\u003e\u003ccode\u003e5ebc421\u003c/code\u003e\u003c/a\u003e Update the release procedure description (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4670\"\u003e#4670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/95f46a073bc4a1230352108cea1835fd22219a80\"\u003e\u003ccode\u003e95f46a0\u003c/code\u003e\u003c/a\u003e Remove old maven repository settings (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4672\"\u003e#4672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/b4f4f0aa6acb692f3fbcadd70e4958e3e9d370fc\"\u003e\u003ccode\u003eb4f4f0a\u003c/code\u003e\u003c/a\u003e Fix package name of \u003ccode\u003eToMapCollectionSamplesTest\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4674\"\u003e#4674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/86738dca7dc9ac82249abc8206263fa0065ee631\"\u003e\u003ccode\u003e86738dc\u003c/code\u003e\u003c/a\u003e Added templates to the issue creation wizard (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4654\"\u003e#4654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/330fcc221fb583f0b119f34191f735a73b827378\"\u003e\u003ccode\u003e330fcc2\u003c/code\u003e\u003c/a\u003e Version 1.11.0-rc02\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/e31cef6e9f2d26794be7d75ecbf3033b6432d582\"\u003e\u003ccode\u003ee31cef6\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/dc6e9f61eaf3a67f4bf474a7987aedc3f16cef37\"\u003e\u003ccode\u003edc6e9f6\u003c/code\u003e\u003c/a\u003e Restore Promise-related functions on Wasm/JS as HIDDEN (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/compare/1.9.0...1.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlinx:kotlinx-coroutines-play-services` from 1.9.0 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/releases\"\u003eorg.jetbrains.kotlinx:kotlinx-coroutines-play-services's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.11.0\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003ePromise\u003c/code\u003e-related functions from JS and Wasm/JS to the new \u003ccode\u003eweb\u003c/code\u003e target. On Wasm/JS, this is a breaking change. Before the change, \u003ccode\u003ePromise\u003c/code\u003e on Wasm/JS could work with arbitrary Kotlin types, but now, only \u003ccode\u003eJsAny\u003c/code\u003e subtypes are accepted (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4563\"\u003e#4563\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eChanged handling of coroutine exceptions that can't be propagated on JS and Wasm/JS. B\nefore, exceptions were logged, but now, they are reported to the JS runtime (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4451\"\u003e#4451\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4631\"\u003e#4631\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeprecated using \u003ccode\u003eCoroutineDispatcher\u003c/code\u003e as the coroutine context key; now, \u003ccode\u003eContinuationInterceptor\u003c/code\u003e has to be used instead (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4333\"\u003e#4333\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdvanced the deprecation levels on \u003ccode\u003ekotlinx-coroutines-test\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4604\"\u003e#4604\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded lint functions that mark passing a \u003ccode\u003eJob\u003c/code\u003e to coroutine builders as deprecated (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4435\"\u003e#4435\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003erunBlocking\u003c/code\u003e in code shared between JVM and Native (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4368\"\u003e#4368\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003esuspendCancellableCoroutine\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4574\"\u003e#4574\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eflowOn\u003c/code\u003e incorrectly handling \u003ccode\u003eThreadContextElement\u003c/code\u003e updates (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4403\"\u003e#4403\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed exceptions in user-supplied \u003ccode\u003eThread.UncaughtExceptionHandler\u003c/code\u003e instances causing the internal coroutines machinery to fail (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4516\"\u003e#4516\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCoroutineDispatcher.asScheduler\u003c/code\u003e in the RxJava integration not cancelling outstanding work when a \u003ccode\u003eWorker\u003c/code\u003e gets cancelled, which led to memory leaks in some scenarios (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4615\"\u003e#4615\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSharedFlow\u003c/code\u003e entering an invalid state when a subscriber and an emitter are cancelled simultaneously (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4583\"\u003e#4583\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed an R8 optimization leading to \u003ccode\u003eshareIn\u003c/code\u003e/\u003ccode\u003estateIn\u003c/code\u003e coroutines getting garbage-collected (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4646\"\u003e#4646\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/solevic\"\u003e\u003ccode\u003e@​solevic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSmall additions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eCompletableDeferred.asDeferred\u003c/code\u003e for obtaining a read-only \u003ccode\u003eDeferred\u003c/code\u003e view (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4408\"\u003e#4408\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSharedFlow.asFlow\u003c/code\u003e for obtaining a \u003ccode\u003eFlow\u003c/code\u003e view with hidden hot flow semantics (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4530\"\u003e#4530\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/g000sha256\"\u003e\u003ccode\u003e@​g000sha256\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow.collectLatest\u003c/code\u003e overload returning \u003ccode\u003eNothing\u003c/code\u003e to assist with finding unreachable code (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4454\"\u003e#4454\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eReceiveChannel.consumeTo\u003c/code\u003e for consuming a \u003ccode\u003eReceiveChannel\u003c/code\u003e into a \u003ccode\u003eMutableCollection\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4520\"\u003e#4520\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e overload returning a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;\u003c/code\u003e, similar to \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e returning \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4275\"\u003e#4275\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/xit0c\"\u003e\u003ccode\u003e@​xit0c\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded terminal \u003ccode\u003eFlow\u003c/code\u003e operators for collecting a \u003ccode\u003eFlow\u003c/code\u003e to a \u003ccode\u003eMap\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/1541\"\u003e#1541\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog relative to version 1.11.0\u003c/h3\u003e\n\u003cp\u003eNo changes, only the version is increased.\u003c/p\u003e\n\u003ch2\u003e1.11.0-rc02\u003c/h2\u003e\n\u003cp\u003eRestored binary compatibility with 1.10.2 and older versions on Wasm/JS for usages of \u003ccode\u003ePromise\u003c/code\u003e-related functions (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003e1.11.0-rc01\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/blob/master/CHANGES.md\"\u003eorg.jetbrains.kotlinx:kotlinx-coroutines-play-services's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.11.0\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003ePromise\u003c/code\u003e-related functions from JS and Wasm/JS to the new \u003ccode\u003eweb\u003c/code\u003e target. On Wasm/JS, this is a breaking change. Before the change, \u003ccode\u003ePromise\u003c/code\u003e on Wasm/JS could work with arbitrary Kotlin types, but now, only \u003ccode\u003eJsAny\u003c/code\u003e subtypes are accepted (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4563\"\u003e#4563\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eChanged handling of coroutine exceptions that can't be propagated on JS and Wasm/JS. Before, exceptions were logged, but now, they are reported to the JS runtime (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4451\"\u003e#4451\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4631\"\u003e#4631\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeprecated using \u003ccode\u003eCoroutineDispatcher\u003c/code\u003e as the coroutine context key; now, \u003ccode\u003eContinuationInterceptor\u003c/code\u003e has to be used instead (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4333\"\u003e#4333\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdvanced the deprecation levels on \u003ccode\u003ekotlinx-coroutines-test\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4604\"\u003e#4604\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded lint functions that mark passing a \u003ccode\u003eJob\u003c/code\u003e to coroutine builders as deprecated (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4435\"\u003e#4435\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003erunBlocking\u003c/code\u003e in code shared between JVM and Native (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4368\"\u003e#4368\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003esuspendCancellableCoroutine\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4574\"\u003e#4574\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eflowOn\u003c/code\u003e incorrectly handling \u003ccode\u003eThreadContextElement\u003c/code\u003e updates (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4403\"\u003e#4403\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed exceptions in user-supplied \u003ccode\u003eThread.UncaughtExceptionHandler\u003c/code\u003e instances causing the internal coroutines machinery to fail (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4516\"\u003e#4516\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCoroutineDispatcher.asScheduler\u003c/code\u003e in the RxJava integration not cancelling outstanding work when a \u003ccode\u003eWorker\u003c/code\u003e gets cancelled, which led to memory leaks in some scenarios (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4615\"\u003e#4615\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSharedFlow\u003c/code\u003e entering an invalid state when a subscriber and an emitter are cancelled simultaneously (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4583\"\u003e#4583\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed an R8 optimization leading to \u003ccode\u003eshareIn\u003c/code\u003e/\u003ccode\u003estateIn\u003c/code\u003e coroutines getting garbage-collected (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4646\"\u003e#4646\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/solevic\"\u003e\u003ccode\u003e@​solevic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSmall additions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eCompletableDeferred.asDeferred\u003c/code\u003e for obtaining a read-only \u003ccode\u003eDeferred\u003c/code\u003e view (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4408\"\u003e#4408\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSharedFlow.asFlow\u003c/code\u003e for obtaining a \u003ccode\u003eFlow\u003c/code\u003e view with hidden hot flow semantics (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4530\"\u003e#4530\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/g000sha256\"\u003e\u003ccode\u003e@​g000sha256\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow.collectLatest\u003c/code\u003e overload returning \u003ccode\u003eNothing\u003c/code\u003e to assist with finding unreachable code (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4454\"\u003e#4454\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eReceiveChannel.consumeTo\u003c/code\u003e for consuming a \u003ccode\u003eReceiveChannel\u003c/code\u003e into a \u003ccode\u003eMutableCollection\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4520\"\u003e#4520\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e overload returning a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;\u003c/code\u003e, similar to \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e returning \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4275\"\u003e#4275\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/xit0c\"\u003e\u003ccode\u003e@​xit0c\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded terminal \u003ccode\u003eFlow\u003c/code\u003e operators for collecting a \u003ccode\u003eFlow\u003c/code\u003e to a \u003ccode\u003eMap\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/1541\"\u003e#1541\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog relative to version 1.11.0\u003c/h3\u003e\n\u003cp\u003eNo changes, only the version is increased.\u003c/p\u003e\n\u003ch2\u003eVersion 1.11.0-rc02\u003c/h2\u003e\n\u003cp\u003eRestored binary compatibility with 1.10.2 and older versions on Wasm/JS for usages of \u003ccode\u003ePromise\u003c/code\u003e-related functions (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eVersion 1.11.0-rc01\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/8564f65764d3d05893cec026c6e94250e2b23874\"\u003e\u003ccode\u003e8564f65\u003c/code\u003e\u003c/a\u003e Version 1.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/a4c6af96c15fe30f5d4e8b810ea74f8babd5805c\"\u003e\u003ccode\u003ea4c6af9\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/ef917b460aa741691fbf991ee1b813049cae18c9\"\u003e\u003ccode\u003eef917b4\u003c/code\u003e\u003c/a\u003e KT-84955: mark apple x64 tagets as deprecated error (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/5ebc421e341bf2ddce734d369da87df1985e80bd\"\u003e\u003ccode\u003e5ebc421\u003c/code\u003e\u003c/a\u003e Update the release procedure description (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4670\"\u003e#4670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/95f46a073bc4a1230352108cea1835fd22219a80\"\u003e\u003ccode\u003e95f46a0\u003c/code\u003e\u003c/a\u003e Remove old maven repository settings (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4672\"\u003e#4672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/b4f4f0aa6acb692f3fbcadd70e4958e3e9d370fc\"\u003e\u003ccode\u003eb4f4f0a\u003c/code\u003e\u003c/a\u003e Fix package name of \u003ccode\u003eToMapCollectionSamplesTest\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4674\"\u003e#4674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/86738dca7dc9ac82249abc8206263fa0065ee631\"\u003e\u003ccode\u003e86738dc\u003c/code\u003e\u003c/a\u003e Added templates to the issue creation wizard (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4654\"\u003e#4654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/330fcc221fb583f0b119f34191f735a73b827378\"\u003e\u003ccode\u003e330fcc2\u003c/code\u003e\u003c/a\u003e Version 1.11.0-rc02\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/e31cef6e9f2d26794be7d75ecbf3033b6432d582\"\u003e\u003ccode\u003ee31cef6\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/dc6e9f61eaf3a67f4bf474a7987aedc3f16cef37\"\u003e\u003ccode\u003edc6e9f6\u003c/code\u003e\u003c/a\u003e Restore Promise-related functions on Wasm/JS as HIDDEN (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/compare/1.9.0...1.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlinx:kotlinx-coroutines-play-services` from 1.9.0 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/releases\"\u003eorg.jetbrains.kotlinx:kotlinx-coroutines-play-services's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.11.0\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including co...\n\n_Description has been truncated_","html_url":"https://github.com/apoorvdarshan/fud-ai/pull/308","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/apoorvdarshan%2Ffud-ai/issues/308","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/308/packages"},{"uuid":"5438773588","node_id":"PR_kwDOTcuPbs8AAAABDUZMSA","number":340,"state":"open","title":"chore(deps): bump the kotlin group with 6 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-13T07:28:01.000Z","updated_at":"2026-09-13T07:28:15.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"kotlin","update_count":6,"packages":[{"name":"org.jetbrains.kotlin:kotlin-metadata-jvm","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.jvm","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.multiplatform","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.android","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.parcelize","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"}],"path":null,"ecosystem":"maven"},"body":"Bumps the kotlin group with 6 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [org.jetbrains.kotlin:kotlin-metadata-jvm](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.serialization](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.jvm](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.multiplatform](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.parcelize](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n\nUpdates `org.jetbrains.kotlin:kotlin-metadata-jvm` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin:kotlin-metadata-jvm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin:kotlin-metadata-jvm's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.plugin.serialization` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.plugin.serialization's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.plugin.serialization's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.jvm` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.jvm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.jvm's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.multiplatform` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.multiplatform's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.multiplatform's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.android` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.android's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.android's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive in...\n\n_Description has been truncated_","html_url":"https://github.com/HereLiesAz/Graffux/pull/340","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/HereLiesAz%2FGraffux/issues/340","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/340/packages"},{"uuid":"5438484766","node_id":"PR_kwDOGdyx8M8AAAABDUKvVQ","number":260,"state":"closed","title":"chore(deps): bump the kotlin-and-coroutines group with 4 updates","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-13T06:24:26.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-13T06:23:31.000Z","updated_at":"2026-09-13T06:24:27.000Z","time_to_close":55,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"kotlin-and-coroutines","update_count":4,"packages":[{"name":"org.jetbrains.kotlin.android","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.compose","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.parcelize","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.compose","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.parcelize","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"}],"path":null,"ecosystem":"maven"},"body":"Bumps the kotlin-and-coroutines group with 4 updates: [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin), [org.jetbrains.kotlin.plugin.compose](https://github.com/JetBrains/kotlin), [org.jetbrains.kotlin.plugin.parcelize](https://github.com/JetBrains/kotlin) and [org.jetbrains.kotlin.plugin.serialization](https://github.com/JetBrains/kotlin).\n\nUpdates `org.jetbrains.kotlin.android` from 2.4.10 to 2.4.20\nUpdates `org.jetbrains.kotlin.plugin.compose` from 2.4.10 to 2.4.20\nUpdates `org.jetbrains.kotlin.plugin.parcelize` from 2.4.10 to 2.4.20\nUpdates `org.jetbrains.kotlin.plugin.serialization` from 2.4.10 to 2.4.20\nUpdates `org.jetbrains.kotlin.plugin.compose` from 2.4.10 to 2.4.20\nUpdates `org.jetbrains.kotlin.plugin.parcelize` from 2.4.10 to 2.4.20\nUpdates `org.jetbrains.kotlin.plugin.serialization` from 2.4.10 to 2.4.20\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/Tarek-Bohdima/AsteroidRadar/pull/260","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tarek-Bohdima%2FAsteroidRadar/issues/260","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/260/packages"},{"uuid":"5435593425","node_id":"PR_kwDOUKG7WM8AAAABDR66wQ","number":171,"state":"open","title":"deps: bump the gradle-minor-patch group with 5 updates","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-12T19:43:17.000Z","updated_at":"2026-09-12T19:44:16.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"gradle-minor-patch","update_count":5,"packages":[{"name":"androidx.compose:compose-bom","old_version":"2026.08.00","new_version":"2026.09.00"},{"name":"androidx.navigation:navigation-compose","old_version":"2.10.0","new_version":"2.10.1"},{"name":"org.jetbrains.kotlin.multiplatform","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.compose","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"}],"path":null,"ecosystem":"maven"},"body":"Bumps the gradle-minor-patch group with 5 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| androidx.compose:compose-bom | `2026.08.00` | `2026.09.00` |\n| androidx.navigation:navigation-compose | `2.10.0` | `2.10.1` |\n| [org.jetbrains.kotlin.multiplatform](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.compose](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.serialization](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n\nUpdates `androidx.compose:compose-bom` from 2026.08.00 to 2026.09.00\n\nUpdates `androidx.navigation:navigation-compose` from 2.10.0 to 2.10.1\n\nUpdates `org.jetbrains.kotlin.multiplatform` from 2.4.10 to 2.4.20\nUpdates `org.jetbrains.kotlin.plugin.compose` from 2.4.10 to 2.4.20\nUpdates `org.jetbrains.kotlin.plugin.serialization` from 2.4.10 to 2.4.20\nUpdates `org.jetbrains.kotlin.plugin.compose` from 2.4.10 to 2.4.20\nUpdates `org.jetbrains.kotlin.plugin.serialization` from 2.4.10 to 2.4.20\n\nYou can trigger a rebase of this PR by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/twojstar/llmbench/pull/171","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/twojstar%2Fllmbench/issues/171","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/171/packages"},{"uuid":"5433188263","node_id":"PR_kwDOUX6iiM8AAAABDQFmfw","number":4,"state":"closed","title":"build(deps): bump the maven group in /manager with 7 updates","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-13T03:42:13.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-12T12:08:59.000Z","updated_at":"2026-09-13T03:42:14.000Z","time_to_close":55994,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"maven","update_count":7,"packages":[{"name":"com.materialkolor:material-kolor","old_version":"5.0.0","new_version":"5.0.1","repository_url":"https://github.com/jordond/materialkolor"},{"name":"com.google.protobuf:protobuf-kotlin-lite","old_version":"4.36.0","new_version":"4.36.1"},{"name":"com.google.protobuf:protoc","old_version":"4.36.0","new_version":"4.36.1","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"com.android.application","old_version":"9.3.2","new_version":"9.4.0"},{"name":"org.jetbrains.kotlin.android","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.compose","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"}],"path":"/manager","ecosystem":"maven"},"body":"Bumps the maven group in /manager with 7 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [com.materialkolor:material-kolor](https://github.com/jordond/materialkolor) | `5.0.0` | `5.0.1` |\n| com.google.protobuf:protobuf-kotlin-lite | `4.36.0` | `4.36.1` |\n| [com.google.protobuf:protoc](https://github.com/protocolbuffers/protobuf) | `4.36.0` | `4.36.1` |\n| com.android.application | `9.3.2` | `9.4.0` |\n| [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.compose](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.serialization](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n\nUpdates `com.materialkolor:material-kolor` from 5.0.0 to 5.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jordond/materialkolor/releases\"\u003ecom.materialkolor:material-kolor's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eStop overriding consumer Material3 version on Android by \u003ca href=\"https://github.com/jordond\"\u003e\u003ccode\u003e@​jordond\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jordond/MaterialKolor/pull/529\"\u003ejordond/MaterialKolor#529\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): update gradle to v9.7.1 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jordond/MaterialKolor/pull/514\"\u003ejordond/MaterialKolor#514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update kotlin to v2.4.10 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jordond/MaterialKolor/pull/505\"\u003ejordond/MaterialKolor#505\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(deps): update compose.multiplatform to v1.12.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://github.com/jordond\"\u003ehttps://github.com/jordond\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jordond/MaterialKolor/compare/5.0.0...5.0.1\"\u003ehttps://github.com/jordond/MaterialKolor/compare/5.0.0...5.0.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jordond/MaterialKolor/commit/cc4d2cb931ba0a45995abe988717a2cea9ed478e\"\u003e\u003ccode\u003ecc4d2cb\u003c/code\u003e\u003c/a\u003e fix: stop overriding consumer material3 on Android (\u003ca href=\"https://redirect.github.com/jordond/materialkolor/issues/529\"\u003e#529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jordond/MaterialKolor/commit/d52e22f7e2632dc59d25fb3d35f8169efddb4278\"\u003e\u003ccode\u003ed52e22f\u003c/code\u003e\u003c/a\u003e chore(deps): update actions/checkout action to v7 (\u003ca href=\"https://redirect.github.com/jordond/materialkolor/issues/528\"\u003e#528\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jordond/MaterialKolor/commit/5fa870202a1c5eda899c622a17e6161b462f3dd3\"\u003e\u003ccode\u003e5fa8702\u003c/code\u003e\u003c/a\u003e clean up gradle files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jordond/MaterialKolor/commit/21e912997580a5f525c1cee792273ce637b3f86c\"\u003e\u003ccode\u003e21e9129\u003c/code\u003e\u003c/a\u003e chore(deps): update actions/setup-java action to v6 (\u003ca href=\"https://redirect.github.com/jordond/materialkolor/issues/518\"\u003e#518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jordond/MaterialKolor/commit/10183323edddc5fc25599d7c8018bd0c8859c98c\"\u003e\u003ccode\u003e1018332\u003c/code\u003e\u003c/a\u003e fix(deps): update builder dependencies (\u003ca href=\"https://redirect.github.com/jordond/materialkolor/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jordond/MaterialKolor/commit/3f97fa237181c621dd4f6e82bce783c063b9e44c\"\u003e\u003ccode\u003e3f97fa2\u003c/code\u003e\u003c/a\u003e Migrate MaterialKolorBuilder (\u003ca href=\"https://redirect.github.com/jordond/materialkolor/issues/500\"\u003e#500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jordond/MaterialKolor/commit/7154b685e98dd9e9e7cfffc22cfda3d1355cd106\"\u003e\u003ccode\u003e7154b68\u003c/code\u003e\u003c/a\u003e switch to temurin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jordond/MaterialKolor/commit/78279e8a457a971d4701efb5db3686ee7f89d91c\"\u003e\u003ccode\u003e78279e8\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency com.diffplug.spotless to v8.10.1 (\u003ca href=\"https://redirect.github.com/jordond/materialkolor/issues/519\"\u003e#519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jordond/MaterialKolor/commit/632f1ee2fcb111f6bfa3f0a6dcbe3b4b4b927c66\"\u003e\u003ccode\u003e632f1ee\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency com.android.kotlin.multiplatform.library to v9...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jordond/MaterialKolor/commit/213e6f26074689ee3527bab3b9ad8c980ec13b2c\"\u003e\u003ccode\u003e213e6f2\u003c/code\u003e\u003c/a\u003e fix(deps): update compose.multiplatform to v1.12.0 (\u003ca href=\"https://redirect.github.com/jordond/materialkolor/issues/517\"\u003e#517\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jordond/materialkolor/compare/5.0.0...5.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.google.protobuf:protobuf-kotlin-lite` from 4.36.0 to 4.36.1\n\nUpdates `com.google.protobuf:protoc` from 4.36.0 to 4.36.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/protocolbuffers/protobuf/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.google.protobuf:protoc` from 4.36.0 to 4.36.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/protocolbuffers/protobuf/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.android.application` from 9.3.2 to 9.4.0\n\nUpdates `org.jetbrains.kotlin.android` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.android's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.android's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.plugin.compose` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.plugin.compose's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.plugin.compose's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.plugin.serialization` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.plugin.serialization's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.plugin.serialization's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.plugin.compose` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.plugin.compose's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.plugin.compose's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.plugin.serialization` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.plugin.serialization's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.plugin.serialization's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbra...\n\n_Description has been truncated_","html_url":"https://github.com/wutong7891/WutongSU/pull/4","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/wutong7891%2FWutongSU/issues/4","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4/packages"},{"uuid":"5432322785","node_id":"PR_kwDOS_Qw188AAAABDPb_LA","number":14,"state":"open","title":"deps: bump org.jetbrains.kotlin.plugin.serialization from 1.9.24 to 2.4.20","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-12T08:56:10.000Z","updated_at":"2026-09-12T08:56:11.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps","packages":[{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"1.9.24","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"}],"path":null,"ecosystem":"maven"},"body":"Bumps [org.jetbrains.kotlin.plugin.serialization](https://github.com/JetBrains/kotlin) from 1.9.24 to 2.4.20.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.plugin.serialization's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.plugin.serialization's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v1.9.24...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=org.jetbrains.kotlin.plugin.serialization\u0026package-manager=gradle\u0026previous-version=1.9.24\u0026new-version=2.4.20)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/JoexBlaze89/TacoCasaOS-/pull/14","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/JoexBlaze89%2FTacoCasaOS-/issues/14","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/14/packages"},{"uuid":"5431779324","node_id":"PR_kwDOUXlW3s8AAAABDPB9iw","number":7,"state":"open","title":"Bump the kotlin group with 2 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-12T06:42:56.000Z","updated_at":"2026-09-12T06:42:57.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"kotlin","update_count":2,"packages":[{"name":"org.jetbrains.kotlin.plugin.compose","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"}],"path":null,"ecosystem":"maven"},"body":"Bumps the kotlin group with 2 updates: [org.jetbrains.kotlin.plugin.compose](https://github.com/JetBrains/kotlin) and [org.jetbrains.kotlin.plugin.serialization](https://github.com/JetBrains/kotlin).\n\nUpdates `org.jetbrains.kotlin.plugin.compose` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.plugin.compose's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.plugin.compose's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.plugin.serialization` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.plugin.serialization's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.plugin.serialization's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.plugin.serialization` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.plugin.serialization's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.plugin.serialization's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/chafis1221-oss/Background-/pull/7","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/chafis1221-oss%2FBackground-/issues/7","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/7/packages"}],"issue_packages":[{"old_version":"2.4.10","new_version":"2.4.20","update_type":"patch","path":null,"pr_created_at":"2026-09-15T00:42:02.000Z","version_change":"2.4.10 → 2.4.20","issue":{"uuid":"5456107824","node_id":"PR_kwDOT8v_qc8AAAABDiIEkQ","number":53,"state":"open","title":"chore(deps): bump the gradle group across 1 directory with 11 updates","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-15T00:42:02.000Z","updated_at":"2026-09-15T00:43:51.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"gradle","update_count":11,"packages":[{"name":"org.jetbrains.kotlin:kotlin-gradle-plugin","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin:kotlin-test","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.compose","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.multiplatform","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.jvm","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.compose.runtime:runtime","old_version":"1.11.1","new_version":"1.12.0","repository_url":"https://github.com/JetBrains/compose-multiplatform"},{"name":"org.jetbrains.compose.ui:ui-test-junit4","old_version":"1.11.1","new_version":"1.12.0","repository_url":"https://github.com/JetBrains/compose-multiplatform"},{"name":"org.jetbrains.compose","old_version":"1.11.1","new_version":"1.12.0","repository_url":"https://github.com/JetBrains/compose-multiplatform"},{"name":"com.squareup.okio:okio-fakefilesystem","old_version":"3.18.1","new_version":"3.18.2","repository_url":"https://github.com/lysine-dev/okio"},{"name":"org.jetbrains.kotlinx.binary-compatibility-validator","old_version":"0.18.1","new_version":"0.18.2","repository_url":"https://github.com/Kotlin/binary-compatibility-validator"}],"path":null,"ecosystem":"maven"},"body":"Bumps the gradle group with 11 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [org.jetbrains.kotlin:kotlin-gradle-plugin](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin:kotlin-test](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.compose](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.multiplatform](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.jvm](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.serialization](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.compose.runtime:runtime](https://github.com/JetBrains/compose-multiplatform) | `1.11.1` | `1.12.0` |\n| [org.jetbrains.compose.ui:ui-test-junit4](https://github.com/JetBrains/compose-multiplatform) | `1.11.1` | `1.12.0` |\n| [org.jetbrains.compose](https://github.com/JetBrains/compose-multiplatform) | `1.11.1` | `1.12.0` |\n| [com.squareup.okio:okio-fakefilesystem](https://github.com/lysine-dev/okio) | `3.18.1` | `3.18.2` |\n| [org.jetbrains.kotlinx.binary-compatibility-validator](https://github.com/Kotlin/binary-compatibility-validator) | `0.18.1` | `0.18.2` |\n\n\nUpdates `org.jetbrains.kotlin:kotlin-gradle-plugin` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin:kotlin-gradle-plugin's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin:kotlin-gradle-plugin's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin:kotlin-test` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin:kotlin-test's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin:kotlin-test's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.plugin.compose` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.plugin.compose's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.plugin.compose's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.multiplatform` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.multiplatform's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.multiplatform's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.jvm` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.jvm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.jvm's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e Jv...\n\n_Description has been truncated_","html_url":"https://github.com/jdbenitez94/criollo-kmp-foundation/pull/53","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdbenitez94%2Fcriollo-kmp-foundation/issues/53","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/53/packages"}},{"old_version":"2.4.10","new_version":"2.4.20","update_type":"patch","path":null,"pr_created_at":"2026-09-14T23:35:42.000Z","version_change":"2.4.10 → 2.4.20","issue":{"uuid":"5455688955","node_id":"PR_kwDOFyQuU88AAAABDhy5ug","number":71,"state":"open","title":"Bump the kotlin-dependencies group with 3 updates","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-14T23:35:42.000Z","updated_at":"2026-09-14T23:36:25.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"kotlin-dependencies","update_count":3,"packages":[{"name":"org.jetbrains.kotlin:kotlin-gradle-plugin","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.compose","old_version":"2.4.10","new_version":"2.4.20"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.4.10","new_version":"2.4.20"},{"name":"org.jetbrains.kotlin.plugin.compose","old_version":"2.4.10","new_version":"2.4.20"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.4.10","new_version":"2.4.20"}],"path":null,"ecosystem":"maven"},"body":"Bumps the kotlin-dependencies group with 3 updates: [org.jetbrains.kotlin:kotlin-gradle-plugin](https://github.com/JetBrains/kotlin), org.jetbrains.kotlin.plugin.compose and org.jetbrains.kotlin.plugin.serialization.\n\nUpdates `org.jetbrains.kotlin:kotlin-gradle-plugin` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin:kotlin-gradle-plugin's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin:kotlin-gradle-plugin's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.plugin.compose` from 2.4.10 to 2.4.20\n\nUpdates `org.jetbrains.kotlin.plugin.serialization` from 2.4.10 to 2.4.20\n\nUpdates `org.jetbrains.kotlin.plugin.compose` from 2.4.10 to 2.4.20\n\nUpdates `org.jetbrains.kotlin.plugin.serialization` from 2.4.10 to 2.4.20\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/OHoussein/CryptoApp/pull/71","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/OHoussein%2FCryptoApp/issues/71","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/71/packages"}},{"old_version":"2.4.10","new_version":"2.4.20","update_type":"patch","path":null,"pr_created_at":"2026-09-14T23:02:06.000Z","version_change":"2.4.10 → 2.4.20","issue":{"uuid":"5455469512","node_id":"PR_kwDOS1M5gM8AAAABDhnm5Q","number":89,"state":"open","title":"chore(deps): bump the minor-and-patch group with 15 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-14T23:02:06.000Z","updated_at":"2026-09-14T23:02:13.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"minor-and-patch","update_count":15,"packages":[{"name":"androidx.compose:compose-bom","old_version":"2026.08.00","new_version":"2026.09.00"},{"name":"androidx.navigation:navigation-compose","old_version":"2.10.0","new_version":"2.10.1"},{"name":"com.google.firebase:firebase-bom","old_version":"34.18.0","new_version":"34.19.0"},{"name":"org.robolectric:robolectric","old_version":"4.16.1","new_version":"4.17","repository_url":"https://github.com/robolectric/robolectric"},{"name":"androidx.room:room-ktx","old_version":"2.8.4","new_version":"2.8.5"},{"name":"androidx.room:room-compiler","old_version":"2.8.4","new_version":"2.8.5"},{"name":"androidx.room:room-paging","old_version":"2.8.4","new_version":"2.8.5"},{"name":"androidx.room:room-testing","old_version":"2.8.4","new_version":"2.8.5"},{"name":"androidx.media3:media3-exoplayer","old_version":"1.11.0","new_version":"1.11.1","repository_url":"https://github.com/androidx/media"},{"name":"androidx.media3:media3-ui","old_version":"1.11.0","new_version":"1.11.1","repository_url":"https://github.com/androidx/media"},{"name":"androidx.media3:media3-session","old_version":"1.11.0","new_version":"1.11.1","repository_url":"https://github.com/androidx/media"},{"name":"org.jetbrains.kotlin.plugin.compose","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.android","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"com.google.devtools.ksp","old_version":"2.3.11","new_version":"2.3.12","repository_url":"https://github.com/google/ksp"}],"path":null,"ecosystem":"maven"},"body":"Bumps the minor-and-patch group with 15 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| androidx.compose:compose-bom | `2026.08.00` | `2026.09.00` |\n| androidx.navigation:navigation-compose | `2.10.0` | `2.10.1` |\n| com.google.firebase:firebase-bom | `34.18.0` | `34.19.0` |\n| [org.robolectric:robolectric](https://github.com/robolectric/robolectric) | `4.16.1` | `4.17` |\n| androidx.room:room-ktx | `2.8.4` | `2.8.5` |\n| androidx.room:room-compiler | `2.8.4` | `2.8.5` |\n| androidx.room:room-paging | `2.8.4` | `2.8.5` |\n| androidx.room:room-testing | `2.8.4` | `2.8.5` |\n| [androidx.media3:media3-exoplayer](https://github.com/androidx/media) | `1.11.0` | `1.11.1` |\n| [androidx.media3:media3-ui](https://github.com/androidx/media) | `1.11.0` | `1.11.1` |\n| [androidx.media3:media3-session](https://github.com/androidx/media) | `1.11.0` | `1.11.1` |\n| [org.jetbrains.kotlin.plugin.compose](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.serialization](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [com.google.devtools.ksp](https://github.com/google/ksp) | `2.3.11` | `2.3.12` |\n\nUpdates `androidx.compose:compose-bom` from 2026.08.00 to 2026.09.00\n\nUpdates `androidx.navigation:navigation-compose` from 2.10.0 to 2.10.1\n\nUpdates `com.google.firebase:firebase-bom` from 34.18.0 to 34.19.0\n\nUpdates `org.robolectric:robolectric` from 4.16.1 to 4.17\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/robolectric/robolectric/releases\"\u003eorg.robolectric:robolectric's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eRobolectric 4.17 supports SDK 37 and contains many other features and enhancements.\u003c/p\u003e\n\u003cp\u003ePlease note you may need to add jvmFlags configuration when using JDKs \u0026gt;= 17 at \u003ca href=\"https://robolectric.org/getting-started/\"\u003ehttps://robolectric.org/getting-started/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eIf you have any issues, please file them \u003ca href=\"https://github.com/robolectric/robolectric/issues\"\u003ehere\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cp\u003eAndroidVersions has been removed in favor of using android.os.Build constants\nShadowCameraCharacteristics.set(Key, Object) has been changed to set(Key, T), in order to correctly reflect type enforcement in the framework\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDisable httpclient tests in Github CI by \u003ca href=\"https://github.com/hoisie\"\u003e\u003ccode\u003e@​hoisie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10553\"\u003erobolectric/robolectric#10553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse Java 21 for CodeQL by \u003ca href=\"https://github.com/hoisie\"\u003e\u003ccode\u003e@​hoisie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10554\"\u003erobolectric/robolectric#10554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate roborazzi to v1.48.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10561\"\u003erobolectric/robolectric#10561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependency com.googlecode.libphonenumber:libphonenumber to v9.0.12 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10557\"\u003erobolectric/robolectric#10557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003eAndroidVersions\u003c/code\u003e Javadoc by \u003ca href=\"https://github.com/MGaetan89\"\u003e\u003ccode\u003e@​MGaetan89\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10556\"\u003erobolectric/robolectric#10556\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake Scheduler#size as unsupported on SDKs \u0026gt; Baklava. by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10564\"\u003erobolectric/robolectric#10564\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate shadows/httpclient to use prebuilt legacy http client for tests by \u003ca href=\"https://github.com/hoisie\"\u003e\u003ccode\u003e@​hoisie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10562\"\u003erobolectric/robolectric#10562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd shadow for getDeviceOwnerComponentOnAnyUser. by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10565\"\u003erobolectric/robolectric#10565\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd ShadowTelMan implementation of get/setPreferredOpportunisticDataSubscription by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10567\"\u003erobolectric/robolectric#10567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix UiModeManager contrast handling in in-development SDK. by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10568\"\u003erobolectric/robolectric#10568\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake all static fields emitted by Reflector volatile. by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10569\"\u003erobolectric/robolectric#10569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate listener logic of getProfileProxy to match actual behavior. by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10570\"\u003erobolectric/robolectric#10570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate mockito monorepo to v5.19.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10560\"\u003erobolectric/robolectric#10560\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate kotlin monorepo to v2.2.10 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10558\"\u003erobolectric/robolectric#10558\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix ShadowPausedLooper#poll when sync barrier is blocking the queue. by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10571\"\u003erobolectric/robolectric#10571\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003eShadowTelephonyManager\u003c/code\u003e to support \u003ccode\u003eupdateAvailalbeNetworks\u003c/code\u003e by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10574\"\u003erobolectric/robolectric#10574\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Android V (SDK 35) to build id 13954326 by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10575\"\u003erobolectric/robolectric#10575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix UserManager.isMainUser on in-development SDK. by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10576\"\u003erobolectric/robolectric#10576\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdds robolectric support for AccessibilityWindowInfo.get/setRegionInScreen(). by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10577\"\u003erobolectric/robolectric#10577\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused dependencies by \u003ca href=\"https://github.com/MGaetan89\"\u003e\u003ccode\u003e@​MGaetan89\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10566\"\u003erobolectric/robolectric#10566\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for mouse wheel scroll events to the simulator by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10578\"\u003erobolectric/robolectric#10578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Javadoc of {get,peek}NextStartedService to better reflect the actual implementation by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10585\"\u003erobolectric/robolectric#10585\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a script to generate a legacy http client bundle by \u003ca href=\"https://github.com/hoisie\"\u003e\u003ccode\u003e@​hoisie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10555\"\u003erobolectric/robolectric#10555\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd SurroundingTextCallback to ShadowAccessibilityInputConnection. by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10591\"\u003erobolectric/robolectric#10591\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdds setInformationElements() to WifiScanResultBuilder by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10593\"\u003erobolectric/robolectric#10593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd isWallpaperBackupEligible and getWallpaperFile with cropping by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10594\"\u003erobolectric/robolectric#10594\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMention Baklava support in the Readme by \u003ca href=\"https://github.com/MGaetan89\"\u003e\u003ccode\u003e@​MGaetan89\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10588\"\u003erobolectric/robolectric#10588\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix AccessibilityWindowInfoBuilderTest by \u003ca href=\"https://github.com/hoisie\"\u003e\u003ccode\u003e@​hoisie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10595\"\u003erobolectric/robolectric#10595\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused method in \u003ccode\u003eAndroidVersionInitTools\u003c/code\u003e by \u003ca href=\"https://github.com/MGaetan89\"\u003e\u003ccode\u003e@​MGaetan89\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10563\"\u003erobolectric/robolectric#10563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate roborazzi to v1.50.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10582\"\u003erobolectric/robolectric#10582\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate GitHub Actions to v5 (major) by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10583\"\u003erobolectric/robolectric#10583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Android Gradle Plugin by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10580\"\u003erobolectric/robolectric#10580\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependency com.googlecode.libphonenumber:libphonenumber to v9.0.13 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10596\"\u003erobolectric/robolectric#10596\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate AndroidX by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10559\"\u003erobolectric/robolectric#10559\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate a workflow to automate the sync of \u003ccode\u003egoogle\u003c/code\u003e into \u003ccode\u003emaster\u003c/code\u003e by \u003ca href=\"https://github.com/MGaetan89\"\u003e\u003ccode\u003e@​MGaetan89\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10339\"\u003erobolectric/robolectric#10339\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump toolchains in devcontainer's Dockerfile by \u003ca href=\"https://github.com/utzcoz\"\u003e\u003ccode\u003e@​utzcoz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10597\"\u003erobolectric/robolectric#10597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Robolectric icon for IDE by \u003ca href=\"https://github.com/utzcoz\"\u003e\u003ccode\u003e@​utzcoz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10598\"\u003erobolectric/robolectric#10598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeclare File? as type for toolsJar explicitly by \u003ca href=\"https://github.com/utzcoz\"\u003e\u003ccode\u003e@​utzcoz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10599\"\u003erobolectric/robolectric#10599\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisable parallel for aggregateDocs task temporarily by \u003ca href=\"https://github.com/utzcoz\"\u003e\u003ccode\u003e@​utzcoz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/robolectric/robolectric/pull/10600\"\u003erobolectric/robolectric#10600\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/robolectric/robolectric/commit/0706415db828e1bdcf4f0c820784fa760d0185a2\"\u003e\u003ccode\u003e0706415\u003c/code\u003e\u003c/a\u003e Bump version to 4.17.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/robolectric/robolectric/commit/f3c17bd2aeb66035ec3ece695f94ebc81588b79c\"\u003e\u003ccode\u003ef3c17bd\u003c/code\u003e\u003c/a\u003e Bump version to 4.17-beta-4.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/robolectric/robolectric/commit/04b84f6f3778743e27b4c82a5da488ddf2046d41\"\u003e\u003ccode\u003e04b84f6\u003c/code\u003e\u003c/a\u003e \u0026quot;fixed ResTable_package.SIZEOF value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/robolectric/robolectric/commit/f4ee543bf78a429be44ab914b045736ddfda58dc\"\u003e\u003ccode\u003ef4ee543\u003c/code\u003e\u003c/a\u003e Apply suggestion from \u003ca href=\"https://github.com/gemini-code-assist\"\u003e\u003ccode\u003e@​gemini-code-assist\u003c/code\u003e\u003c/a\u003e[bot]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/robolectric/robolectric/commit/fb99bfbcbcb9ca9c7fe3b3937df1afb0ac23c74d\"\u003e\u003ccode\u003efb99bfb\u003c/code\u003e\u003c/a\u003e Expose BouncyCastle BoM as api dependency\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/robolectric/robolectric/commit/a453192a93423d5c4f93f520609aed69d60572a1\"\u003e\u003ccode\u003ea453192\u003c/code\u003e\u003c/a\u003e Fix Javadoc for \u003ccode\u003eVersionCalculator\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/robolectric/robolectric/commit/6f268925237080530b7cdf9ff7a001cc138c1043\"\u003e\u003ccode\u003e6f26892\u003c/code\u003e\u003c/a\u003e Bump version to 4.17-beta-3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/robolectric/robolectric/commit/ceffe96a63b3565ac8337c334b770ef76db7a2f2\"\u003e\u003ccode\u003eceffe96\u003c/code\u003e\u003c/a\u003e Only adjust frameinfo timestamp values (including vsync).\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/robolectric/robolectric/commit/ea5879f7e3fc9d354833d73acd73f089388f42b9\"\u003e\u003ccode\u003eea5879f\u003c/code\u003e\u003c/a\u003e Add opt-in fix for stale screenshots on SDK 37.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/robolectric/robolectric/commit/8bea42181c6a1ecdd60ab50e502157ab4aed3f6d\"\u003e\u003ccode\u003e8bea421\u003c/code\u003e\u003c/a\u003e Fix jank log spam on SDK 37+ by translating FrameInfo timestamps.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/robolectric/robolectric/compare/robolectric-4.16.1...robolectric-4.17\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `androidx.room:room-ktx` from 2.8.4 to 2.8.5\n\nUpdates `androidx.room:room-compiler` from 2.8.4 to 2.8.5\n\nUpdates `androidx.room:room-paging` from 2.8.4 to 2.8.5\n\nUpdates `androidx.room:room-compiler` from 2.8.4 to 2.8.5\n\nUpdates `androidx.room:room-testing` from 2.8.4 to 2.8.5\n\nUpdates `androidx.room:room-paging` from 2.8.4 to 2.8.5\n\nUpdates `androidx.media3:media3-exoplayer` from 1.11.0 to 1.11.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/androidx/media/releases\"\u003eandroidx.media3:media3-exoplayer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.11.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExoPlayer:\n\u003cul\u003e\n\u003cli\u003eMove the flag to enable/disable HAGC metadata for progressive media from \u003ccode\u003eMediaSource.Factory\u003c/code\u003e to \u003ccode\u003eExtractorsFactory\u003c/code\u003e. The previous \u003ccode\u003esetExperimentalEnableHagcPlayback\u003c/code\u003e method is removed and replaced by \u003ccode\u003eExtractorsFactory.setParseHagcMetadata\u003c/code\u003e. This also resolves an issue where disabling didn't work for Matroska/WebM containers.\u003c/li\u003e\n\u003cli\u003eFix a playback stall caused when prewarming a non-transitioning secondary renderer.\u003c/li\u003e\n\u003cli\u003eFix pre-warming issue where the \u003ccode\u003eSurface\u003c/code\u003e should be returned to the primary renderer when a seek resets and disables both renderers.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eArrayIndexOutOfBoundsException\u003c/code\u003e when a live timeline refresh moves the default position past a server-side inserted ad that is currently being played (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3348\"\u003e#3348\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix a scrubbing mode issue where stale video frames could be briefly displayed when seeking with \u003ccode\u003eScrubbingModeParameters.allowSkippingMediaCodecFlush\u003c/code\u003e enabled.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eExtractors:\n\u003cul\u003e\n\u003cli\u003eMatroska: Fix issue where Tracks placed after clusters wouldn't result in a seekable timeline (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3377\"\u003e#3377\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAudio:\n\u003cul\u003e\n\u003cli\u003eFix buffer size calculation in \u003ccode\u003eSilenceSkippingAudioProcessor\u003c/code\u003e so that the minimum silence duration is not incorrectly scaled down by the frame size (\u003ca href=\"https://redirect.github.com/androidx/media/pull/3271\"\u003e#3271\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix 8-bit PCM handling in \u003ccode\u003ePcmAudioUtil\u003c/code\u003e to treat samples as unsigned as defined by Android (\u003ca href=\"https://redirect.github.com/androidx/media/pull/3271\"\u003e#3271\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix offload issue in which playback could stall during pre-roll or gapless transitions due to limited hardware buffer sizes.\u003c/li\u003e\n\u003cli\u003eFix bug in \u003ccode\u003eDefaultAudioSink\u003c/code\u003e where release count doesn't decrease when playback thread is no longer alive (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3338\"\u003e#3338\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eSession:\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eNullPointerException\u003c/code\u003e when an in-process \u003ccode\u003eMediaController\u003c/code\u003e is released from a \u003ccode\u003ePlayer.Listener\u003c/code\u003e callback (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3375\"\u003e#3375\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix deadlock on the main thread when a legacy \u003ccode\u003eMediaBrowser\u003c/code\u003e connects to a service returning an asynchronous result from \u003ccode\u003eonGetLibraryRoot()\u003c/code\u003e or \u003ccode\u003eonConnectAsync()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3393\"\u003e#3393\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eHLS extension:\n\u003cul\u003e\n\u003cli\u003eFix calculation of content resume offset when the target segment for snapping is not yet in the playlist (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3322\"\u003e#3322\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where a fully consumed \u003ccode\u003eHlsMediaChunk\u003c/code\u003e retries loading on receiving \u003ccode\u003eEOFException\u003c/code\u003e from the extractor (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3350\"\u003e#3350\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDASH extension:\n\u003cul\u003e\n\u003cli\u003eFix incorrect sample timestamp calculation for image tracks with a \u003ccode\u003epresentationTimeOffset\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3334\"\u003e#3334\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDecoder extensions (FFmpeg, VP9, AV1, etc.):\n\u003cul\u003e\n\u003cli\u003eOpus: Fix memory corruption when multiple \u003ccode\u003eOpusDecoder\u003c/code\u003e instances are initialized concurrently.\u003c/li\u003e\n\u003cli\u003eMPEG-H: Fix memory leak, truncation of non-ASCII characters, and potential native crash under low-memory conditions when sending commands to the \u003ccode\u003eMpeghUiManager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3365\"\u003e#3365\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/androidx/media/blob/release/RELEASENOTES.md\"\u003eandroidx.media3:media3-exoplayer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e1.11.1 (2026-09-10)\u003c/h3\u003e\n\u003cp\u003eThis release includes the following changes since the\n\u003ca href=\"https://github.com/androidx/media/blob/release/#1110-2026-08-05\"\u003e1.11.0 release\u003c/a\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eExoPlayer:\n\u003cul\u003e\n\u003cli\u003eMove the flag to enable/disable HAGC metadata for progressive media from\n\u003ccode\u003eMediaSource.Factory\u003c/code\u003e to \u003ccode\u003eExtractorsFactory\u003c/code\u003e. The previous\n\u003ccode\u003esetExperimentalEnableHagcPlayback\u003c/code\u003e method is removed and replaced by\n\u003ccode\u003eExtractorsFactory.setParseHagcMetadata\u003c/code\u003e. This also resolves an issue\nwhere disabling didn't work for Matroska/WebM containers.\u003c/li\u003e\n\u003cli\u003eFix a playback stall caused when prewarming a non-transitioning\nsecondary renderer.\u003c/li\u003e\n\u003cli\u003eFix pre-warming issue where the \u003ccode\u003eSurface\u003c/code\u003e should be returned to the\nprimary renderer when a seek resets and disables both renderers.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eArrayIndexOutOfBoundsException\u003c/code\u003e when a live timeline refresh moves\nthe default position past a server-side inserted ad that is currently\nbeing played (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3348\"\u003e#3348\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix a scrubbing mode issue where stale video frames could be briefly\ndisplayed when seeking with\n\u003ccode\u003eScrubbingModeParameters.allowSkippingMediaCodecFlush\u003c/code\u003e enabled.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eExtractors:\n\u003cul\u003e\n\u003cli\u003eMatroska: Fix issue where Tracks placed after clusters wouldn't result\nin a seekable timeline\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3377\"\u003e#3377\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAudio:\n\u003cul\u003e\n\u003cli\u003eFix buffer size calculation in \u003ccode\u003eSilenceSkippingAudioProcessor\u003c/code\u003e so that\nthe minimum silence duration is not incorrectly scaled down by the frame\nsize (\u003ca href=\"https://redirect.github.com/androidx/media/pull/3271\"\u003e#3271\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix 8-bit PCM handling in \u003ccode\u003ePcmAudioUtil\u003c/code\u003e to treat samples as unsigned as\ndefined by Android\n(\u003ca href=\"https://redirect.github.com/androidx/media/pull/3271\"\u003e#3271\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix offload issue in which playback could stall during pre-roll or\ngapless transitions due to limited hardware buffer sizes.\u003c/li\u003e\n\u003cli\u003eFix bug in \u003ccode\u003eDefaultAudioSink\u003c/code\u003e where release count doesn't decrease when\nplayback thread is no longer alive\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3338\"\u003e#3338\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eSession:\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eNullPointerException\u003c/code\u003e when an in-process \u003ccode\u003eMediaController\u003c/code\u003e is\nreleased from a \u003ccode\u003ePlayer.Listener\u003c/code\u003e callback\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3375\"\u003e#3375\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix deadlock on the main thread when a legacy \u003ccode\u003eMediaBrowser\u003c/code\u003e connects to\na service returning an asynchronous result from \u003ccode\u003eonGetLibraryRoot()\u003c/code\u003e or\n\u003ccode\u003eonConnectAsync()\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3393\"\u003e#3393\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eHLS extension:\n\u003cul\u003e\n\u003cli\u003eFix calculation of content resume offset when the target segment for\nsnapping is not yet in the playlist\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3322\"\u003e#3322\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where a fully consumed \u003ccode\u003eHlsMediaChunk\u003c/code\u003e retries loading on\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/8c6678b657ede1e7883fc164ef73ed483c7796c3\"\u003e\u003ccode\u003e8c6678b\u003c/code\u003e\u003c/a\u003e Bump version to 1.11.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/4b610b15d2b924e059e4f605ad912ff978e86e92\"\u003e\u003ccode\u003e4b610b1\u003c/code\u003e\u003c/a\u003e Update release notes for 1.11.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/e9757e6d11208d66d1ae020664dad2ce16a962ef\"\u003e\u003ccode\u003ee9757e6\u003c/code\u003e\u003c/a\u003e Fix deadlock when legacy MediaBrowser connects to async root or session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/9b8000d7eb57b347b2c40092b83a18c6a49173b2\"\u003e\u003ccode\u003e9b8000d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/androidx/media/issues/3271\"\u003e#3271\u003c/a\u003e from nift4:oddmath\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/6ada45cd1644582657afd0f0c750521f86a9e7b7\"\u003e\u003ccode\u003e6ada45c\u003c/code\u003e\u003c/a\u003e Add end-to-end test for ITU-T T.35 track muxing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/d23ba393a05c29244f9a184e7844411dc0dcd000\"\u003e\u003ccode\u003ed23ba39\u003c/code\u003e\u003c/a\u003e Normalize non-positive frame rates in MediaFormatUtil\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/383e770282f6ed31ffdea3362545282e4efc916b\"\u003e\u003ccode\u003e383e770\u003c/code\u003e\u003c/a\u003e Generalize useInputBuffer to useBuffer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/71e41121baddc80d2d175d4ce270d2cbe88f5aca\"\u003e\u003ccode\u003e71e4112\u003c/code\u003e\u003c/a\u003e MPEG-H: Fix UI manager command encoding and memory leak\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/eb2965ce41951e8f8437fba7a4dfc318585eb08a\"\u003e\u003ccode\u003eeb2965c\u003c/code\u003e\u003c/a\u003e Matroska: Fix seekable timeline with Tracks after Clusters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/a827bd5689d896868a10758a5caf19ce315a5741\"\u003e\u003ccode\u003ea827bd5\u003c/code\u003e\u003c/a\u003e Fix incorrect render of stale frames after a seek with skipped flush.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/androidx/media/compare/1.11.0...1.11.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `androidx.media3:media3-ui` from 1.11.0 to 1.11.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/androidx/media/releases\"\u003eandroidx.media3:media3-ui's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.11.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExoPlayer:\n\u003cul\u003e\n\u003cli\u003eMove the flag to enable/disable HAGC metadata for progressive media from \u003ccode\u003eMediaSource.Factory\u003c/code\u003e to \u003ccode\u003eExtractorsFactory\u003c/code\u003e. The previous \u003ccode\u003esetExperimentalEnableHagcPlayback\u003c/code\u003e method is removed and replaced by \u003ccode\u003eExtractorsFactory.setParseHagcMetadata\u003c/code\u003e. This also resolves an issue where disabling didn't work for Matroska/WebM containers.\u003c/li\u003e\n\u003cli\u003eFix a playback stall caused when prewarming a non-transitioning secondary renderer.\u003c/li\u003e\n\u003cli\u003eFix pre-warming issue where the \u003ccode\u003eSurface\u003c/code\u003e should be returned to the primary renderer when a seek resets and disables both renderers.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eArrayIndexOutOfBoundsException\u003c/code\u003e when a live timeline refresh moves the default position past a server-side inserted ad that is currently being played (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3348\"\u003e#3348\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix a scrubbing mode issue where stale video frames could be briefly displayed when seeking with \u003ccode\u003eScrubbingModeParameters.allowSkippingMediaCodecFlush\u003c/code\u003e enabled.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eExtractors:\n\u003cul\u003e\n\u003cli\u003eMatroska: Fix issue where Tracks placed after clusters wouldn't result in a seekable timeline (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3377\"\u003e#3377\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAudio:\n\u003cul\u003e\n\u003cli\u003eFix buffer size calculation in \u003ccode\u003eSilenceSkippingAudioProcessor\u003c/code\u003e so that the minimum silence duration is not incorrectly scaled down by the frame size (\u003ca href=\"https://redirect.github.com/androidx/media/pull/3271\"\u003e#3271\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix 8-bit PCM handling in \u003ccode\u003ePcmAudioUtil\u003c/code\u003e to treat samples as unsigned as defined by Android (\u003ca href=\"https://redirect.github.com/androidx/media/pull/3271\"\u003e#3271\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix offload issue in which playback could stall during pre-roll or gapless transitions due to limited hardware buffer sizes.\u003c/li\u003e\n\u003cli\u003eFix bug in \u003ccode\u003eDefaultAudioSink\u003c/code\u003e where release count doesn't decrease when playback thread is no longer alive (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3338\"\u003e#3338\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eSession:\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eNullPointerException\u003c/code\u003e when an in-process \u003ccode\u003eMediaController\u003c/code\u003e is released from a \u003ccode\u003ePlayer.Listener\u003c/code\u003e callback (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3375\"\u003e#3375\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix deadlock on the main thread when a legacy \u003ccode\u003eMediaBrowser\u003c/code\u003e connects to a service returning an asynchronous result from \u003ccode\u003eonGetLibraryRoot()\u003c/code\u003e or \u003ccode\u003eonConnectAsync()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3393\"\u003e#3393\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eHLS extension:\n\u003cul\u003e\n\u003cli\u003eFix calculation of content resume offset when the target segment for snapping is not yet in the playlist (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3322\"\u003e#3322\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where a fully consumed \u003ccode\u003eHlsMediaChunk\u003c/code\u003e retries loading on receiving \u003ccode\u003eEOFException\u003c/code\u003e from the extractor (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3350\"\u003e#3350\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDASH extension:\n\u003cul\u003e\n\u003cli\u003eFix incorrect sample timestamp calculation for image tracks with a \u003ccode\u003epresentationTimeOffset\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3334\"\u003e#3334\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDecoder extensions (FFmpeg, VP9, AV1, etc.):\n\u003cul\u003e\n\u003cli\u003eOpus: Fix memory corruption when multiple \u003ccode\u003eOpusDecoder\u003c/code\u003e instances are initialized concurrently.\u003c/li\u003e\n\u003cli\u003eMPEG-H: Fix memory leak, truncation of non-ASCII characters, and potential native crash under low-memory conditions when sending commands to the \u003ccode\u003eMpeghUiManager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3365\"\u003e#3365\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/androidx/media/blob/release/RELEASENOTES.md\"\u003eandroidx.media3:media3-ui's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e1.11.1 (2026-09-10)\u003c/h3\u003e\n\u003cp\u003eThis release includes the following changes since the\n\u003ca href=\"https://github.com/androidx/media/blob/release/#1110-2026-08-05\"\u003e1.11.0 release\u003c/a\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eExoPlayer:\n\u003cul\u003e\n\u003cli\u003eMove the flag to enable/disable HAGC metadata for progressive media from\n\u003ccode\u003eMediaSource.Factory\u003c/code\u003e to \u003ccode\u003eExtractorsFactory\u003c/code\u003e. The previous\n\u003ccode\u003esetExperimentalEnableHagcPlayback\u003c/code\u003e method is removed and replaced by\n\u003ccode\u003eExtractorsFactory.setParseHagcMetadata\u003c/code\u003e. This also resolves an issue\nwhere disabling didn't work for Matroska/WebM containers.\u003c/li\u003e\n\u003cli\u003eFix a playback stall caused when prewarming a non-transitioning\nsecondary renderer.\u003c/li\u003e\n\u003cli\u003eFix pre-warming issue where the \u003ccode\u003eSurface\u003c/code\u003e should be returned to the\nprimary renderer when a seek resets and disables both renderers.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eArrayIndexOutOfBoundsException\u003c/code\u003e when a live timeline refresh moves\nthe default position past a server-side inserted ad that is currently\nbeing played (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3348\"\u003e#3348\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix a scrubbing mode issue where stale video frames could be briefly\ndisplayed when seeking with\n\u003ccode\u003eScrubbingModeParameters.allowSkippingMediaCodecFlush\u003c/code\u003e enabled.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eExtractors:\n\u003cul\u003e\n\u003cli\u003eMatroska: Fix issue where Tracks placed after clusters wouldn't result\nin a seekable timeline\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3377\"\u003e#3377\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAudio:\n\u003cul\u003e\n\u003cli\u003eFix buffer size calculation in \u003ccode\u003eSilenceSkippingAudioProcessor\u003c/code\u003e so that\nthe minimum silence duration is not incorrectly scaled down by the frame\nsize (\u003ca href=\"https://redirect.github.com/androidx/media/pull/3271\"\u003e#3271\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix 8-bit PCM handling in \u003ccode\u003ePcmAudioUtil\u003c/code\u003e to treat samples as unsigned as\ndefined by Android\n(\u003ca href=\"https://redirect.github.com/androidx/media/pull/3271\"\u003e#3271\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix offload issue in which playback could stall during pre-roll or\ngapless transitions due to limited hardware buffer sizes.\u003c/li\u003e\n\u003cli\u003eFix bug in \u003ccode\u003eDefaultAudioSink\u003c/code\u003e where release count doesn't decrease when\nplayback thread is no longer alive\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3338\"\u003e#3338\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eSession:\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eNullPointerException\u003c/code\u003e when an in-process \u003ccode\u003eMediaController\u003c/code\u003e is\nreleased from a \u003ccode\u003ePlayer.Listener\u003c/code\u003e callback\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3375\"\u003e#3375\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix deadlock on the main thread when a legacy \u003ccode\u003eMediaBrowser\u003c/code\u003e connects to\na service returning an asynchronous result from \u003ccode\u003eonGetLibraryRoot()\u003c/code\u003e or\n\u003ccode\u003eonConnectAsync()\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3393\"\u003e#3393\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eHLS extension:\n\u003cul\u003e\n\u003cli\u003eFix calculation of content resume offset when the target segment for\nsnapping is not yet in the playlist\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3322\"\u003e#3322\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where a fully consumed \u003ccode\u003eHlsMediaChunk\u003c/code\u003e retries loading on\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/8c6678b657ede1e7883fc164ef73ed483c7796c3\"\u003e\u003ccode\u003e8c6678b\u003c/code\u003e\u003c/a\u003e Bump version to 1.11.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/4b610b15d2b924e059e4f605ad912ff978e86e92\"\u003e\u003ccode\u003e4b610b1\u003c/code\u003e\u003c/a\u003e Update release notes for 1.11.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/e9757e6d11208d66d1ae020664dad2ce16a962ef\"\u003e\u003ccode\u003ee9757e6\u003c/code\u003e\u003c/a\u003e Fix deadlock when legacy MediaBrowser connects to async root or session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/9b8000d7eb57b347b2c40092b83a18c6a49173b2\"\u003e\u003ccode\u003e9b8000d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/androidx/media/issues/3271\"\u003e#3271\u003c/a\u003e from nift4:oddmath\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/6ada45cd1644582657afd0f0c750521f86a9e7b7\"\u003e\u003ccode\u003e6ada45c\u003c/code\u003e\u003c/a\u003e Add end-to-end test for ITU-T T.35 track muxing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/d23ba393a05c29244f9a184e7844411dc0dcd000\"\u003e\u003ccode\u003ed23ba39\u003c/code\u003e\u003c/a\u003e Normalize non-positive frame rates in MediaFormatUtil\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/383e770282f6ed31ffdea3362545282e4efc916b\"\u003e\u003ccode\u003e383e770\u003c/code\u003e\u003c/a\u003e Generalize useInputBuffer to useBuffer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/71e41121baddc80d2d175d4ce270d2cbe88f5aca\"\u003e\u003ccode\u003e71e4112\u003c/code\u003e\u003c/a\u003e MPEG-H: Fix UI manager command encoding and memory leak\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/eb2965ce41951e8f8437fba7a4dfc318585eb08a\"\u003e\u003ccode\u003eeb2965c\u003c/code\u003e\u003c/a\u003e Matroska: Fix seekable timeline with Tracks after Clusters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/a827bd5689d896868a10758a5caf19ce315a5741\"\u003e\u003ccode\u003ea827bd5\u003c/code\u003e\u003c/a\u003e Fix incorrect render of stale frames after a seek with skipped flush.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/androidx/media/compare/1.11.0...1.11.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `androidx.media3:media3-session` from 1.11.0 to 1.11.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/androidx/media/releases\"\u003eandroidx.media3:media3-session's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.11.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExoPlayer:\n\u003cul\u003e\n\u003cli\u003eMove the flag to enable/disable HAGC metadata for progressive media from \u003ccode\u003eMediaSource.Factory\u003c/code\u003e to \u003ccode\u003eExtractorsFactory\u003c/code\u003e. The previous \u003ccode\u003esetExperimentalEnableHagcPlayback\u003c/code\u003e method is removed and replaced by \u003ccode\u003eExtractorsFactory.setParseHagcMetadata\u003c/code\u003e. This also resolves an issue where disabling didn't work for Matroska/WebM containers.\u003c/li\u003e\n\u003cli\u003eFix a playback stall caused when prewarming a non-transitioning secondary renderer.\u003c/li\u003e\n\u003cli\u003eFix pre-warming issue where the \u003ccode\u003eSurface\u003c/code\u003e should be returned to the primary renderer when a seek resets and disables both renderers.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eArrayIndexOutOfBoundsException\u003c/code\u003e when a live timeline refresh moves the default position past a server-side inserted ad that is currently being played (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3348\"\u003e#3348\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix a scrubbing mode issue where stale video frames could be briefly displayed when seeking with \u003ccode\u003eScrubbingModeParameters.allowSkippingMediaCodecFlush\u003c/code\u003e enabled.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eExtractors:\n\u003cul\u003e\n\u003cli\u003eMatroska: Fix issue where Tracks placed after clusters wouldn't result in a seekable timeline (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3377\"\u003e#3377\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAudio:\n\u003cul\u003e\n\u003cli\u003eFix buffer size calculation in \u003ccode\u003eSilenceSkippingAudioProcessor\u003c/code\u003e so that the minimum silence duration is not incorrectly scaled down by the frame size (\u003ca href=\"https://redirect.github.com/androidx/media/pull/3271\"\u003e#3271\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix 8-bit PCM handling in \u003ccode\u003ePcmAudioUtil\u003c/code\u003e to treat samples as unsigned as defined by Android (\u003ca href=\"https://redirect.github.com/androidx/media/pull/3271\"\u003e#3271\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix offload issue in which playback could stall during pre-roll or gapless transitions due to limited hardware buffer sizes.\u003c/li\u003e\n\u003cli\u003eFix bug in \u003ccode\u003eDefaultAudioSink\u003c/code\u003e where release count doesn't decrease when playback thread is no longer alive (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3338\"\u003e#3338\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eSession:\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eNullPointerException\u003c/code\u003e when an in-process \u003ccode\u003eMediaController\u003c/code\u003e is released from a \u003ccode\u003ePlayer.Listener\u003c/code\u003e callback (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3375\"\u003e#3375\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix deadlock on the main thread when a legacy \u003ccode\u003eMediaBrowser\u003c/code\u003e connects to a service returning an asynchronous result from \u003ccode\u003eonGetLibraryRoot()\u003c/code\u003e or \u003ccode\u003eonConnectAsync()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3393\"\u003e#3393\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eHLS extension:\n\u003cul\u003e\n\u003cli\u003eFix calculation of content resume offset when the target segment for snapping is not yet in the playlist (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3322\"\u003e#3322\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where a fully consumed \u003ccode\u003eHlsMediaChunk\u003c/code\u003e retries loading on receiving \u003ccode\u003eEOFException\u003c/code\u003e from the extractor (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3350\"\u003e#3350\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDASH extension:\n\u003cul\u003e\n\u003cli\u003eFix incorrect sample timestamp calculation for image tracks with a \u003ccode\u003epresentationTimeOffset\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3334\"\u003e#3334\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDecoder extensions (FFmpeg, VP9, AV1, etc.):\n\u003cul\u003e\n\u003cli\u003eOpus: Fix memory corruption when multiple \u003ccode\u003eOpusDecoder\u003c/code\u003e instances are initialized concurrently.\u003c/li\u003e\n\u003cli\u003eMPEG-H: Fix memory leak, truncation of non-ASCII characters, and potential native crash under low-memory conditions when sending commands to the \u003ccode\u003eMpeghUiManager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3365\"\u003e#3365\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/androidx/media/blob/release/RELEASENOTES.md\"\u003eandroidx.media3:media3-session's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e1.11.1 (2026-09-10)\u003c/h3\u003e\n\u003cp\u003eThis release includes the following changes since the\n\u003ca href=\"https://github.com/androidx/media/blob/release/#1110-2026-08-05\"\u003e1.11.0 release\u003c/a\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eExoPlayer:\n\u003cul\u003e\n\u003cli\u003eMove the flag to enable/disable HAGC metadata for progressive media from\n\u003ccode\u003eMediaSource.Factory\u003c/code\u003e to \u003ccode\u003eExtractorsFactory\u003c/code\u003e. The previous\n\u003ccode\u003esetExperimentalEnableHagcPlayback\u003c/code\u003e method is removed and replaced by\n\u003ccode\u003eExtractorsFactory.setParseHagcMetadata\u003c/code\u003e. This also resolves an issue\nwhere disabling didn't work for Matroska/WebM containers.\u003c/li\u003e\n\u003cli\u003eFix a playback stall caused when prewarming a non-transitioning\nsecondary renderer.\u003c/li\u003e\n\u003cli\u003eFix pre-warming issue where the \u003ccode\u003eSurface\u003c/code\u003e should be returned to the\nprimary renderer when a seek resets and disables both renderers.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eArrayIndexOutOfBoundsException\u003c/code\u003e when a live timeline refresh moves\nthe default position past a server-side inserted ad that is currently\nbeing played (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3348\"\u003e#3348\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix a scrubbing mode issue where stale video frames could be briefly\ndisplayed when seeking with\n\u003ccode\u003eScrubbingModeParameters.allowSkippingMediaCodecFlush\u003c/code\u003e enabled.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eExtractors:\n\u003cul\u003e\n\u003cli\u003eMatroska: Fix issue where Tracks placed after clusters wouldn't result\nin a seekable timeline\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3377\"\u003e#3377\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAudio:\n\u003cul\u003e\n\u003cli\u003eFix buffer size calculation in \u003ccode\u003eSilenceSkippingAudioProcessor\u003c/code\u003e so that\nthe minimum silence duration is not incorrectly scaled down by the frame\nsize (\u003ca href=\"https://redirect.github.com/androidx/media/pull/3271\"\u003e#3271\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix 8-bit PCM handling in \u003ccode\u003ePcmAudioUtil\u003c/code\u003e to treat samples as unsigned as\ndefined by Android\n(\u003ca href=\"https://redirect.github.com/androidx/media/pull/3271\"\u003e#3271\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix offload issue in which playback could stall during pre-roll or\ngapless transitions due to limited hardware buffer sizes.\u003c/li\u003e\n\u003cli\u003eFix bug in \u003ccode\u003eDefaultAudioSink\u003c/code\u003e where release count doesn't decrease when\nplayback thread is no longer alive\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3338\"\u003e#3338\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eSession:\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eNullPointerException\u003c/code\u003e when an in-process \u003ccode\u003eMediaController\u003c/code\u003e is\nreleased from a \u003ccode\u003ePlayer.Listener\u003c/code\u003e callback\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3375\"\u003e#3375\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix deadlock on the main thread when a legacy \u003ccode\u003eMediaBrowser\u003c/code\u003e connects to\na service returning an asynchronous result from \u003ccode\u003eonGetLibraryRoot()\u003c/code\u003e or\n\u003ccode\u003eonConnectAsync()\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3393\"\u003e#3393\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eHLS extension:\n\u003cul\u003e\n\u003cli\u003eFix calculation of content resume offset when the target segment for\nsnapping is not yet in the playlist\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3322\"\u003e#3322\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where a fully consumed \u003ccode\u003eHlsMediaChunk\u003c/code\u003e retries loading on\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/8c6678b657ede1e7883fc164ef73ed483c7796c3\"\u003e\u003ccode\u003e8c6678b\u003c/code\u003e\u003c/a\u003e Bump version to 1.11.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/4b610b15d2b924e059e4f605ad912ff978e86e92\"\u003e\u003ccode\u003e4b610b1\u003c/code\u003e\u003c/a\u003e Update release notes for 1.11.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/e9757e6d11208d66d1ae020664dad2ce16a962ef\"\u003e\u003ccode\u003ee9757e6\u003c/code\u003e\u003c/a\u003e Fix deadlock when legacy MediaBrowser connects to async root or session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/9b8000d7eb57b347b2c40092b83a18c6a49173b2\"\u003e\u003ccode\u003e9b8000d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/androidx/media/issues/3271\"\u003e#3271\u003c/a\u003e from nift4:oddmath\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/6ada45cd1644582657afd0f0c750521f86a9e7b7\"\u003e\u003ccode\u003e6ada45c\u003c/code\u003e\u003c/a\u003e Add end-to-end test for ITU-T T.35 track muxing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/d23ba393a05c29244f9a184e7844411dc0dcd000\"\u003e\u003ccode\u003ed23ba39\u003c/code\u003e\u003c/a\u003e Normalize non-positive frame rates in MediaFormatUtil\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/383e770282f6ed31ffdea3362545282e4efc916b\"\u003e\u003ccode\u003e383e770\u003c/code\u003e\u003c/a\u003e Generalize useInputBuffer to useBuffer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/71e41121baddc80d2d175d4ce270d2cbe88f5aca\"\u003e\u003ccode\u003e71e4112\u003c/code\u003e\u003c/a\u003e MPEG-H: Fix UI manager command encoding and memory leak\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/eb2965ce41951e8f8437fba7a4dfc318585eb08a\"\u003e\u003ccode\u003eeb2965c\u003c/code\u003e\u003c/a\u003e Matroska: Fix seekable timeline with Tracks after Clusters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/a827bd5689d896868a10758a5caf19ce315a5741\"\u003e\u003ccode\u003ea827bd5\u003c/code\u003e\u003c/a\u003e Fix incorrect render of stale frames after a seek with skipped flush.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/androidx/media/compare/1.11.0...1.11.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `androidx.media3:media3-ui` from 1.11.0 to 1.11.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/androidx/media/releases\"\u003eandroidx.media3:media3-ui's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.11.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExoPlayer:\n\u003cul\u003e\n\u003cli\u003eMove the flag to enable/disable HAGC metadata for progressive media from \u003ccode\u003eMediaSource.Factory\u003c/code\u003e to \u003ccode\u003eExtractorsFactory\u003c/code\u003e. The previous \u003ccode\u003esetExperimentalEnableHagcPlayback\u003c/code\u003e method is removed and replaced by \u003ccode\u003eExtractorsFactory.setParseHagcMetadata\u003c/code\u003e. This also resolves an issue where disabling didn't work for Matroska/WebM containers.\u003c/li\u003e\n\u003cli\u003eFix a playback stall caused when prewarming a non-transitioning secondary renderer.\u003c/li\u003e\n\u003cli\u003eFix pre-warming issue where the \u003ccode\u003eSurface\u003c/code\u003e should be returned to the primary renderer when a seek resets and disables both renderers.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eArrayIndexOutOfBoundsException\u003c/code\u003e when a live timeline refresh moves the default position past a server-side inserted ad that is currently being played (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3348\"\u003e#3348\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix a scrubbing mode issue where stale video frames could be briefly displayed when seeking with \u003ccode\u003eScrubbingModeParameters.allowSkippingMediaCodecFlush\u003c/code\u003e enabled.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eExtractors:\n\u003cul\u003e\n\u003cli\u003eMatroska: Fix issue where Tracks placed after clusters wouldn't result in a seekable timeline (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3377\"\u003e#3377\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAudio:\n\u003cul\u003e\n\u003cli\u003eFix buffer size calculation in \u003ccode\u003eSilenceSkippingAudioProcessor\u003c/code\u003e so that the minimum silence duration is not incorrectly scaled down by the frame size (\u003ca href=\"https://redirect.github.com/androidx/media/pull/3271\"\u003e#3271\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix 8-bit PCM handling in \u003ccode\u003ePcmAudioUtil\u003c/code\u003e to treat samples as unsigned as defined by Android (\u003ca href=\"https://redirect.github.com/androidx/media/pull/3271\"\u003e#3271\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix offload issue in which playback could stall during pre-roll or gapless transitions due to limited hardware buffer sizes.\u003c/li\u003e\n\u003cli\u003eFix bug in \u003ccode\u003eDefaultAudioSink\u003c/code\u003e where release count doesn't decrease when playback thread is no longer alive (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3338\"\u003e#3338\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eSession:\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eNullPointerException\u003c/code\u003e when an in-process \u003ccode\u003eMediaController\u003c/code\u003e is released from a \u003ccode\u003ePlayer.Listener\u003c/code\u003e callback (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3375\"\u003e#3375\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix deadlock on the main thread when a legacy \u003ccode\u003eMediaBrowser\u003c/code\u003e connects to a service returning an asynchronous result from \u003ccode\u003eonGetLibraryRoot()\u003c/code\u003e or \u003ccode\u003eonConnectAsync()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3393\"\u003e#3393\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eHLS extension:\n\u003cul\u003e\n\u003cli\u003eFix calculation of content resume offset when the target segment for snapping is not yet in the playlist (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3322\"\u003e#3322\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where a fully consumed \u003ccode\u003eHlsMediaChunk\u003c/code\u003e retries loading on receiving \u003ccode\u003eEOFException\u003c/code\u003e from the extractor (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3350\"\u003e#3350\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDASH extension:\n\u003cul\u003e\n\u003cli\u003eFix incorrect sample timestamp calculation for image tracks with a \u003ccode\u003epresentationTimeOffset\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3334\"\u003e#3334\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDecoder extensions (FFmpeg, VP9, AV1, etc.):\n\u003cul\u003e\n\u003cli\u003eOpus: Fix memory corruption when multiple \u003ccode\u003eOpusDecoder\u003c/code\u003e instances are initialized concurrently.\u003c/li\u003e\n\u003cli\u003eMPEG-H: Fix memory leak, truncation of non-ASCII characters, and potential native crash under low-memory conditions when sending commands to the \u003ccode\u003eMpeghUiManager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3365\"\u003e#3365\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/androidx/media/blob/release/RELEASENOTES.md\"\u003eandroidx.media3:media3-ui's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e1.11.1 (2026-09-10)\u003c/h3\u003e\n\u003cp\u003eThis release includes the following changes since the\n\u003ca href=\"https://github.com/androidx/media/blob/release/#1110-2026-08-05\"\u003e1.11.0 release\u003c/a\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eExoPlayer:\n\u003cul\u003e\n\u003cli\u003eMove the flag to enable/disable HAGC metadata for progressive media from\n\u003ccode\u003eMediaSource.Factory\u003c/code\u003e to \u003ccode\u003eExtractorsFactory\u003c/code\u003e. The previous\n\u003ccode\u003esetExperimentalEnableHagcPlayback\u003c/code\u003e method is removed and replaced by\n\u003ccode\u003eExtractorsFactory.setParseHagcMetadata\u003c/code\u003e. This also resolves an issue\nwhere disabling didn't work for Matroska/WebM containers.\u003c/li\u003e\n\u003cli\u003eFix a playback stall caused when prewarming a non-transitioning\nsecondary renderer.\u003c/li\u003e\n\u003cli\u003eFix pre-warming issue where the \u003ccode\u003eSurface\u003c/code\u003e should be returned to the\nprimary renderer when a seek resets and disables both renderers.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eArrayIndexOutOfBoundsException\u003c/code\u003e when a live timeline refresh moves\nthe default position past a server-side inserted ad that is currently\nbeing played (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3348\"\u003e#3348\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix a scrubbing mode issue where stale video frames could be briefly\ndisplayed when seeking with\n\u003ccode\u003eScrubbingModeParameters.allowSkippingMediaCodecFlush\u003c/code\u003e enabled.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eExtractors:\n\u003cul\u003e\n\u003cli\u003eMatroska: Fix issue where Tracks placed after clusters wouldn't result\nin a seekable timeline\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3377\"\u003e#3377\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAudio:\n\u003cul\u003e\n\u003cli\u003eFix buffer size calculation in \u003ccode\u003eSilenceSkippingAudioProcessor\u003c/code\u003e so that\nthe minimum silence duration is not incorrectly scaled down by the frame\nsize (\u003ca href=\"https://redirect.github.com/androidx/media/pull/3271\"\u003e#3271\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix 8-bit PCM handling in \u003ccode\u003ePcmAudioUtil\u003c/code\u003e to treat samples as unsigned as\ndefined by Android\n(\u003ca href=\"https://redirect.github.com/androidx/media/pull/3271\"\u003e#3271\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix offload issue in which playback could stall during pre-roll or\ngapless transitions due to limited hardware buffer sizes.\u003c/li\u003e\n\u003cli\u003eFix bug in \u003ccode\u003eDefaultAudioSink\u003c/code\u003e where release count doesn't decrease when\nplayback thread is no longer alive\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3338\"\u003e#3338\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eSession:\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eNullPointerException\u003c/code\u003e when an in-process \u003ccode\u003eMediaController\u003c/code\u003e is\nreleased from a \u003ccode\u003ePlayer.Listener\u003c/code\u003e callback\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3375\"\u003e#3375\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix deadlock on the main thread when a legacy \u003ccode\u003eMediaBrowser\u003c/code\u003e connects to\na service returning an asynchronous result from \u003ccode\u003eonGetLibraryRoot()\u003c/code\u003e or\n\u003ccode\u003eonConnectAsync()\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3393\"\u003e#3393\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eHLS extension:\n\u003cul\u003e\n\u003cli\u003eFix calculation of content resume offset when the target segment for\nsnapping is not yet in the playlist\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3322\"\u003e#3322\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where a fully consumed \u003ccode\u003eHlsMediaChunk\u003c/code\u003e retries loading on\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/8c6678b657ede1e7883fc164ef73ed483c7796c3\"\u003e\u003ccode\u003e8c6678b\u003c/code\u003e\u003c/a\u003e Bump version to 1.11.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/4b610b15d2b924e059e4f605ad912ff978e86e92\"\u003e\u003ccode\u003e4b610b1\u003c/code\u003e\u003c/a\u003e Update release notes for 1.11.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/e9757e6d11208d66d1ae020664dad2ce16a962ef\"\u003e\u003ccode\u003ee9757e6\u003c/code\u003e\u003c/a\u003e Fix deadlock when legacy MediaBrowser connects to async root or session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/9b8000d7eb57b347b2c40092b83a18c6a49173b2\"\u003e\u003ccode\u003e9b8000d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/androidx/media/issues/3271\"\u003e#3271\u003c/a\u003e from nift4:oddmath\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/6ada45cd1644582657afd0f0c750521f86a9e7b7\"\u003e\u003ccode\u003e6ada45c\u003c/code\u003e\u003c/a\u003e Add end-to-end test for ITU-T T.35 track muxing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/d23ba393a05c29244f9a184e7844411dc0dcd000\"\u003e\u003ccode\u003ed23ba39\u003c/code\u003e\u003c/a\u003e Normalize non-positive frame rates in MediaFormatUtil\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/383e770282f6ed31ffdea3362545282e4efc916b\"\u003e\u003ccode\u003e383e770\u003c/code\u003e\u003c/a\u003e Generalize useInputBuffer to useBuffer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/71e41121baddc80d2d175d4ce270d2cbe88f5aca\"\u003e\u003ccode\u003e71e4112\u003c/code\u003e\u003c/a\u003e MPEG-H: Fix UI manager command encoding and memory leak\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/eb2965ce41951e8f8437fba7a4dfc318585eb08a\"\u003e\u003ccode\u003eeb2965c\u003c/code\u003e\u003c/a\u003e Matroska: Fix seekable timeline with Tracks after Clusters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/a827bd5689d896868a10758a5caf19ce315a5741\"\u003e\u003ccode\u003ea827bd5\u003c/code\u003e\u003c/a\u003e Fix incorrect render of stale frames after a seek with skipped flush.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/androidx/media/compare/1.11.0...1.11.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `androidx.media3:media3-session` from 1.11.0 to 1.11.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/androidx/media/releases\"\u003eandroidx.media3:media3-session's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.11.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExoPlayer:\n\u003cul\u003e\n\u003cli\u003eMove the flag to enable/disable HAGC metadata for progressive media from \u003ccode\u003eMediaSource.Factory\u003c/code\u003e to \u003ccode\u003eExtractorsFactory\u003c/code\u003e. The previous \u003ccode\u003esetExperimentalEnableHagcPlayback\u003c/code\u003e method is removed and replaced by \u003ccode\u003eExtractorsFactory.setParseHagcMetadata\u003c/code\u003e. This also resolves an issue where disabling didn't work for Matroska/WebM containers.\u003c/li\u003e\n\u003cli\u003eFix a playback stall caused when prewarming a non-transitioning secondary renderer.\u003c/li\u003e\n\u003cli\u003eFix pre-warming issue where the \u003ccode\u003eSurface\u003c/code\u003e should be returned to the primary renderer when a seek resets and disables both renderers.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eArrayIndexOutOfBoundsException\u003c/code\u003e when a live timeline refresh moves the default position past a server-side inserted ad that is currently being played (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3348\"\u003e#3348\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix a scrubbing mode issue where stale video frames could be briefly displayed when seeking with \u003ccode\u003eScrubbingModeParameters.allowSkippingMediaCodecFlush\u003c/code\u003e enabled.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eExtractors:\n\u003cul\u003e\n\u003cli\u003eMatroska: Fix issue where Tracks placed after clusters wouldn't result in a seekable timeline (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3377\"\u003e#3377\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAudio:\n\u003cul\u003e\n\u003cli\u003eFix buffer size calculation in \u003ccode\u003eSilenceSkippingAudioProcessor\u003c/code\u003e so that the minimum silence duration is not incorrectly scaled down by the frame size (\u003ca href=\"https://redirect.github.com/androidx/media/pull/3271\"\u003e#3271\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix 8-bit PCM handling in \u003ccode\u003ePcmAudioUtil\u003c/code\u003e to treat samples as unsigned as defined by Android (\u003ca href=\"https://redirect.github.com/androidx/media/pull/3271\"\u003e#3271\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix offload issue in which playback could stall during pre-roll or gapless transitions due to limited hardware buffer sizes.\u003c/li\u003e\n\u003cli\u003eFix bug in \u003ccode\u003eDefaultAudioSink\u003c/code\u003e where release count doesn't decrease when playback thread is no longer alive (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3338\"\u003e#3338\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eSession:\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eNullPointerException\u003c/code\u003e when an in-process \u003ccode\u003eMediaController\u003c/code\u003e is released from a \u003ccode\u003ePlayer.Listener\u003c/code\u003e callback (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3375\"\u003e#3375\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix deadlock on the main thread when a legacy \u003ccode\u003eMediaBrowser\u003c/code\u003e connects to a service returning an asynchronous result from \u003ccode\u003eonGetLibraryRoot()\u003c/code\u003e or \u003ccode\u003eonConnectAsync()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3393\"\u003e#3393\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eHLS extension:\n\u003cul\u003e\n\u003cli\u003eFix calculation of content resume offset when the target segment for snapping is not yet in the playlist (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3322\"\u003e#3322\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where a fully consumed \u003ccode\u003eHlsMediaChunk\u003c/code\u003e retries loading on receiving \u003ccode\u003eEOFException\u003c/code\u003e from the extractor (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3350\"\u003e#3350\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDASH extension:\n\u003cul\u003e\n\u003cli\u003eFix incorrect sample timestamp calculation for image tracks with a \u003ccode\u003epresentationTimeOffset\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3334\"\u003e#3334\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDecoder extensions (FFmpeg, VP9, AV1, etc.):\n\u003cul\u003e\n\u003cli\u003eOpus: Fix memory corruption when multiple \u003ccode\u003eOpusDecoder\u003c/code\u003e instances are initialized concurrently.\u003c/li\u003e\n\u003cli\u003eMPEG-H: Fix memory leak, truncation of non-ASCII characters, and potential native crash under low-memory conditions when sending commands to the \u003ccode\u003eMpeghUiManager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3365\"\u003e#3365\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/androidx/media/blob/release/RELEASENOTES.md\"\u003eandroidx.media3:media3-session's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e1.11.1 (2026-09-10)\u003c/h3\u003e\n\u003cp\u003eThis release includes the following changes since the\n\u003ca href=\"https://github.com/androidx/media/blob/release/#1110-2026-08-05\"\u003e1.11.0 release\u003c/a\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eExoPlayer:\n\u003cul\u003e\n\u003cli\u003eMove the flag to enable/disable HAGC metadata for progressive media from\n\u003ccode\u003eMediaSource.Factory\u003c/code\u003e to \u003ccode\u003eExtractorsFactory\u003c/code\u003e. The previous\n\u003ccode\u003esetExperimentalEnableHagcPlayback\u003c/code\u003e method is removed and replaced by\n\u003ccode\u003eExtractorsFactory.setParseHagcMetadata\u003c/code\u003e. This also resolves an issue\nwhere disabling didn't work for Matroska/WebM containers.\u003c/li\u003e\n\u003cli\u003eFix a playback stall caused when prewarming a non-transitioning\nsecondary renderer.\u003c/li\u003e\n\u003cli\u003eFix pre-warming issue where the \u003ccode\u003eSurface\u003c/code\u003e should be returned to the\nprimary renderer when a seek resets and disables both renderers.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eArrayIndexOutOfBoundsException\u003c/code\u003e when a live timeline refresh moves\nthe default position past a server-side inserted ad that is currently\nbeing played (\u003ca href=\"https://redirect.github.com/androidx/media/issues/3348\"\u003e#3348\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix a scrubbing mode issue where stale video frames could be briefly\ndisplayed when seeking with\n\u003ccode\u003eScrubbingModeParameters.allowSkippingMediaCodecFlush\u003c/code\u003e enabled.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eExtractors:\n\u003cul\u003e\n\u003cli\u003eMatroska: Fix issue where Tracks placed after clusters wouldn't result\nin a seekable timeline\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3377\"\u003e#3377\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAudio:\n\u003cul\u003e\n\u003cli\u003eFix buffer size calculation in \u003ccode\u003eSilenceSkippingAudioProcessor\u003c/code\u003e so that\nthe minimum silence duration is not incorrectly scaled down by the frame\nsize (\u003ca href=\"https://redirect.github.com/androidx/media/pull/3271\"\u003e#3271\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix 8-bit PCM handling in \u003ccode\u003ePcmAudioUtil\u003c/code\u003e to treat samples as unsigned as\ndefined by Android\n(\u003ca href=\"https://redirect.github.com/androidx/media/pull/3271\"\u003e#3271\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix offload issue in which playback could stall during pre-roll or\ngapless transitions due to limited hardware buffer sizes.\u003c/li\u003e\n\u003cli\u003eFix bug in \u003ccode\u003eDefaultAudioSink\u003c/code\u003e where release count doesn't decrease when\nplayback thread is no longer alive\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3338\"\u003e#3338\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eSession:\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eNullPointerException\u003c/code\u003e when an in-process \u003ccode\u003eMediaController\u003c/code\u003e is\nreleased from a \u003ccode\u003ePlayer.Listener\u003c/code\u003e callback\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3375\"\u003e#3375\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix deadlock on the main thread when a legacy \u003ccode\u003eMediaBrowser\u003c/code\u003e connects to\na service returning an asynchronous result from \u003ccode\u003eonGetLibraryRoot()\u003c/code\u003e or\n\u003ccode\u003eonConnectAsync()\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3393\"\u003e#3393\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eHLS extension:\n\u003cul\u003e\n\u003cli\u003eFix calculation of content resume offset when the target segment for\nsnapping is not yet in the playlist\n(\u003ca href=\"https://redirect.github.com/androidx/media/issues/3322\"\u003e#3322\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where a fully consumed \u003ccode\u003eHlsMediaChunk\u003c/code\u003e retries loading on\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/8c6678b657ede1e7883fc164ef73ed483c7796c3\"\u003e\u003ccode\u003e8c6678b\u003c/code\u003e\u003c/a\u003e Bump version to 1.11.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/4b610b15d2b924e059e4f605ad912ff978e86e92\"\u003e\u003ccode\u003e4b610b1\u003c/code\u003e\u003c/a\u003e Update release notes for 1.11.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/e9757e6d11208d66d1ae020664dad2ce16a962ef\"\u003e\u003ccode\u003ee9757e6\u003c/code\u003e\u003c/a\u003e Fix deadlock when legacy MediaBrowser connects to async root or session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/9b8000d7eb57b347b2c40092b83a18c6a49173b2\"\u003e\u003ccode\u003e9b8000d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/androidx/media/issues/3271\"\u003e#3271\u003c/a\u003e from nift4:oddmath\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/6ada45cd1644582657afd0f0c750521f86a9e7b7\"\u003e\u003ccode\u003e6ada45c\u003c/code\u003e\u003c/a\u003e Add end-to-end test for ITU-T T.35 track muxing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/d23ba393a05c29244f9a184e7844411dc0dcd000\"\u003e\u003ccode\u003ed23ba39\u003c/code\u003e\u003c/a\u003e Normalize non-positive frame rates in MediaFormatUtil\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/383e770282f6ed31ffdea3362545282e4efc916b\"\u003e\u003ccode\u003e383e770\u003c/code\u003e\u003c/a\u003e Generalize useInputBuffer to useBuffer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/71e41121baddc80d2d175d4ce270d2cbe88f5aca\"\u003e\u003ccode\u003e71e4112\u003c/code\u003e\u003c/a\u003e MPEG-H: Fix UI manager command encoding and memory leak\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/eb2965ce41951e8f8437fba7a4dfc318585eb08a\"\u003e\u003ccode\u003eeb2965c\u003c/code\u003e\u003c/a\u003e Matroska: Fix seekable timeline with Tracks after Clusters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/androidx/media/commit/a827bd5689d896868a10758a5caf19ce315a5741\"\u003e\u003ccode\u003ea827bd5\u003c/code\u003e\u003c/a\u003e Fix incorrect render of stale frames after a seek with skipped flush.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/androidx/media/compare/1.11.0...1.11.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.plugin.compose` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.plugin.compose's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a s...\n\n_Description has been truncated_","html_url":"https://github.com/keanehatescoding/CyberShield/pull/89","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/keanehatescoding%2FCyberShield/issues/89","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/89/packages"}},{"old_version":"2.4.10","new_version":"2.4.20","update_type":"patch","path":"/mobile","pr_created_at":"2026-09-14T20:50:54.000Z","version_change":"2.4.10 → 2.4.20","issue":{"uuid":"5454473500","node_id":"PR_kwDOQFR_FM8AAAABDg078w","number":650,"state":"open","title":"chore(deps): bump the gradle-minor-patch group in /mobile with 12 updates","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-14T20:50:54.000Z","updated_at":"2026-09-15T20:45:33.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"gradle-minor-patch","update_count":12,"packages":[{"name":"org.jetbrains.kotlin:kotlin-test-junit","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"androidx.navigation:navigation-testing","old_version":"2.10.0","new_version":"2.10.1"},{"name":"androidx.compose:compose-bom","old_version":"2026.08.00","new_version":"2026.09.00"},{"name":"androidx.navigation:navigation-compose","old_version":"2.10.0","new_version":"2.10.1"},{"name":"io.sentry:sentry-android","old_version":"8.55.0","new_version":"8.56.0","repository_url":"https://github.com/getsentry/sentry-java"},{"name":"org.jetbrains.kotlin:kotlin-test","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.multiplatform","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.android","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.compose","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.robolectric:robolectric","old_version":"4.16.1","new_version":"4.17","repository_url":"https://github.com/robolectric/robolectric"},{"name":"io.sentry.android.gradle","old_version":"6.21.0","new_version":"6.22.0","repository_url":"https://github.com/getsentry/sentry-android-gradle-plugin"}],"path":"/mobile","ecosystem":"maven"},"body":"[//]: # (dependabot-start)\n⚠️  **Dependabot is rebasing this PR** ⚠️ \n\nRebasing might not happen immediately, so don't worry if this takes some time.\n\nNote: if you make any changes to this PR yourself, they will take precedence over the rebase.\n\n---\n\n[//]: # (dependabot-end)\n\nBumps the gradle-minor-patch group in /mobile with 12 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [org.jetbrains.kotlin:kotlin-test-junit](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| androidx.navigation:navigation-testing | `2.10.0` | `2.10.1` |\n| androidx.compose:compose-bom | `2026.08.00` | `2026.09.00` |\n| androidx.navigation:navigation-compose | `2.10.0` | `2.10.1` |\n| [io.sentry:sentry-android](https://github.com/getsentry/sentry-java) | `8.55.0` | `8.56.0` |\n| [org.jetbrains.kotlin:kotlin-test](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.multiplatform](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.serialization](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.compose](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.robolectric:robolectric](https://github.com/robolectric/robolectric) | `4.16.1` | `4.17` |\n| [io.sentry.android.gradle](https://github.com/getsentry/sentry-android-gradle-plugin) | `6.21.0` | `6.22.0` |\n\nUpdates `org.jetbrains.kotlin:kotlin-test-junit` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin:kotlin-test-junit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin:kotlin-test-junit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `androidx.navigation:navigation-testing` from 2.10.0 to 2.10.1\n\nUpdates `androidx.compose:compose-bom` from 2026.08.00 to 2026.09.00\n\nUpdates `androidx.navigation:navigation-compose` from 2.10.0 to 2.10.1\n\nUpdates `io.sentry:sentry-android` from 8.55.0 to 8.56.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-java/releases\"\u003eio.sentry:sentry-android's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.56.0\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003eSentryTraced\u003c/code\u003e so that it now honors \u003ccode\u003eoptions.setIgnoredSpanOrigins\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/6058\"\u003e#6058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSentryTraced\u003c/code\u003e now checks for its owning transaction dynamically rather than once per app process. The latter caused \u003ccode\u003eSentryTraced\u003c/code\u003e spans to be dropped process-wide once the original transaction finished (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/6057\"\u003e#6057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix typos in Spring GraphQL integration names (\u003ccode\u003eGrahQL\u003c/code\u003e to \u003ccode\u003eGraphQL\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/6061\"\u003e#6061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePopulate the Android connection status cache during the first two minutes after boot, instead of treating the empty cache as up to date (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/6029\"\u003e#6029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003eSentryTraced\u003c/code\u003e from producing dangling spans if recomposition is abandoned or drawing fails (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/6049\"\u003e#6049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReport a consistent app start type across the app start measurement, \u003ccode\u003econtexts.app\u003c/code\u003e and the \u003ccode\u003eapp.start\u003c/code\u003e span attributes (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/6006\"\u003e#6006\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEmit a single \u003ccode\u003eui.compose\u003c/code\u003e span per \u003ccode\u003eSentryTraced\u003c/code\u003e on initial composition instead of one on every recomposition, and set the origin on \u003ccode\u003eui.render\u003c/code\u003e spans (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/6051\"\u003e#6051\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd an internal \u003ccode\u003eMonotonicTicker\u003c/code\u003e abstraction with \u003ccode\u003eDeadline\u003c/code\u003e and \u003ccode\u003eStopwatch\u003c/code\u003e primitives (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/6028\"\u003e#6028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd internal \u003ccode\u003eTimestamp\u003c/code\u003e, \u003ccode\u003eEpochClock\u003c/code\u003e and \u003ccode\u003eAnchoredClock\u003c/code\u003e, so related instants project from one wall-clock reading instead of each reading the clock (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/6045\"\u003e#6045\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump Native SDK from v0.16.5 to v0.16.6 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/6079\"\u003e#6079\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-native/blob/master/CHANGELOG.md#0166\"\u003echangelog\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-native/compare/0.16.5...0.16.6\"\u003ediff\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-java/blob/main/CHANGELOG.md\"\u003eio.sentry:sentry-android's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.56.0\u003c/h2\u003e\n\u003ch3\u003eBehavioral Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMeasure HTTP rate-limit backoff on a monotonic clock instead of the wall clock, so that a device time change no longer lifts or extends an active rate limit (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/6030\"\u003e#6030\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003eSentryTraced\u003c/code\u003e so that it now honors \u003ccode\u003eoptions.setIgnoredSpanOrigins\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/6058\"\u003e#6058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSentryTraced\u003c/code\u003e now checks for its owning transaction dynamically rather than once per app process. The latter caused \u003ccode\u003eSentryTraced\u003c/code\u003e spans to be dropped process-wide once the original transaction finished (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/6057\"\u003e#6057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix typos in Spring GraphQL integration names (\u003ccode\u003eGrahQL\u003c/code\u003e to \u003ccode\u003eGraphQL\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/6061\"\u003e#6061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePopulate the Android connection status cache during the first two minutes after boot, instead of treating the empty cache as up to date (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/6029\"\u003e#6029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003eSentryTraced\u003c/code\u003e from producing dangling spans if recomposition is abandoned or drawing fails (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/6049\"\u003e#6049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReport a consistent app start type across the app start measurement, \u003ccode\u003econtexts.app\u003c/code\u003e and the \u003ccode\u003eapp.start\u003c/code\u003e span attributes (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/6006\"\u003e#6006\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEmit a single \u003ccode\u003eui.compose\u003c/code\u003e span per \u003ccode\u003eSentryTraced\u003c/code\u003e on initial composition instead of one on every recomposition, and set the origin on \u003ccode\u003eui.render\u003c/code\u003e spans (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/6051\"\u003e#6051\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd an internal \u003ccode\u003eMonotonicTicker\u003c/code\u003e abstraction with \u003ccode\u003eDeadline\u003c/code\u003e and \u003ccode\u003eStopwatch\u003c/code\u003e primitives (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/6028\"\u003e#6028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd internal \u003ccode\u003eTimestamp\u003c/code\u003e, \u003ccode\u003eEpochClock\u003c/code\u003e and \u003ccode\u003eAnchoredClock\u003c/code\u003e, so related instants project from one wall-clock reading instead of each reading the clock (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/6045\"\u003e#6045\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecate \u003ccode\u003eRateLimiter(ICurrentDateProvider, SentryOptions)\u003c/code\u003e in favor of \u003ccode\u003eRateLimiter(SentryOptions)\u003c/code\u003e, whose backoff is measured on a monotonic ticker (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/6030\"\u003e#6030\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump Native SDK from v0.16.5 to v0.16.6 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/6079\"\u003e#6079\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-native/blob/master/CHANGELOG.md#0166\"\u003echangelog\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-native/compare/0.16.5...0.16.6\"\u003ediff\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/commit/e1ae18c645d865f4fdcb2879ef10c46dd602784e\"\u003e\u003ccode\u003ee1ae18c\u003c/code\u003e\u003c/a\u003e release: 8.56.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/commit/47123169ec7b267f6b37c27f576e5191b564f7a9\"\u003e\u003ccode\u003e4712316\u003c/code\u003e\u003c/a\u003e docs(changelog): Fix 8.56.0 release notes attribution (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/issues/6083\"\u003e#6083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/commit/515e0d16a537233417e8294c5b728efbb83a4817\"\u003e\u003ccode\u003e515e0d1\u003c/code\u003e\u003c/a\u003e fix(android): Treat an unpopulated connection cache as stale (JAVA-717) (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/issues/6029\"\u003e#6029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/commit/66f67ec80da1ca4505f5301a7c4781996fb8faf2\"\u003e\u003ccode\u003e66f67ec\u003c/code\u003e\u003c/a\u003e feat(time): Add Timestamp, EpochClock and AnchoredClock (JAVA-572) (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/issues/6045\"\u003e#6045\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/commit/643066d52069a42397099b4d332255452d5da72b\"\u003e\u003ccode\u003e643066d\u003c/code\u003e\u003c/a\u003e chore: update scripts/update-sentry-native-ndk.sh to 0.16.6 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/issues/6079\"\u003e#6079\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/commit/96297e6d3d62dfc7a1a87dd401c2e94f11fbbc10\"\u003e\u003ccode\u003e96297e6\u003c/code\u003e\u003c/a\u003e chore(deps): Bump navigation and compose UI deps (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/issues/6080\"\u003e#6080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/commit/4cc93b7009ee461728336c8df98a6bdb20518e0e\"\u003e\u003ccode\u003e4cc93b7\u003c/code\u003e\u003c/a\u003e feat(time): Add a monotonic clock abstraction (JAVA-571) (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/issues/6028\"\u003e#6028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/commit/38be688adf0c308df7802476f30ec83859ece6d6\"\u003e\u003ccode\u003e38be688\u003c/code\u003e\u003c/a\u003e test(android): ignore flaky InternalSentrySdkTest case (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/issues/6078\"\u003e#6078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/commit/8400a7f84a9777af044b359bbafde11d410c6893\"\u003e\u003ccode\u003e8400a7f\u003c/code\u003e\u003c/a\u003e fix(compose): Ensure SentryTraced spans respect ignore-by-origin requests (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/issues/6\"\u003e#6\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/commit/0b2fa674360d59d1ad479c75d3e82eb8d60561bc\"\u003e\u003ccode\u003e0b2fa67\u003c/code\u003e\u003c/a\u003e fix(compose): Stop SentryTraced from reusing stale parent spans (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/issues/6057\"\u003e#6057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/getsentry/sentry-java/compare/8.55.0...8.56.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin:kotlin-test` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin:kotlin-test's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin:kotlin-test's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.multiplatform` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.multiplatform's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.multiplatform's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.android` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.android's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.android's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.plugin.serialization` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.plugin.serialization's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2...\n\n_Description has been truncated_","html_url":"https://github.com/OrellBuehler/bissbilanz/pull/650","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/OrellBuehler%2Fbissbilanz/issues/650","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/650/packages"}},{"old_version":"2.4.10","new_version":"2.4.20","update_type":"patch","path":null,"pr_created_at":"2026-09-14T20:01:51.000Z","version_change":"2.4.10 → 2.4.20","issue":{"uuid":"5454000903","node_id":"PR_kwDOSuMGWs8AAAABDgcSdw","number":206,"state":"open","title":"deps: bump the misc-minor-patch group with 11 updates","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-14T20:01:51.000Z","updated_at":"2026-09-14T20:06:16.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"misc-minor-patch","update_count":11,"packages":[{"name":"org.jetbrains.kotlin:kotlin-metadata-jvm","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"androidx.compose:compose-bom","old_version":"2026.08.00","new_version":"2026.09.00"},{"name":"androidx.navigation:navigation-compose","old_version":"2.10.0","new_version":"2.10.1"},{"name":"androidx.room:room-runtime","old_version":"2.8.4","new_version":"2.8.5"},{"name":"androidx.room:room-ktx","old_version":"2.8.4","new_version":"2.8.5"},{"name":"androidx.room:room-compiler","old_version":"2.8.4","new_version":"2.8.5"},{"name":"org.jetbrains.kotlin:kotlin-test","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.multiplatform","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.compose","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"com.google.devtools.ksp","old_version":"2.3.11","new_version":"2.3.12","repository_url":"https://github.com/google/ksp"}],"path":null,"ecosystem":"maven"},"body":"Bumps the misc-minor-patch group with 11 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [org.jetbrains.kotlin:kotlin-metadata-jvm](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| androidx.compose:compose-bom | `2026.08.00` | `2026.09.00` |\n| androidx.navigation:navigation-compose | `2.10.0` | `2.10.1` |\n| androidx.room:room-runtime | `2.8.4` | `2.8.5` |\n| androidx.room:room-ktx | `2.8.4` | `2.8.5` |\n| androidx.room:room-compiler | `2.8.4` | `2.8.5` |\n| [org.jetbrains.kotlin:kotlin-test](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.multiplatform](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.compose](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.serialization](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [com.google.devtools.ksp](https://github.com/google/ksp) | `2.3.11` | `2.3.12` |\n\nUpdates `org.jetbrains.kotlin:kotlin-metadata-jvm` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin:kotlin-metadata-jvm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin:kotlin-metadata-jvm's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `androidx.compose:compose-bom` from 2026.08.00 to 2026.09.00\n\nUpdates `androidx.navigation:navigation-compose` from 2.10.0 to 2.10.1\n\nUpdates `androidx.room:room-runtime` from 2.8.4 to 2.8.5\n\nUpdates `androidx.room:room-ktx` from 2.8.4 to 2.8.5\n\nUpdates `androidx.room:room-compiler` from 2.8.4 to 2.8.5\n\nUpdates `androidx.room:room-ktx` from 2.8.4 to 2.8.5\n\nUpdates `androidx.room:room-compiler` from 2.8.4 to 2.8.5\n\nUpdates `org.jetbrains.kotlin:kotlin-test` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin:kotlin-test's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin:kotlin-test's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.multiplatform` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.multiplatform's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.multiplatform's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.plugin.compose` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.plugin.compose's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.plugin.compose's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.plugin.serialization` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.plugin.serialization's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.plugin.serialization's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped...\n\n_Description has been truncated_","html_url":"https://github.com/travnie/Autka/pull/206","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/travnie%2FAutka/issues/206","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/206/packages"}},{"old_version":"2.4.10","new_version":"2.4.20","update_type":"patch","path":"/apps/android","pr_created_at":"2026-09-14T19:24:22.000Z","version_change":"2.4.10 → 2.4.20","issue":{"uuid":"5453626144","node_id":"PR_kwDOSRYmZs8AAAABDgIudg","number":556,"state":"closed","title":"build(deps): bump the android-deps group in /apps/android with 29 updates","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-15T01:10:57.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-14T19:24:22.000Z","updated_at":"2026-09-15T01:10:59.000Z","time_to_close":20795,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"android-deps","update_count":29,"packages":[{"name":"gradle-wrapper","old_version":"9.6.1","new_version":"9.7.1","repository_url":"https://github.com/gradle/gradle"},{"name":"androidx.appcompat:appcompat","old_version":"1.7.1","new_version":"1.8.0"},{"name":"androidx.benchmark:benchmark-macro-junit4","old_version":"1.4.1","new_version":"1.5.0"},{"name":"androidx.compose:compose-bom","old_version":"2026.06.01","new_version":"2026.09.00"},{"name":"androidx.room:room-compiler","old_version":"2.8.4","new_version":"2.8.5"},{"name":"androidx.room:room-runtime","old_version":"2.8.4","new_version":"2.8.5"},{"name":"androidx.wear.protolayout:protolayout","old_version":"1.4.1","new_version":"1.4.2"},{"name":"androidx.wear.protolayout:protolayout-material3","old_version":"1.4.1","new_version":"1.4.2"},{"name":"androidx.wear.tiles:tiles","old_version":"1.6.1","new_version":"1.6.2"},{"name":"org.bouncycastle:bcprov-jdk18on","old_version":"1.85","new_version":"1.86","repository_url":"https://github.com/bcgit/bc-java"},{"name":"org.commonmark:commonmark","old_version":"0.29.0","new_version":"0.30.0","repository_url":"https://github.com/commonmark/commonmark-java"},{"name":"org.commonmark:commonmark-ext-autolink","old_version":"0.29.0","new_version":"0.30.0","repository_url":"https://github.com/commonmark/commonmark-java"},{"name":"org.commonmark:commonmark-ext-gfm-strikethrough","old_version":"0.29.0","new_version":"0.30.0","repository_url":"https://github.com/commonmark/commonmark-java"},{"name":"org.commonmark:commonmark-ext-gfm-tables","old_version":"0.29.0","new_version":"0.30.0","repository_url":"https://github.com/commonmark/commonmark-java"},{"name":"org.commonmark:commonmark-ext-task-list-items","old_version":"0.29.0","new_version":"0.30.0","repository_url":"https://github.com/commonmark/commonmark-java"},{"name":"io.coil-kt.coil3:coil-compose","old_version":"3.5.0","new_version":"3.6.2","repository_url":"https://github.com/coil-kt/coil"},{"name":"io.coil-kt.coil3:coil-svg","old_version":"3.5.0","new_version":"3.6.2","repository_url":"https://github.com/coil-kt/coil"},{"name":"org.junit.vintage:junit-vintage-engine","old_version":"6.1.2","new_version":"6.1.3","repository_url":"https://github.com/junit-team/junit-framework"},{"name":"io.kotest:kotest-assertions-core-jvm","old_version":"6.2.2","new_version":"6.2.5","repository_url":"https://github.com/kotest/kotest"},{"name":"io.kotest:kotest-runner-junit5-jvm","old_version":"6.2.2","new_version":"6.2.5","repository_url":"https://github.com/kotest/kotest"},{"name":"com.squareup.okhttp3:mockwebserver","old_version":"5.4.0","new_version":"5.5.0","repository_url":"https://github.com/lysine-dev/okhttp"},{"name":"com.squareup.okhttp3:okhttp","old_version":"5.4.0","new_version":"5.5.0","repository_url":"https://github.com/lysine-dev/okhttp"},{"name":"org.robolectric:robolectric","old_version":"4.16.1","new_version":"4.17","repository_url":"https://github.com/robolectric/robolectric"},{"name":"com.android.application","old_version":"9.3.0","new_version":"9.4.0"},{"name":"com.android.library","old_version":"9.3.0","new_version":"9.4.0"},{"name":"com.android.test","old_version":"9.3.0","new_version":"9.4.0"},{"name":"org.jetbrains.kotlin.plugin.compose","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"com.google.devtools.ksp","old_version":"2.3.10","new_version":"2.3.12","repository_url":"https://github.com/google/ksp"}],"path":"/apps/android","ecosystem":"maven"},"body":"Bumps the android-deps group in /apps/android with 29 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [gradle-wrapper](https://github.com/gradle/gradle) | `9.6.1` | `9.7.1` |\n| androidx.appcompat:appcompat | `1.7.1` | `1.8.0` |\n| androidx.benchmark:benchmark-macro-junit4 | `1.4.1` | `1.5.0` |\n| androidx.compose:compose-bom | `2026.06.01` | `2026.09.00` |\n| androidx.room:room-compiler | `2.8.4` | `2.8.5` |\n| androidx.room:room-runtime | `2.8.4` | `2.8.5` |\n| androidx.wear.protolayout:protolayout | `1.4.1` | `1.4.2` |\n| androidx.wear.protolayout:protolayout-material3 | `1.4.1` | `1.4.2` |\n| androidx.wear.tiles:tiles | `1.6.1` | `1.6.2` |\n| [org.bouncycastle:bcprov-jdk18on](https://github.com/bcgit/bc-java) | `1.85` | `1.86` |\n| [org.commonmark:commonmark](https://github.com/commonmark/commonmark-java) | `0.29.0` | `0.30.0` |\n| [org.commonmark:commonmark-ext-autolink](https://github.com/commonmark/commonmark-java) | `0.29.0` | `0.30.0` |\n| [org.commonmark:commonmark-ext-gfm-strikethrough](https://github.com/commonmark/commonmark-java) | `0.29.0` | `0.30.0` |\n| [org.commonmark:commonmark-ext-gfm-tables](https://github.com/commonmark/commonmark-java) | `0.29.0` | `0.30.0` |\n| [org.commonmark:commonmark-ext-task-list-items](https://github.com/commonmark/commonmark-java) | `0.29.0` | `0.30.0` |\n| [io.coil-kt.coil3:coil-compose](https://github.com/coil-kt/coil) | `3.5.0` | `3.6.2` |\n| [io.coil-kt.coil3:coil-svg](https://github.com/coil-kt/coil) | `3.5.0` | `3.6.2` |\n| [org.junit.vintage:junit-vintage-engine](https://github.com/junit-team/junit-framework) | `6.1.2` | `6.1.3` |\n| [io.kotest:kotest-assertions-core-jvm](https://github.com/kotest/kotest) | `6.2.2` | `6.2.5` |\n| [io.kotest:kotest-runner-junit5-jvm](https://github.com/kotest/kotest) | `6.2.2` | `6.2.5` |\n| [com.squareup.okhttp3:mockwebserver](https://github.com/lysine-dev/okhttp) | `5.4.0` | `5.5.0` |\n| [com.squareup.okhttp3:okhttp](https://github.com/lysine-dev/okhttp) | `5.4.0` | `5.5.0` |\n| [org.robolectric:robolectric](https://github.com/robolectric/robolectric) | `4.16.1` | `4.17` |\n| com.android.application | `9.3.0` | `9.4.0` |\n| com.android.library | `9.3.0` | `9.4.0` |\n| com.android.test | `9.3.0` | `9.4.0` |\n| [org.jetbrains.kotlin.plugin.compose](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.serialization](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [com.google.devtools.ksp](https://github.com/google/ksp) | `2.3.10` | `2.3.12` |\n\nUpdates `gradle-wrapper` from 9.6.1 to 9.7.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gradle/gradle/releases\"\u003egradle-wrapper's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.7.1\u003c/h2\u003e\n\u003cp\u003eThe Gradle team is excited to announce Gradle 9.7.1.\u003c/p\u003e\n\u003cp\u003eThis is a patch release for 9.7.0. We recommend using 9.7.1 instead of 9.7.0.\u003c/p\u003e\n\u003cp\u003eHere are the highlights of 9.7.0 release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIsolated Projects graduates to incubating\u003c/li\u003e\n\u003cli\u003eBroader Configuration Cache compatibility\u003c/li\u003e\n\u003cli\u003eResilient Sync helps you fix broken builds\u003c/li\u003e\n\u003cli\u003eMore source locations in problem reports\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://docs.gradle.org/9.7.1/release-notes.html\"\u003eRead the Release Notes\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eWe would like to thank the following community members for their contributions to this release of Gradle:\n\u003ca href=\"https://github.com/aSemy\"\u003eAdam\u003c/a\u003e,\n\u003ca href=\"https://github.com/Gautam-aman\"\u003eAman Gautam\u003c/a\u003e,\n\u003ca href=\"https://github.com/YukiCodepth\"\u003eAman Kumar\u003c/a\u003e,\n\u003ca href=\"https://github.com/adubrouski\"\u003eAnton Dubrouski\u003c/a\u003e,\n\u003ca href=\"https://github.com/liutikas\"\u003eAurimas\u003c/a\u003e,\n\u003ca href=\"https://github.com/gbhavya07\"\u003egbhavya07\u003c/a\u003e,\n\u003ca href=\"https://github.com/joshfriend\"\u003eJosh Friend\u003c/a\u003e,\n\u003ca href=\"https://github.com/nicklauslittle-gov\"\u003enicklauslittle-gov\u003c/a\u003e,\n\u003ca href=\"https://github.com/psoni674\"\u003ePragati\u003c/a\u003e,\n\u003ca href=\"https://github.com/Project516\"\u003eproject516\u003c/a\u003e,\n\u003ca href=\"https://github.com/Uomocapra\"\u003eQin Mi\u003c/a\u003e,\n\u003ca href=\"https://github.com/rkdfx\"\u003eRavi\u003c/a\u003e,\n\u003ca href=\"https://github.com/sk-reddy17\"\u003esk-reddy17\u003c/a\u003e,\n\u003ca href=\"https://github.com/Suvrat1629\"\u003eSuvrat Acharya\u003c/a\u003e,\n\u003ca href=\"https://github.com/ShreckYe\"\u003eYongshun Ye\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eUpgrade instructions\u003c/h2\u003e\n\u003cp\u003eSwitch your build to use Gradle 9.7.1 by updating your wrapper:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e./gradlew :wrapper --gradle-version=9.7.1 \u0026amp;\u0026amp; ./gradlew :wrapper\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eSee the Gradle \u003ca href=\"https://docs.gradle.org/9.7.1/userguide/upgrading_version_9.html\"\u003e9.x upgrade guide\u003c/a\u003e to learn about deprecations, breaking changes and other considerations when upgrading.\u003c/p\u003e\n\u003cp\u003eFor Java, Groovy, Kotlin and Android compatibility, see the \u003ca href=\"https://docs.gradle.org/9.7.1/userguide/compatibility.html\"\u003efull compatibility notes\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eReporting problems\u003c/h2\u003e\n\u003cp\u003eIf you find a problem with this release, please file a bug on \u003ca href=\"https://github.com/gradle/gradle/issues\"\u003eGitHub Issues\u003c/a\u003e adhering to our issue guidelines.\nIf you're not sure you're encountering a bug, please use the \u003ca href=\"https://discuss.gradle.org/c/help-discuss\"\u003eforum\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eWe hope you will build happiness with Gradle, and we look forward to your feedback via \u003ca href=\"https://twitter.com/gradle\"\u003eTwitter\u003c/a\u003e or on \u003ca href=\"https://github.com/gradle\"\u003eGitHub\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003e9.7.0\u003c/h2\u003e\n\u003cp\u003eThe Gradle team is excited to announce Gradle 9.7.0.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/92f0512e7f06d84621afba191f75e265363890cf\"\u003e\u003ccode\u003e92f0512\u003c/code\u003e\u003c/a\u003e update fixed issues for 9.7.1 (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/38892\"\u003e#38892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/820ee75a99a179bbffa41bcedc6477b685fabb9f\"\u003e\u003ccode\u003e820ee75\u003c/code\u003e\u003c/a\u003e update fixed issues for 9.7.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/82c23f9bd2a89b4cc644e1f90a28a8668feb3dee\"\u003e\u003ccode\u003e82c23f9\u003c/code\u003e\u003c/a\u003e Fix annotation parameter ordering problem in KTS (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/38878\"\u003e#38878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/ef11a7268fe8cc8d6ab849ec911aa11220180553\"\u003e\u003ccode\u003eef11a72\u003c/code\u003e\u003c/a\u003e Fix annotation parameter ordering issue\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/bb0d8a974a71b1003efea41e4046e98855cd5ff8\"\u003e\u003ccode\u003ebb0d8a9\u003c/code\u003e\u003c/a\u003e Make relevant tests polyglot (run for multiple DSLs)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/336e129d7f95c03486acafc97abf59734acfed48\"\u003e\u003ccode\u003e336e129\u003c/code\u003e\u003c/a\u003e Update signing configuration (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/38874\"\u003e#38874\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/4bdf0da2dad9884d089a6062a45ea7183e7d735d\"\u003e\u003ccode\u003e4bdf0da\u003c/code\u003e\u003c/a\u003e Update signing configuration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/cd9b92c1b82856248cf1dc58b50378238bec7b52\"\u003e\u003ccode\u003ecd9b92c\u003c/code\u003e\u003c/a\u003e List issues resolved in 9.7.1 (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/38839\"\u003e#38839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/5f4e381964897ad8d6b99e5a7c77f26dba3259fb\"\u003e\u003ccode\u003e5f4e381\u003c/code\u003e\u003c/a\u003e List issues resolved in 9.7.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/1e08ab551367aeb5fb48b26e72807e1d2b27c939\"\u003e\u003ccode\u003e1e08ab5\u003c/code\u003e\u003c/a\u003e Keep type-use annotations in extracted ABI classes (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/38810\"\u003e#38810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gradle/gradle/compare/v9.6.1...v9.7.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `androidx.appcompat:appcompat` from 1.7.1 to 1.8.0\n\nUpdates `androidx.benchmark:benchmark-macro-junit4` from 1.4.1 to 1.5.0\n\nUpdates `androidx.compose:compose-bom` from 2026.06.01 to 2026.09.00\n\nUpdates `androidx.room:room-compiler` from 2.8.4 to 2.8.5\n\nUpdates `androidx.room:room-runtime` from 2.8.4 to 2.8.5\n\nUpdates `androidx.room:room-runtime` from 2.8.4 to 2.8.5\n\nUpdates `androidx.wear.protolayout:protolayout` from 1.4.1 to 1.4.2\n\nUpdates `androidx.wear.protolayout:protolayout-material3` from 1.4.1 to 1.4.2\n\nUpdates `androidx.wear.protolayout:protolayout-material3` from 1.4.1 to 1.4.2\n\nUpdates `androidx.wear.tiles:tiles` from 1.6.1 to 1.6.2\n\nUpdates `org.bouncycastle:bcprov-jdk18on` from 1.85 to 1.86\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/bcgit/bc-java/blob/main/docs/releasenotes.md\"\u003eorg.bouncycastle:bcprov-jdk18on's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eBouncy Castle Crypto Package - Release Notes\u003c/h1\u003e\n\u003ch2\u003e1.0 Introduction\u003c/h2\u003e\n\u003cp\u003eThe Bouncy Castle Crypto package is a Java implementation of cryptographic algorithms. The package is organised so that it contains a light-weight API suitable for use in any environment (including the J2ME) with the additional infrastructure to conform the algorithms to the JCE framework.\u003c/p\u003e\n\u003ch2\u003e2.0 Release History\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003e2.1.1 Version\u003c/h3\u003e\n\u003cp\u003eRelease: 1.87\u003cbr /\u003e\nDate: 2026, TBD\u003c/p\u003e\n\u003ch3\u003e2.1.2 Defects Fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eA KeyAgreement asked for its shared secret before doPhase returned data rather than refusing. javax.crypto.KeyAgreement specifies IllegalStateException for that state, but nothing in the provider tracked it, so each SPI handed back whatever its result field held: for Diffie-Hellman that was the private value itself - engineInit seeded result with x, so generateSecret() returned the private exponent padded to the prime's length and generateSecret(\u0026quot;AES\u0026quot;) an all-zero key taken from that padding - while ECDH returned null and its named-algorithm overload raised NullPointerException. BaseAgreementSpi now records whether a doPhase has completed the agreement since the last init and refuses the request with an IllegalStateException naming the algorithm, so every family in the provider - DH, ECDH and ECMQV, the SM2 exchange, both ECGOST families, XDH, SM9 and NewHope - answers the same way, and the DH SPI no longer holds the private value in that field at all.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMac.getInstance and KeyGenerator.getInstance by the HMAC SHA-512/224 and SHA-512/256 object identifiers (1.2.840.113549.2.12 and .13) failed, although the same algorithms resolved by name and the matching SecretKeyFactory aliases were registered: the SHA512 mappings called addHMACAlgorithm for the two truncated variants without the addHMACAlias that registers their OIDs against Mac and KeyGenerator. Both are now aliased, as every other HMAC in that class already was.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eA KTSParameterSpec naming an HKDF key-derivation function with a parameters field - a form the provider does not service - was accepted at Cipher init and then failed out of wrap or unwrap with an unchecked IllegalStateException neither method declares. The KTS key-wrapping Ciphers (ML-KEM, Classic McEliece, FrodoKEM, the composite KEM and RSA-KEM) now validate the spec's KDF when they take it, reporting an unserviceable one as the InvalidAlgorithmParameterException engineInit declares, which is what the javax.crypto.KEM services already did through KdfUtil.resolveKemSpec.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eA DTLS handshake deadlocked when a handshake message ahead of the peer's ChangeCipherSpec (a client's CertificateVerify, say) was lost while the ChangeCipherSpec and Finished behind it arrived: the record layer moved its read epoch on at the ChangeCipherSpec and then discarded every retransmission of the lost message as belonging to the old epoch, whose records are only accepted once the handshake has completed. Each side then waited on the other until a handshake timeout, if one was configured, ended it. Every client-authenticated handshake, and every handshake in which the server issues a NewSessionTicket, was exposed. Until the handshake completes, handshake records from the current epoch are now still accepted after the read epoch has moved on, and each message is checked against the epoch of the record that carried it. The DTLS loopback tests now run their handshakes at 10% datagram loss in each direction, with a client-authenticated handshake at 25%.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe lightweight SubjectPublicKeyInfoFactory and PrivateKeyInfoFactory encoded a GOST R 34.10-2012 key on one of the legacy CryptoPro curves under id-GostR3410-2001, although RFC 9215 sec. 4.2 permits those curves for 2012 keys. The digestParamSet now decides: a GOST R 34.11-94 parameter set means 2001 (RFC 4491 sec. 2.3.2), a GOST R 34.11-2012 digest or none means 2012 with 256/512 taken from the curve field size, and any other value is rejected. GOST3410PublicKeyAlgParameters treats digestParamSet as OPTIONAL on both read and write per RFC 9215, and PrivateKeyInfoFactory now passes attributes through for ECGOST3410 keys (bc-csharp github \u003ca href=\"https://redirect.github.com/bcgit/bc-java/issues/707\"\u003e#707\u003c/a\u003e).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe name-constraint host canonicalisation removed a single RFC 1034 root-label dot, the only empty label a name may legally carry, but nothing refused the ones that are not legal: a dNSName, rfc822Name host or uniformResourceIdentifier host such as \u0026quot;example.com..\u0026quot; kept a phantom empty label after the strip and so matched no constraint at all, escaping an excluded subtree naming the host it appears to carry. A tested name whose host carries an empty label - a second trailing dot, a doubled dot or a leading dot - is now refused outright wherever a constraint of that type is in force, rather than canonicalised into a name it is not: removing the extra dots would decide on the caller's behalf that \u0026quot;example.com..\u0026quot; names example.com, which is not how a consumer resolving or comparing the name reads it, and refusing fails closed in both directions where canonicalising would newly admit such a name under a permitted subtree. The single trailing dot is canonicalised as before, a bare \u0026quot;.\u0026quot; remains the root label rather than an empty one, and the guard is scoped to the host, so the doubled dot a quoted local part may legally carry is unaffected. Constraints are untouched - one may still begin with a dot, which is how this implementation spells \u0026quot;subdomains only\u0026quot; (github PR \u003ca href=\"https://redirect.github.com/bcgit/bc-java/issues/2436\"\u003e#2436\u003c/a\u003e).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e2.1.3 Additional Features and Functionality\u003c/h3\u003e\n\u003ch3\u003e2.1.4 Additional Notes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe sources and javadoc jars of the Ant-built distributions (jdk14, jdk15to18 and jdk13) no longer carry test material. Each module's javadoc target copies the package documentation it needs - org/bouncycastle/\u003c!-- raw HTML omitted --\u003e/\u003cstrong\u003e/*.html - back into the module source directory that has already been compiled from, and zip-src zips that directory afterwards, so every test package's package.html arrived in the sources jar by that route; javadoc-util additionally copied org/bouncycastle/asn1/isismtt/\u003c/strong\u003e/*.java, which put test classes into the bcutil javadoc as generated pages, and javadoc-pg deliberately copied the gpg and bcpg test sources in order to document them. Separately the source copies excluded test material only one directory deep and only for *.java, because Ant reads ** as an any-depth wildcard just where it is a whole path segment, so anything nested further or with another extension - the PEM certificate fixtures under org/bouncycastle/est/test/san corrected in 1.86, and an ICAO master list under org/bouncycastle/asn1/icao/test - went through. The source and javadoc copies of every module now exclude test directories at any depth, and javadoc-pg no longer documents the test packages. org.bouncycastle.util.test is unaffected and still ships in the bcprov binary, sources and javadoc jars, as it does from the Gradle build: it is the SimpleTest framework the light-weight API's own test classes are written against, not test material of the distribution. No binary changes - the classes and resources of every Ant-built jar are identical to those of the 1.86 release - and the Gradle-built jdk18on artifacts never carried any of this.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003e2.2.1 Version\u003c/h3\u003e\n\u003cp\u003eRelease: 1.86\u003cbr /\u003e\nDate: 2026, 11th September.\u003c/p\u003e\n\u003ch3\u003e2.2.2 Defects Fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe high-level OpenPGP API let a subkey inherit the primary key's Key Flags when its own Subkey Binding signature carried none, so a subkey bound with no flags counted as signing-capable for one check while the cross-certification check RFC 9580 sec. 5.2.1.8 requires of a signing subkey saw none and was skipped - letting a third party's public signing subkey be bound to an attacker's primary key and that party's genuine signatures verify under the attacker's identity. Flags are no longer inherited (CVE-2026-71887).\u003c/li\u003e\n\u003cli\u003eThe high-level OpenPGP API used a version 6 key carrying no valid Direct Key signature, falling back to the primary user ID binding as it correctly does for version 4. RFC 9580 sec. 5.2.3.10 requires the opposite, and since a v6 certificate carries its expiration and preferences there, stripping that one packet silently dropped them - the certificate went on offering subkeys of a key set to expire. isBoundBy now requires a valid Direct Key self-signature before any v6 component is treated as bound; version 4 is unaffected.\u003c/li\u003e\n\u003cli\u003eThe high-level OpenPGP API ignored the OpenPGPPolicy a caller had configured when verifying signatures on an inline message: OpenPGPMessageInputStream took the policy from the implementation's own default rather than from the processor doing the verification, so a hardened policy had no bearing on acceptance and getSignatures() reported isTestedCorrect() true for a signature that policy rejects. Both the one-pass and prefixed-signature paths now read the configured policy.\u003c/li\u003e\n\u003cli\u003eThe high-level OpenPGP API went on offering the subkeys of a certificate whose primary key had expired, the binding check evaluating only a subkey's own Subkey Binding signature - so the certificate contradicted itself, reporting the primary unbound while still handing out its subkeys. The primary key's expiration now applies to the whole certificate, as GnuPG and Sequoia treat it, and a subkey no longer inherits the primary's validity period, which RFC 9580 sec. 5.2.3.13 counts from the creation time of the key the carrying signature is made on.\u003c/li\u003e\n\u003cli\u003eOpenPGPDocumentSignature.isValidAt(Date) reported a data signature as valid past the signature's own Signature Expiration Time (RFC 9580 sec. 5.2.3.18): it checked that the signature was correct and the issuing key bound and signing-capable at that date, but never the signature's own expiration, so it disagreed with isEffectiveAt() on the same object and with its own javadoc. isValid() and isValid(policy), which evaluate at creation time, are unchanged.\u003c/li\u003e\n\u003cli\u003eThe lightweight LMSSigner and HSSSigner refused a key wrapped in ParametersWithRandom, which is how BcContentSignerBuilder passes one once setSecureRandom() has been called, so BcHssLmsContentSignerBuilder failed with \u0026quot;Incorrect Key Parameters\u0026quot; and the two signers raised ClassCastException. All three now unwrap it, as the ML-DSA and SLH-DSA signers already did; the random is accepted and ignored, LMS deriving its message randomiser deterministically from the seed and one-time index.\u003c/li\u003e\n\u003cli\u003eLMS signature verification did not apply two checks RFC 8554 sec. 5.4.2 requires before a signature is processed: step 2g, refusing a signature whose LMS typecode is not the public key's - without it a signature claiming a height-25 parameter set drove a 25-level computation against a height-5 key - and step 2i, refusing a leaf number outside the tree. Neither was a forgery, but both are attacker-chosen work the specification says to refuse up front. Both are now checked.\u003c/li\u003e\n\u003cli\u003eThe LMS and HSS key parameter classes now apply at construction the checks their decoders apply, so a key built directly cannot be one the decoder would refuse: LMSPrivateKeyParameters accepted an identifier of any length where the decoder reads exactly 16 bytes, and left q, maxQ and the seed length unchecked, while HSSPrivateKeyParameters checked neither its level count nor that it had a component key and chaining signature per level. The decoders now report a bad version or seed length as IOException rather than IllegalStateException.\u003c/li\u003e\n\u003cli\u003eIn the LMS JCE layer, LMSKeyGenParameterSpec.fromNames knew all twenty LMS parameter-set names but only four of the sixteen LM-OTS ones, so none of the SP 800-208 n24 or SHAKE sets could be named; all sixteen are now present. initialize(int, SecureRandom) now reports InvalidParameterException as the JCA specifies, and BCLMSPrivateKey.getIndex takes the exhaustion check and the index read under one monitor.\u003c/li\u003e\n\u003cli\u003eKeyPairGenerator.initialize(int, SecureRandom) is documented to raise InvalidParameterException when the key size is not one the generator supports, and thirty of them raised a bare IllegalArgumentException instead. Every generator in BCPQC, and the ML-DSA, ML-KEM, SLH-DSA, Classic McEliece, FrodoKEM, NTRU and composite ones in the BC provider, now raise the documented type - which extends IllegalArgumentException, so existing catches still match. The two RSA generators translate the lightweight refusal through a new SecurityExceptions.invalidParameterException factory.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/bcgit/bc-java/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.commonmark:commonmark` from 0.29.0 to 0.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/commonmark/commonmark-java/releases\"\u003eorg.commonmark:commonmark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ecommonmark-java 0.30.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew option \u003ccode\u003elineSeparator\u003c/code\u003e for \u003ccode\u003eMarkdownRenderer.Builder\u003c/code\u003e to change the default line\nseparator from \u003ccode\u003e\\n\u003c/code\u003e (e.g. to \u003ccode\u003e\\r\\n\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Support extracting the raw YAML content so that you can\ndo the YAML parsing using a library (instead of the limited built-in parsing) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTables extension: Limit max number of parsed table cells by default (1 million cells),\nsee option \u003ccode\u003emaxCells\u003c/code\u003e in \u003ccode\u003eTablesExtension.Builder\u003c/code\u003e. Parsing will throw an error if the\nlimit would be exceeded, to protect against malicious input.\u003c/li\u003e\n\u003cli\u003eThe default for \u003ccode\u003emaxOpenBlockParsers\u003c/code\u003e for \u003ccode\u003eParser.Builder\u003c/code\u003e is now 100; configure the\noption to remove the limit.\u003c/li\u003e\n\u003cli\u003eLimit how deeply inline nodes may nest by default (100), see option \u003ccode\u003emaxInlineNesting\u003c/code\u003e in\n\u003ccode\u003eParser.Builder\u003c/code\u003e; configure the option to remove the limit. This covers emphasis-like\ndelimiters (e.g. \u003ccode\u003e*\u003c/code\u003e or the ins extension's \u003ccode\u003e+\u003c/code\u003e) as well as images, which can otherwise\nnest arbitrarily deep for a small amount of input. Anything over the limit is treated as\nplain text instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix quadratic runtime on various pathological inputs (where inline syntax to start a\nnode is used repeatedly but never finished):\n\u003cul\u003e\n\u003cli\u003eInline HTML like \u003ccode\u003e\u0026quot;x \u0026lt;!--\u0026quot;.repeat(100_000)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/447\"\u003e#447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAutolink starts like \u003ccode\u003e\u0026quot;\u0026lt;\u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eEmphasis like \u003ccode\u003e\u0026quot;a**b\u0026quot; + \u0026quot;c* \u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBackticks runs of different lengths\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow errors when parsing pathological inputs with repeated syntax:\n\u003cul\u003e\n\u003cli\u003eHTML block attributes\u003c/li\u003e\n\u003cli\u003eAutolink email addresses\u003c/li\u003e\n\u003cli\u003eDeeply nested emphasis\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow error when rendering/visiting deeply nested inline nodes, by capping nesting\ndepth during parsing (see \u003ccode\u003emaxInlineNesting\u003c/code\u003e above). This can happen with emphasis, e.g.\n\u003ccode\u003e\u0026quot;*\u0026quot;.repeat(n) + \u0026quot;x\u0026quot; + \u0026quot;*\u0026quot;.repeat(n)\u003c/code\u003e or \u003ccode\u003e\u0026quot;*a \u0026quot;.repeat(n) + \u0026quot; b*\u0026quot;.repeat(n)\u003c/code\u003e, as well as with\nimages, e.g. \u003ccode\u003e\u0026quot;![\u0026quot;.repeat(https://github.com/commonmark/commonmark-java/blob/HEAD/n) + \u0026quot;x\u0026quot; + \u0026quot;](u)\u0026quot;.repeat(n)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Fix inefficient string concatenation for literal-block values (\u003ccode\u003e|\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md\"\u003eorg.commonmark:commonmark's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.30.0] - 2026-08-06\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew option \u003ccode\u003elineSeparator\u003c/code\u003e for \u003ccode\u003eMarkdownRenderer.Builder\u003c/code\u003e to change the default line\nseparator from \u003ccode\u003e\\n\u003c/code\u003e (e.g. to \u003ccode\u003e\\r\\n\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Support extracting the raw YAML content so that you can\ndo the YAML parsing using a library (instead of the limited built-in parsing) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTables extension: Limit max number of parsed table cells by default (1 million cells),\nsee option \u003ccode\u003emaxCells\u003c/code\u003e in \u003ccode\u003eTablesExtension.Builder\u003c/code\u003e. Parsing will throw an error if the\nlimit would be exceeded, to protect against malicious input.\u003c/li\u003e\n\u003cli\u003eThe default for \u003ccode\u003emaxOpenBlockParsers\u003c/code\u003e for \u003ccode\u003eParser.Builder\u003c/code\u003e is now 100; configure the\noption to remove the limit.\u003c/li\u003e\n\u003cli\u003eLimit how deeply inline nodes may nest by default (100), see option \u003ccode\u003emaxInlineNesting\u003c/code\u003e in\n\u003ccode\u003eParser.Builder\u003c/code\u003e; configure the option to remove the limit. This covers emphasis-like\ndelimiters (e.g. \u003ccode\u003e*\u003c/code\u003e or the ins extension's \u003ccode\u003e+\u003c/code\u003e) as well as images, which can otherwise\nnest arbitrarily deep for a small amount of input. Anything over the limit is treated as\nplain text instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix quadratic runtime on various pathological inputs (where inline syntax to start a\nnode is used repeatedly but never finished):\n\u003cul\u003e\n\u003cli\u003eInline HTML like \u003ccode\u003e\u0026quot;x \u0026lt;!--\u0026quot;.repeat(100_000)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/447\"\u003e#447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAutolink starts like \u003ccode\u003e\u0026quot;\u0026lt;\u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eEmphasis like \u003ccode\u003e\u0026quot;a**b\u0026quot; + \u0026quot;c* \u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBackticks runs of different lengths\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow errors when parsing pathological inputs with repeated syntax:\n\u003cul\u003e\n\u003cli\u003eHTML block attributes\u003c/li\u003e\n\u003cli\u003eAutolink email addresses\u003c/li\u003e\n\u003cli\u003eDeeply nested emphasis\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow error when rendering/visiting deeply nested inline nodes, by capping nesting\ndepth during parsing (see \u003ccode\u003emaxInlineNesting\u003c/code\u003e above). This can happen with emphasis, e.g.\n\u003ccode\u003e\u0026quot;*\u0026quot;.repeat(n) + \u0026quot;x\u0026quot; + \u0026quot;*\u0026quot;.repeat(n)\u003c/code\u003e or \u003ccode\u003e\u0026quot;*a \u0026quot;.repeat(n) + \u0026quot; b*\u0026quot;.repeat(n)\u003c/code\u003e, as well as with\nimages, e.g. \u003ccode\u003e\u0026quot;![\u0026quot;.repeat(https://github.com/commonmark/commonmark-java/blob/main/n) + \u0026quot;x\u0026quot; + \u0026quot;](u)\u0026quot;.repeat(n)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Fix inefficient string concatenation for literal-block values (\u003ccode\u003e|\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/64037cf982f2b12a4a2fa1c5a75c6d3f4ab979bf\"\u003e\u003ccode\u003e64037cf\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release commonmark-parent-0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/bd3e06669fd168874721267e7e5f5bd1d3433466\"\u003e\u003ccode\u003ebd3e066\u003c/code\u003e\u003c/a\u003e Fix Javadoc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/4aaf754cc90b4a5a62647a8fc621185c934f8bbf\"\u003e\u003ccode\u003e4aaf754\u003c/code\u003e\u003c/a\u003e mvn versions:set -DnewVersion=0.30.0-SNAPSHOT\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/42b4fb7adfe288ef13e9e27ab20aff7e91b0ab9d\"\u003e\u003ccode\u003e42b4fb7\u003c/code\u003e\u003c/a\u003e Prepare CHANGELOG for version 0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/b76e09d7a8362abb5f04e1d6b91dbd6da279a6fc\"\u003e\u003ccode\u003eb76e09d\u003c/code\u003e\u003c/a\u003e Limit how deep inline nodes may nest by default (100)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/49f65cb5cbec93cff713179990307145198e7061\"\u003e\u003ccode\u003e49f65cb\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing deeply nested emphasis\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/610f84b83e68c381e8f784ae4d044c80e1948b67\"\u003e\u003ccode\u003e610f84b\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing pathological autolink email addresses\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/9f1d73897a56cbd74c39347af351a473e70297e1\"\u003e\u003ccode\u003e9f1d738\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing pathological HTML block attributes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/e13297e849995fdd582a85841067bff1d9c35ee5\"\u003e\u003ccode\u003ee13297e\u003c/code\u003e\u003c/a\u003e Fix quadratic runtime when parsing pathological backticks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/89d1bd3fa1524e8217ed61db5e8116c82434470f\"\u003e\u003ccode\u003e89d1bd3\u003c/code\u003e\u003c/a\u003e Fix quadratic runtime when parsing with lots of \u003ccode\u003e\u0026lt;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.29.0...commonmark-parent-0.30.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.commonmark:commonmark-ext-autolink` from 0.29.0 to 0.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/commonmark/commonmark-java/releases\"\u003eorg.commonmark:commonmark-ext-autolink's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ecommonmark-java 0.30.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew option \u003ccode\u003elineSeparator\u003c/code\u003e for \u003ccode\u003eMarkdownRenderer.Builder\u003c/code\u003e to change the default line\nseparator from \u003ccode\u003e\\n\u003c/code\u003e (e.g. to \u003ccode\u003e\\r\\n\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Support extracting the raw YAML content so that you can\ndo the YAML parsing using a library (instead of the limited built-in parsing) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTables extension: Limit max number of parsed table cells by default (1 million cells),\nsee option \u003ccode\u003emaxCells\u003c/code\u003e in \u003ccode\u003eTablesExtension.Builder\u003c/code\u003e. Parsing will throw an error if the\nlimit would be exceeded, to protect against malicious input.\u003c/li\u003e\n\u003cli\u003eThe default for \u003ccode\u003emaxOpenBlockParsers\u003c/code\u003e for \u003ccode\u003eParser.Builder\u003c/code\u003e is now 100; configure the\noption to remove the limit.\u003c/li\u003e\n\u003cli\u003eLimit how deeply inline nodes may nest by default (100), see option \u003ccode\u003emaxInlineNesting\u003c/code\u003e in\n\u003ccode\u003eParser.Builder\u003c/code\u003e; configure the option to remove the limit. This covers emphasis-like\ndelimiters (e.g. \u003ccode\u003e*\u003c/code\u003e or the ins extension's \u003ccode\u003e+\u003c/code\u003e) as well as images, which can otherwise\nnest arbitrarily deep for a small amount of input. Anything over the limit is treated as\nplain text instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix quadratic runtime on various pathological inputs (where inline syntax to start a\nnode is used repeatedly but never finished):\n\u003cul\u003e\n\u003cli\u003eInline HTML like \u003ccode\u003e\u0026quot;x \u0026lt;!--\u0026quot;.repeat(100_000)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/447\"\u003e#447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAutolink starts like \u003ccode\u003e\u0026quot;\u0026lt;\u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eEmphasis like \u003ccode\u003e\u0026quot;a**b\u0026quot; + \u0026quot;c* \u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBackticks runs of different lengths\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow errors when parsing pathological inputs with repeated syntax:\n\u003cul\u003e\n\u003cli\u003eHTML block attributes\u003c/li\u003e\n\u003cli\u003eAutolink email addresses\u003c/li\u003e\n\u003cli\u003eDeeply nested emphasis\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow error when rendering/visiting deeply nested inline nodes, by capping nesting\ndepth during parsing (see \u003ccode\u003emaxInlineNesting\u003c/code\u003e above). This can happen with emphasis, e.g.\n\u003ccode\u003e\u0026quot;*\u0026quot;.repeat(n) + \u0026quot;x\u0026quot; + \u0026quot;*\u0026quot;.repeat(n)\u003c/code\u003e or \u003ccode\u003e\u0026quot;*a \u0026quot;.repeat(n) + \u0026quot; b*\u0026quot;.repeat(n)\u003c/code\u003e, as well as with\nimages, e.g. \u003ccode\u003e\u0026quot;![\u0026quot;.repeat(https://github.com/commonmark/commonmark-java/blob/HEAD/n) + \u0026quot;x\u0026quot; + \u0026quot;](u)\u0026quot;.repeat(n)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Fix inefficient string concatenation for literal-block values (\u003ccode\u003e|\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md\"\u003eorg.commonmark:commonmark-ext-autolink's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.30.0] - 2026-08-06\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew option \u003ccode\u003elineSeparator\u003c/code\u003e for \u003ccode\u003eMarkdownRenderer.Builder\u003c/code\u003e to change the default line\nseparator from \u003ccode\u003e\\n\u003c/code\u003e (e.g. to \u003ccode\u003e\\r\\n\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Support extracting the raw YAML content so that you can\ndo the YAML parsing using a library (instead of the limited built-in parsing) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTables extension: Limit max number of parsed table cells by default (1 million cells),\nsee option \u003ccode\u003emaxCells\u003c/code\u003e in \u003ccode\u003eTablesExtension.Builder\u003c/code\u003e. Parsing will throw an error if the\nlimit would be exceeded, to protect against malicious input.\u003c/li\u003e\n\u003cli\u003eThe default for \u003ccode\u003emaxOpenBlockParsers\u003c/code\u003e for \u003ccode\u003eParser.Builder\u003c/code\u003e is now 100; configure the\noption to remove the limit.\u003c/li\u003e\n\u003cli\u003eLimit how deeply inline nodes may nest by default (100), see option \u003ccode\u003emaxInlineNesting\u003c/code\u003e in\n\u003ccode\u003eParser.Builder\u003c/code\u003e; configure the option to remove the limit. This covers emphasis-like\ndelimiters (e.g. \u003ccode\u003e*\u003c/code\u003e or the ins extension's \u003ccode\u003e+\u003c/code\u003e) as well as images, which can otherwise\nnest arbitrarily deep for a small amount of input. Anything over the limit is treated as\nplain text instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix quadratic runtime on various pathological inputs (where inline syntax to start a\nnode is used repeatedly but never finished):\n\u003cul\u003e\n\u003cli\u003eInline HTML like \u003ccode\u003e\u0026quot;x \u0026lt;!--\u0026quot;.repeat(100_000)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/447\"\u003e#447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAutolink starts like \u003ccode\u003e\u0026quot;\u0026lt;\u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eEmphasis like \u003ccode\u003e\u0026quot;a**b\u0026quot; + \u0026quot;c* \u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBackticks runs of different lengths\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow errors when parsing pathological inputs with repeated syntax:\n\u003cul\u003e\n\u003cli\u003eHTML block attributes\u003c/li\u003e\n\u003cli\u003eAutolink email addresses\u003c/li\u003e\n\u003cli\u003eDeeply nested emphasis\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow error when rendering/visiting deeply nested inline nodes, by capping nesting\ndepth during parsing (see \u003ccode\u003emaxInlineNesting\u003c/code\u003e above). This can happen with emphasis, e.g.\n\u003ccode\u003e\u0026quot;*\u0026quot;.repeat(n) + \u0026quot;x\u0026quot; + \u0026quot;*\u0026quot;.repeat(n)\u003c/code\u003e or \u003ccode\u003e\u0026quot;*a \u0026quot;.repeat(n) + \u0026quot; b*\u0026quot;.repeat(n)\u003c/code\u003e, as well as with\nimages, e.g. \u003ccode\u003e\u0026quot;![\u0026quot;.repeat(https://github.com/commonmark/commonmark-java/blob/main/n) + \u0026quot;x\u0026quot; + \u0026quot;](u)\u0026quot;.repeat(n)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Fix inefficient string concatenation for literal-block values (\u003ccode\u003e|\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/64037cf982f2b12a4a2fa1c5a75c6d3f4ab979bf\"\u003e\u003ccode\u003e64037cf\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release commonmark-parent-0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/bd3e06669fd168874721267e7e5f5bd1d3433466\"\u003e\u003ccode\u003ebd3e066\u003c/code\u003e\u003c/a\u003e Fix Javadoc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/4aaf754cc90b4a5a62647a8fc621185c934f8bbf\"\u003e\u003ccode\u003e4aaf754\u003c/code\u003e\u003c/a\u003e mvn versions:set -DnewVersion=0.30.0-SNAPSHOT\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/42b4fb7adfe288ef13e9e27ab20aff7e91b0ab9d\"\u003e\u003ccode\u003e42b4fb7\u003c/code\u003e\u003c/a\u003e Prepare CHANGELOG for version 0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/b76e09d7a8362abb5f04e1d6b91dbd6da279a6fc\"\u003e\u003ccode\u003eb76e09d\u003c/code\u003e\u003c/a\u003e Limit how deep inline nodes may nest by default (100)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/49f65cb5cbec93cff713179990307145198e7061\"\u003e\u003ccode\u003e49f65cb\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing deeply nested emphasis\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/610f84b83e68c381e8f784ae4d044c80e1948b67\"\u003e\u003ccode\u003e610f84b\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing pathological autolink email addresses\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/9f1d73897a56cbd74c39347af351a473e70297e1\"\u003e\u003ccode\u003e9f1d738\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing pathological HTML block attributes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/e13297e849995fdd582a85841067bff1d9c35ee5\"\u003e\u003ccode\u003ee13297e\u003c/code\u003e\u003c/a\u003e Fix quadratic runtime when parsing pathological backticks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/89d1bd3fa1524e8217ed61db5e8116c82434470f\"\u003e\u003ccode\u003e89d1bd3\u003c/code\u003e\u003c/a\u003e Fix quadratic runtime when parsing with lots of \u003ccode\u003e\u0026lt;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.29.0...commonmark-parent-0.30.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.commonmark:commonmark-ext-gfm-strikethrough` from 0.29.0 to 0.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/commonmark/commonmark-java/releases\"\u003eorg.commonmark:commonmark-ext-gfm-strikethrough's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ecommonmark-java 0.30.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew option \u003ccode\u003elineSeparator\u003c/code\u003e for \u003ccode\u003eMarkdownRenderer.Builder\u003c/code\u003e to change the default line\nseparator from \u003ccode\u003e\\n\u003c/code\u003e (e.g. to \u003ccode\u003e\\r\\n\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Support extracting the raw YAML content so that you can\ndo the YAML parsing using a library (instead of the limited built-in parsing) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTables extension: Limit max number of parsed table cells by default (1 million cells),\nsee option \u003ccode\u003emaxCells\u003c/code\u003e in \u003ccode\u003eTablesExtension.Builder\u003c/code\u003e. Parsing will throw an error if the\nlimit would be exceeded, to protect against malicious input.\u003c/li\u003e\n\u003cli\u003eThe default for \u003ccode\u003emaxOpenBlockParsers\u003c/code\u003e for \u003ccode\u003eParser.Builder\u003c/code\u003e is now 100; configure the\noption to remove the limit.\u003c/li\u003e\n\u003cli\u003eLimit how deeply inline nodes may nest by default (100), see option \u003ccode\u003emaxInlineNesting\u003c/code\u003e in\n\u003ccode\u003eParser.Builder\u003c/code\u003e; configure the option to remove the limit. This covers emphasis-like\ndelimiters (e.g. \u003ccode\u003e*\u003c/code\u003e or the ins extension's \u003ccode\u003e+\u003c/code\u003e) as well as images, which can otherwise\nnest arbitrarily deep for a small amount of input. Anything over the limit is treated as\nplain text instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix quadratic runtime on various pathological inputs (where inline syntax to start a\nnode is used repeatedly but never finished):\n\u003cul\u003e\n\u003cli\u003eInline HTML like \u003ccode\u003e\u0026quot;x \u0026lt;!--\u0026quot;.repeat(100_000)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/447\"\u003e#447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAutolink starts like \u003ccode\u003e\u0026quot;\u0026lt;\u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eEmphasis like \u003ccode\u003e\u0026quot;a**b\u0026quot; + \u0026quot;c* \u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBackticks runs of different lengths\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow errors when parsing pathological inputs with repeated syntax:\n\u003cul\u003e\n\u003cli\u003eHTML block attributes\u003c/li\u003e\n\u003cli\u003eAutolink email addresses\u003c/li\u003e\n\u003cli\u003eDeeply nested emphasis\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow error when rendering/visiting deeply nested inline nodes, by capping nesting\ndepth during parsing (see \u003ccode\u003emaxInlineNesting\u003c/code\u003e above). This can happen with emphasis, e.g.\n\u003ccode\u003e\u0026quot;*\u0026quot;.repeat(n) + \u0026quot;x\u0026quot; + \u0026quot;*\u0026quot;.repeat(n)\u003c/code\u003e or \u003ccode\u003e\u0026quot;*a \u0026quot;.repeat(n) + \u0026quot; b*\u0026quot;.repeat(n)\u003c/code\u003e, as well as with\nimages, e.g. \u003ccode\u003e\u0026quot;![\u0026quot;.repeat(https://github.com/commonmark/commonmark-java/blob/HEAD/n) + \u0026quot;x\u0026quot; + \u0026quot;](u)\u0026quot;.repeat(n)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Fix inefficient string concatenation for literal-block values (\u003ccode\u003e|\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md\"\u003eorg.commonmark:commonmark-ext-gfm-strikethrough's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.30.0] - 2026-08-06\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew option \u003ccode\u003elineSeparator\u003c/code\u003e for \u003ccode\u003eMarkdownRenderer.Builder\u003c/code\u003e to change the default line\nseparator from \u003ccode\u003e\\n\u003c/code\u003e (e.g. to \u003ccode\u003e\\r\\n\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Support extracting the raw YAML content so that you can\ndo the YAML parsing using a library (instead of the limited built-in parsing) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTables extension: Limit max number of parsed table cells by default (1 million cells),\nsee option \u003ccode\u003emaxCells\u003c/code\u003e in \u003ccode\u003eTablesExtension.Builder\u003c/code\u003e. Parsing will throw an error if the\nlimit would be exceeded, to protect against malicious input.\u003c/li\u003e\n\u003cli\u003eThe default for \u003ccode\u003emaxOpenBlockParsers\u003c/code\u003e for \u003ccode\u003eParser.Builder\u003c/code\u003e is now 100; configure the\noption to remove the limit.\u003c/li\u003e\n\u003cli\u003eLimit how deeply inline nodes may nest by default (100), see option \u003ccode\u003emaxInlineNesting\u003c/code\u003e in\n\u003ccode\u003eParser.Builder\u003c/code\u003e; configure the option to remove the limit. This covers emphasis-like\ndelimiters (e.g. \u003ccode\u003e*\u003c/code\u003e or the ins extension's \u003ccode\u003e+\u003c/code\u003e) as well as images, which can otherwise\nnest arbitrarily deep for a small amount of input. Anything over the limit is treated as\nplain text instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix quadratic runtime on various pathological inputs (where inline syntax to start a\nnode is used repeatedly but never finished):\n\u003cul\u003e\n\u003cli\u003eInline HTML like \u003ccode\u003e\u0026quot;x \u0026lt;!--\u0026quot;.repeat(100_000)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/447\"\u003e#447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAutolink starts like \u003ccode\u003e\u0026quot;\u0026lt;\u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eEmphasis like \u003ccode\u003e\u0026quot;a**b\u0026quot; + \u0026quot;c* \u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBackticks runs of different lengths\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow errors when parsing pathological inputs with repeated syntax:\n\u003cul\u003e\n\u003cli\u003eHTML block attributes\u003c/li\u003e\n\u003cli\u003eAutolink email addresses\u003c/li\u003e\n\u003cli\u003eDeeply nested emphasis\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow error when rendering/visiting deeply nested inline nodes, by capping nesting\ndepth during parsing (see \u003ccode\u003emaxInlineNesting\u003c/code\u003e above). This can happen with emphasis, e.g.\n\u003ccode\u003e\u0026quot;*\u0026quot;.repeat(n) + \u0026quot;x\u0026quot; + \u0026quot;*\u0026quot;.repeat(n)\u003c/code\u003e or \u003ccode\u003e\u0026quot;*a \u0026quot;.repeat(n) + \u0026quot; b*\u0026quot;.repeat(n)\u003c/code\u003e, as well as with\nimages, e.g. \u003ccode\u003e\u0026quot;![\u0026quot;.repeat(https://github.com/commonmark/commonmark-java/blob/main/n) + \u0026quot;x\u0026quot; + \u0026quot;](u)\u0026quot;.repeat(n)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Fix inefficient string concatenation for literal-block values (\u003ccode\u003e|\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/64037cf982f2b12a4a2fa1c5a75c6d3f4ab979bf\"\u003e\u003ccode\u003e64037cf\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release commonmark-parent-0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/bd3e06669fd168874721267e7e5f5bd1d3433466\"\u003e\u003ccode\u003ebd3e066\u003c/code\u003e\u003c/a\u003e Fix Javadoc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/4aaf754cc90b4a5a62647a8fc621185c934f8bbf\"\u003e\u003ccode\u003e4aaf754\u003c/code\u003e\u003c/a\u003e mvn versions:set -DnewVersion=0.30.0-SNAPSHOT\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/42b4fb7adfe288ef13e9e27ab20aff7e91b0ab9d\"\u003e\u003ccode\u003e42b4fb7\u003c/code\u003e\u003c/a\u003e Prepare CHANGELOG for version 0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/b76e09d7a8362abb5f04e1d6b91dbd6da279a6fc\"\u003e\u003ccode\u003eb76e09d\u003c/code\u003e\u003c/a\u003e Limit how deep inline nodes may nest by default (100)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/49f65cb5cbec93cff713179990307145198e7061\"\u003e\u003ccode\u003e49f65cb\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing deeply nested emphasis\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/610f84b83e68c381e8f784ae4d044c80e1948b67\"\u003e\u003ccode\u003e610f84b\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing pathological autolink email addresses\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/9f1d73897a56cbd74c39347af351a473e70297e1\"\u003e\u003ccode\u003e9f1d738\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing pathological HTML block attributes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/e13297e849995fdd582a85841067bff1d9c35ee5\"\u003e\u003ccode\u003ee13297e\u003c/code\u003e\u003c/a\u003e Fix quadratic runtime when parsing pathological backticks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/89d1bd3fa1524e8217ed61db5e8116c82434470f\"\u003e\u003ccode\u003e89d1bd3\u003c/code\u003e\u003c/a\u003e Fix quadratic runtime when parsing with lots of \u003ccode\u003e\u0026lt;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.29.0...commonmark-parent-0.30.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.commonmark:commonmark-ext-gfm-tables` from 0.29.0 to 0.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/commonmark/commonmark-java/releases\"\u003eorg.commonmark:commonmark-ext-gfm-tables's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ecommonmark-java 0.30.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew option \u003ccode\u003elineSeparator\u003c/code\u003e for \u003ccode\u003eMarkdownRenderer.Builder\u003c/code\u003e to change the default line\nseparator from \u003ccode\u003e\\n\u003c/code\u003e (e.g. to \u003ccode\u003e\\r\\n\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Support extracting the raw YAML content so that you can\ndo the YAML parsing using a library (instead of the limited built-in parsing) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTables extension: Limit max number of parsed table cells by default (1 million cells),\nsee option \u003ccode\u003emaxCells\u003c/code\u003e in \u003ccode\u003eTablesExtension.Builder\u003c/code\u003e. Parsing will throw an error if the\nlimit would be exceeded, to protect against malicious input.\u003c/li\u003e\n\u003cli\u003eThe default for \u003ccode\u003emaxOpenBlockParsers\u003c/code\u003e for \u003ccode\u003eParser.Builder\u003c/code\u003e is now 100; configure the\noption to remove the limit.\u003c/li\u003e\n\u003cli\u003eLimit how deeply inline nodes may nest by default (100), see option \u003ccode\u003emaxInlineNesting\u003c/code\u003e in\n\u003ccode\u003eParser.Builder\u003c/code\u003e; configure the option to remove the limit. This covers emphasis-like\ndelimiters (e.g. \u003ccode\u003e*\u003c/code\u003e or the ins extension's \u003ccode\u003e+\u003c/code\u003e) as well as images, which can otherwise\nnest arbitrarily deep for a small amount of input. Anything over the limit is treated as\nplain text instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix quadratic runtime on various pathological inputs (where inline syntax to start a\nnode is used repeatedly but never finished):\n\u003cul\u003e\n\u003cli\u003eInline HTML like \u003ccode\u003e\u0026quot;x \u0026lt;!--\u0026quot;.repeat(100_000)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/447\"\u003e#447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAutolink starts like \u003ccode\u003e\u0026quot;\u0026lt;\u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eEmphasis like \u003ccode\u003e\u0026quot;a**b\u0026quot; + \u0026quot;c* \u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBackticks runs of different lengths\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow errors when parsing pathological inputs with repeated syntax:\n\u003cul\u003e\n\u003cli\u003eHTML block attributes\u003c/li\u003e\n\u003cli\u003eAutolink email addresses\u003c/li\u003e\n\u003cli\u003eDeeply nested emphasis\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow error when rendering/visiting deeply nested inline nodes, by capping nesting\ndepth during parsing (see \u003ccode\u003emaxInlineNesting\u003c/code\u003e above). This can happen with emphasis, e.g.\n\u003ccode\u003e\u0026quot;*\u0026quot;.repeat(n) + \u0026quot;x\u0026quot; + \u0026quot;*\u0026quot;.repeat(n)\u003c/code\u003e or \u003ccode\u003e\u0026quot;*a \u0026quot;.repeat(n) + \u0026quot; b*\u0026quot;.repeat(n)\u003c/code\u003e, as well as with\nimages, e.g. \u003ccode\u003e\u0026quot;![\u0026quot;.repeat(https://github.com/commonmark/commonmark-java/blob/HEAD/n) + \u0026quot;x\u0026quot; + \u0026quot;](u)\u0026quot;.repeat(n)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Fix inefficient string concatenation for literal-block values (\u003ccode\u003e|\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md\"\u003eorg.commonmark:commonmark-ext-gfm-tables's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.30.0] - 2026-08-06\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew option \u003ccode\u003elineSeparator\u003c/code\u003e for \u003ccode\u003eMarkdownRenderer.Builder\u003c/code\u003e to change the default line\nseparator from \u003ccode\u003e\\n\u003c/code\u003e (e.g. to \u003ccode\u003e\\r\\n\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Support extracting the raw YAML content so that you can\ndo the YAML parsing using a library (instead of the limited built-in parsing) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTables extension: Limit max number of parsed table cells by default (1 million cells),\nsee option \u003ccode\u003emaxCells\u003c/code\u003e in \u003ccode\u003eTablesExtension.Builder\u003c/code\u003e. Parsing will throw an error if the\nlimit would be exceeded, to protect against malicious input.\u003c/li\u003e\n\u003cli\u003eThe default for \u003ccode\u003emaxOpenBlockParsers\u003c/code\u003e for \u003ccode\u003eParser.Builder\u003c/code\u003e is now 100; configure the\noption to remove the limit.\u003c/li\u003e\n\u003cli\u003eLimit how deeply inline nodes may nest by default (100), see option \u003ccode\u003emaxInlineNesting\u003c/code\u003e in\n\u003ccode\u003eParser.Builder\u003c/code\u003e; configure the option to remove the limit. This covers emphasis-like\ndelimiters (e.g. \u003ccode\u003e*\u003c/code\u003e or the ins extension's \u003ccode\u003e+\u003c/code\u003e) as well as images, which can otherwise\nnest arbitrarily deep for a small amount of input. Anything over the limit is treated as\nplain text instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix quadratic runtime on various pathological inputs (where inline syntax to start a\nnode is used repeatedly but never finished):\n\u003cul\u003e\n\u003cli\u003eInline HTML like \u003ccode\u003e\u0026quot;x \u0026lt;!--\u0026quot;.repeat(100_000)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/447\"\u003e#447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAutolink starts like \u003ccode\u003e\u0026quot;\u0026lt;\u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eEmphasis like \u003ccode\u003e\u0026quot;a**b\u0026quot; + \u0026quot;c* \u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBackticks runs of different lengths\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow errors when parsing pathological inputs with repeated syntax:\n\u003cul\u003e\n\u003cli\u003eHTML block attributes\u003c/li\u003e\n\u003cli\u003eAutolink email addresses\u003c/li\u003e\n\u003cli\u003eDeeply nested emphasis\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow error when rendering/visiting deeply nested inline nodes, by capping nesting\ndepth during parsing (see \u003ccode\u003emaxInlineNesting\u003c/code\u003e above). This can happen with emphasis, e.g.\n\u003ccode\u003e\u0026quot;*\u0026quot;.repeat(n) + \u0026quot;x\u0026quot; + \u0026quot;*\u0026quot;.repeat(n)\u003c/code\u003e or \u003ccode\u003e\u0026quot;*a \u0026quot;.repeat(n) + \u0026quot; b*\u0026quot;.repeat(n)\u003c/code\u003e, as well as with\nimages, e.g. \u003ccode\u003e\u0026quot;![\u0026quot;.repeat(https://github.com/commonmark/commonmark-java/blob/main/n) + \u0026quot;x\u0026quot; + \u0026quot;](u)\u0026quot;.repeat(n)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Fix inefficient string concatenation for literal-block values (\u003ccode\u003e|\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/64037cf982f2b12a4a2fa1c5a75c6d3f4ab979bf\"\u003e\u003ccode\u003e64037cf\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release commonmark-parent-0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/bd3e06669fd168874721267e7e5f5bd1d3433466\"\u003e\u003ccode\u003ebd3e066\u003c/code\u003e\u003c/a\u003e Fix Javadoc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/4aaf754cc90b4a5a62647a8fc621185c934f8bbf\"\u003e\u003ccode\u003e4aaf754\u003c/code\u003e\u003c/a\u003e mvn versions:set -DnewVersion=0.30.0-SNAPSHOT\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/42b4fb7adfe288ef13e9e27ab20aff7e91b0ab9d\"\u003e\u003ccode\u003e42b4fb7\u003c/code\u003e\u003c/a\u003e Prepare CHANGELOG for version 0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/b76e09d7a8362abb5f04e1d6b91dbd6da279a6fc\"\u003e\u003ccode\u003eb76e09d\u003c/code\u003e\u003c/a\u003e Limit how deep inline nodes may nest by default (100)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/49f65cb5cbec93cff713179990307145198e7061\"\u003e\u003ccode\u003e49f65cb\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing deeply nested emphasis\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/610f84b83e68c381e8f784ae4d044c80e1948b67\"\u003e\u003ccode\u003e610f84b\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing pathological autolink email addresses\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/9f1d73897a56cbd74c39347af351a473e70297e1\"\u003e\u003ccode\u003e9f1d738\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing pathological HTML block attributes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/e13297e849995fdd582a85841067bff1d9c35ee5\"\u003e\u003ccode\u003ee13297e\u003c/code\u003e\u003c/a\u003e Fix quadratic runtime when parsing pathological backticks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/89d1bd3fa1524e8217ed61db5e8116c82434470f\"\u003e\u003ccode\u003e89d1bd3\u003c/code\u003e\u003c/a\u003e Fix quadratic runtime when parsing with lots of \u003ccode\u003e\u0026lt;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.29.0...commonmark-parent-0.30.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.commonmark:commonmark-ext-task-list-items` from 0.29.0 to 0.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/commonmark/commonmark-java/releases\"\u003eorg.commonmark:commonmark-ext-task-list-items's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ecommonmark-java 0.30.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew option \u003ccode\u003elineSeparator\u003c/code\u003e for \u003ccode\u003eMarkdownRenderer.Builder\u003c/code\u003e to change the default line\nseparator from \u003ccode\u003e\\n\u003c/code\u003e (e.g. to \u003ccode\u003e\\r\\n\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Support extracting the raw YAML content so that you can\ndo the YAML parsing using a library (instead of the limited built-in parsing) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTables extension: Limit max number of parsed table cells by default (1 million cells),\nsee option \u003ccode\u003emaxCells\u003c/code\u003e in \u003ccode\u003eTablesExtension.Builder\u003c/code\u003e. Parsing will throw an error if the\nlimit would be exceeded, to protect against malicious input.\u003c/li\u003e\n\u003cli\u003eThe default for \u003ccode\u003emaxOpenBlockParsers\u003c/code\u003e for \u003ccode\u003eParser.Builder\u003c/code\u003e is now 100; configure the\noption to remove the limit.\u003c/li\u003e\n\u003cli\u003eLimit how deeply inline nodes may nest by default (100), see option \u003ccode\u003emaxInlineNesting\u003c/code\u003e in\n\u003ccode\u003eParser.Builder\u003c/code\u003e; configure the option to remove the limit. This covers emphasis-like\ndelimiters (e.g. \u003ccode\u003e*\u003c/code\u003e or the ins extension's \u003ccode\u003e+\u003c/code\u003e) as well as images, which can otherwise\nnest arbitrarily deep for a small amount of input. Anything over the limit is treated as\nplain text instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix quadratic runtime on various pathological inputs (where inline syntax to start a\nnode is used repeatedly but never finished):\n\u003cul\u003e\n\u003cli\u003eInline HTML like \u003ccode\u003e\u0026quot;x \u0026lt;!--\u0026quot;.repeat(100_000)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/447\"\u003e#447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAutolink starts like \u003ccode\u003e\u0026quot;\u0026lt;\u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eEmphasis like \u003ccode\u003e\u0026quot;a**b\u0026quot; + \u0026quot;c* \u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBackticks runs of different lengths\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow errors when parsing pathological inputs with repeated syntax:\n\u003cul\u003e\n\u003cli\u003eHTML block attributes\u003c/li\u003e\n\u003cli\u003eAutolink email addresses\u003c/li\u003e\n\u003cli\u003eDeeply nested emphasis\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow error when rendering/visiting deeply nested inline nodes, by capping nesting\ndepth during parsing (see \u003ccode\u003emaxInlineNesting\u003c/code\u003e above). This can happen with emphasis, e.g.\n\u003ccode\u003e\u0026quot;*\u0026quot;.repeat(n) + \u0026quot;x\u0026quot; + \u0026quot;*\u0026quot;.repeat(n)\u003c/code\u003e or \u003ccode\u003e\u0026quot;*a \u0026quot;.repeat(n) + \u0026quot; b*\u0026quot;.repeat(n)\u003c/code\u003e, as well as with\nimages, e.g. \u003ccode\u003e\u0026quot;![\u0026quot;.repeat(https://github.com/commonmark/commonmark-java/blob/HEAD/n) + \u0026quot;x\u0026quot; + \u0026quot;](u)\u0026quot;.repeat(n)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Fix inefficient string concatenation for literal-block values (\u003ccode\u003e|\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md\"\u003eorg.commonmark:commonmark-ext-task-list-items's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.30.0] - 2026-08-06\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew option \u003ccode\u003elineSeparator\u003c/code\u003e for \u003ccode\u003eMarkdownRenderer.Builder\u003c/code\u003e to change the default line\nseparator from \u003ccode\u003e\\n\u003c/code\u003e (e.g. to \u003ccode\u003e\\r\\n\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Support extracting the raw YAML content so that you can\ndo the YAML parsing using a library (instead of the limited built-in parsing) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTables extension: Limit max number of parsed table cells by default (1 million cells),\nsee option \u003ccode\u003emaxCells\u003c/code\u003e in \u003ccode\u003eTablesExtension.Builder\u003c/code\u003e. Parsing will throw an error if the\nlimit would be exceeded, to protect against malicious input.\u003c/li\u003e\n\u003cli\u003eThe default for \u003ccode\u003emaxOpenBlockParsers\u003c/code\u003e for \u003ccode\u003eParser.Builder\u003c/code\u003e is now 100; configure the\noption to remove the limit.\u003c/li\u003e\n\u003cli\u003eLimit how deeply inline nodes may nest by default (100), see option \u003ccode\u003emaxInlineNesting\u003c/code\u003e in\n\u003ccode\u003eParser.Builder\u003c/code\u003e; configure the option to remove the limit. This covers emphasis-like\ndelimiters (e.g. \u003ccode\u003e*\u003c/code\u003e or the ins extension's \u003ccode\u003e+\u003c/code\u003e) as well as images, which can otherwise\nnest arbitrarily deep for a small amount of input. Anything over the limit is treated as\nplain text instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix quadratic runtime on various pathological inputs (where inline syntax to start a\nnode is used repeatedly but never finished):\n\u003cul\u003e\n\u003cli\u003eInline HTML like \u003ccode\u003e\u0026quot;x \u0026lt;!--\u0026quot;.repeat(100_000)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/447\"\u003e#447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAutolink starts like \u003ccode\u003e\u0026quot;\u0026lt;\u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eEmphasis like \u003ccode\u003e\u0026quot;a**b\u0026quot; + \u0026quot;c* \u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBackticks runs of different lengths\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow errors when parsing pathological inputs with repeated syntax:\n\u003cul\u003e\n\u003cli\u003eHTML block attributes\u003c/li\u003e\n\u003cli\u003eAutolink email addresses\u003c/li\u003e\n\u003cli\u003eDeeply nested emphasis\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow error when rendering/visiting deeply nested inline nodes, by capping nesting\ndepth during parsing (see \u003ccode\u003emaxInlineNesting\u003c/code\u003e above). This can happen with emphasis, e.g.\n\u003ccode\u003e\u0026quot;*\u0026quot;.repeat(n) + \u0026quot;x\u0026quot; + \u0026quot;*\u0026quot;.repeat(n)\u003c/code\u003e or \u003ccode\u003e\u0026quot;*a \u0026quot;.repeat(n) + \u0026quot; b*\u0026quot;.repeat(n)\u003c/code\u003e, as well as with\nimages, e.g. \u003ccode\u003e\u0026quot;![\u0026quot;.repeat(https://github.com/commonmark/commonmark-java/blob/main/n) + \u0026quot;x\u0026quot; + \u0026quot;](u)\u0026quot;.repeat(n)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Fix inefficient string concatenation for literal-block values (\u003ccode\u003e|\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/64037cf982f2b12a4a2fa1c5a75c6d3f4ab979bf\"\u003e\u003ccode\u003e64037cf\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release commonmark-parent-0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/bd3e06669fd168874721267e7e5f5bd1d3433466\"\u003e\u003ccode\u003ebd3e066\u003c/code\u003e\u003c/a\u003e Fix Javadoc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/4aaf754cc90b4a5a62647a8fc621185c934f8bbf\"\u003e\u003ccode\u003e4aaf754\u003c/code\u003e\u003c/a\u003e mvn versions:set -DnewVersion=0.30.0-SNAPSHOT\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/42b4fb7adfe288ef13e9e27ab20aff7e91b0ab9d\"\u003e\u003ccode\u003e42b4fb7\u003c/code\u003e\u003c/a\u003e Prepare CHANGELOG for version 0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/b76e09d7a8362abb5f04e1d6b91dbd6da279a6fc\"\u003e\u003ccode\u003eb76e09d\u003c/code\u003e\u003c/a\u003e Limit how deep inline nodes may nest by default (100)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/49f65cb5cbec93cff713179990307145198e7061\"\u003e\u003ccode\u003e49f65cb\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing deeply nested emphasis\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/610f84b83e68c381e8f784ae4d044c80e1948b67\"\u003e\u003ccode\u003e610f84b\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing pathological autolink email addresses\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/9f1d73897a56cbd74c39347af351a473e70297e1\"\u003e\u003ccode\u003e9f1d738\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing pathological HTML block attributes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/e13297e849995fdd582a85841067bff1d9c35ee5\"\u003e\u003ccode\u003ee13297e\u003c/code\u003e\u003c/a\u003e Fix quadratic runtime when parsing pathological backticks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/89d1bd3fa1524e8217ed61db5e8116c82434470f\"\u003e\u003ccode\u003e89d1bd3\u003c/code\u003e\u003c/a\u003e Fix quadratic runtime when parsing with lots of \u003ccode\u003e\u0026lt;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.29.0...commonmark-parent-0.30.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.commonmark:commonmark-ext-autolink` from 0.29.0 to 0.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/commonmark/commonmark-java/releases\"\u003eorg.commonmark:commonmark-ext-autolink's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ecommonmark-java 0.30.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew option \u003ccode\u003elineSeparator\u003c/code\u003e for \u003ccode\u003eMarkdownRenderer.Builder\u003c/code\u003e to change the default line\nseparator from \u003ccode\u003e\\n\u003c/code\u003e (e.g. to \u003ccode\u003e\\r\\n\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Support extracting the raw YAML content so that you can\ndo the YAML parsing using a library (instead of the limited built-in parsing) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTables extension: Limit max number of parsed table cells by default (1 million cells),\nsee option \u003ccode\u003emaxCells\u003c/code\u003e in \u003ccode\u003eTablesExtension.Builder\u003c/code\u003e. Parsing will throw an error if the\nlimit would be exceeded, to protect against malicious input.\u003c/li\u003e\n\u003cli\u003eThe default for \u003ccode\u003emaxOpenBlockParsers\u003c/code\u003e for \u003ccode\u003eParser.Builder\u003c/code\u003e is now 100; configure the\noption to remove the limit.\u003c/li\u003e\n\u003cli\u003eLimit how deeply inline nodes may nest by default (100), see option \u003ccode\u003emaxInlineNesting\u003c/code\u003e in\n\u003ccode\u003eParser.Builder\u003c/code\u003e; configure the option to remove the limit. This covers emphasis-like\ndelimiters (e.g. \u003ccode\u003e*\u003c/code\u003e or the ins extension's \u003ccode\u003e+\u003c/code\u003e) as well as images, which can otherwise\nnest arbitrarily deep for a small amount of input. Anything over the limit is treated as\nplain text instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix quadratic runtime on various pathological inputs (where inline syntax to start a\nnode is used repeatedly but never finished):\n\u003cul\u003e\n\u003cli\u003eInline HTML like \u003ccode\u003e\u0026quot;x \u0026lt;!--\u0026quot;.repeat(100_000)\u003c/code\u003e (\u003ca href=\"https://redirect.github...\n\n_Description has been truncated_","html_url":"https://github.com/l3ocifer/puck-openclaw/pull/556","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/l3ocifer%2Fpuck-openclaw/issues/556","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/556/packages"}},{"old_version":"2.0.21","new_version":"2.4.20","update_type":"minor","path":null,"pr_created_at":"2026-09-14T18:13:41.000Z","version_change":"2.0.21 → 2.4.20","issue":{"uuid":"5452940009","node_id":"PR_kwDOTtjWm88AAAABDflKig","number":7,"state":"closed","title":"chore(deps): bump the kotlin group across 1 directory with 6 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-09-14T18:31:40.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-14T18:13:41.000Z","updated_at":"2026-09-14T18:31:43.000Z","time_to_close":1079,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"kotlin","update_count":6,"packages":[{"name":"org.jetbrains.kotlinx:kotlinx-serialization-json","old_version":"1.8.0","new_version":"1.11.0","repository_url":"https://github.com/Kotlin/kotlinx.serialization"},{"name":"org.jetbrains.kotlinx:kotlinx-coroutines-android","old_version":"1.10.1","new_version":"1.11.0","repository_url":"https://github.com/Kotlin/kotlinx.coroutines"},{"name":"org.jetbrains.kotlin.android","old_version":"2.0.21","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.compose","old_version":"2.0.21","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.0.21","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"com.google.devtools.ksp","old_version":"2.0.21-1.0.28","new_version":"2.3.12","repository_url":"https://github.com/google/ksp"}],"path":null,"ecosystem":"maven"},"body":"Bumps the kotlin group with 6 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [org.jetbrains.kotlinx:kotlinx-serialization-json](https://github.com/Kotlin/kotlinx.serialization) | `1.8.0` | `1.11.0` |\n| [org.jetbrains.kotlinx:kotlinx-coroutines-android](https://github.com/Kotlin/kotlinx.coroutines) | `1.10.1` | `1.11.0` |\n| [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) | `2.0.21` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.compose](https://github.com/JetBrains/kotlin) | `2.0.21` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.serialization](https://github.com/JetBrains/kotlin) | `2.0.21` | `2.4.20` |\n| [com.google.devtools.ksp](https://github.com/google/ksp) | `2.0.21-1.0.28` | `2.3.12` |\n\n\nUpdates `org.jetbrains.kotlinx:kotlinx-serialization-json` from 1.8.0 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/releases\"\u003eorg.jetbrains.kotlinx:kotlinx-serialization-json's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.11.0\u003c/h2\u003e\n\u003cp\u003eThis release is based on Kotlin 2.3.20 and provides a new Json exceptions API and some bugfixes and improvements.\u003c/p\u003e\n\u003ch2\u003eExpose Json exceptions structure\u003c/h2\u003e\n\u003cp\u003eTo make working with exceptions easier and providing proper error codes in e.g., REST APIs,\nclasses \u003ccode\u003eJsonException\u003c/code\u003e, \u003ccode\u003eJsonDecodingException\u003c/code\u003e, and \u003ccode\u003eJsonEncodingException\u003c/code\u003e are now public.\nThey have relevant public properties, such as \u003ccode\u003eshortMessage\u003c/code\u003e, \u003ccode\u003epath\u003c/code\u003e, \u003ccode\u003eoffset\u003c/code\u003e, and others.\nThis API is currently experimental, and we're going to improve it further in the subsequent releases.\nSee the linked issues for the details: \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/1930\"\u003e#1930\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/1877\"\u003e#1877\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eAbility to hide user input from exception messages for security/privacy reasons.\u003c/h2\u003e\n\u003cp\u003eHistorically, exception messages in kotlinx.serialization often included the input Json itself for debuggability reason.\nSuch behavior may pose additional challenges for logging, analytics, and other systems, since\na system is not always allowed to store user data due to privacy/security reasons, which imposes additional sanitation logic.\nTo address this issue, a new property \u003ccode\u003eexceptionsWithDebugInfo\u003c/code\u003e is added to \u003ccode\u003eJsonConfiguration\u003c/code\u003e.\nDisable it to hide user input from exception messages.\nIMPORTANT: This behavior will be enabled by default when this property becomes stable.\nSee \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/2590\"\u003e#2590\u003c/a\u003e for more details.\u003c/p\u003e\n\u003ch2\u003eBugfixes and improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCBOR: Relax value range check when decoding numbers (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3167\"\u003e#3167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse a specialized writeDecimalLong method for IO stream integrations in Json (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3152\"\u003e#3152\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.10.0\u003c/h2\u003e\n\u003cp\u003eThis release is based on Kotlin 2.3.0 and contains all of the changes from 1.10.0-RC.\nThe only additional change is a fix for ProtoBuf packing of Kotlin unsigned types (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3079\"\u003e#3079\u003c/a\u003e).\nBig thanks to \u003ca href=\"https://github.com/KosmX\"\u003eKosmX\u003c/a\u003e for contributing the fix.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eFor your convenience, the changelog for 1.10.0-RC is duplicated below:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eStabilization of APIs\u003c/h2\u003e\n\u003cp\u003ekotlinx-serialization 1.10 and subsequent releases will be focused on stabilization of existing APIs.\nThe following APIs and configuration options are no longer experimental because they're widely used without any known major issues:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eJson\u003c/code\u003e configuration options: \u003ccode\u003edecodeEnumsCaseInsensitive\u003c/code\u003e, \u003ccode\u003eallowTrailingComma\u003c/code\u003e, \u003ccode\u003eallowComments\u003c/code\u003e, and \u003ccode\u003eprettyPrintIndent\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3100\"\u003e#3100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@EncodeDefault\u003c/code\u003e annotation and its modes. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3106\"\u003e#3106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eJsonUnquotedLiteral\u003c/code\u003e constructor function (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/2900\"\u003e#2900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eJsonPrimitive\u003c/code\u003e constructor function overloads that accept unsigned types. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3117\"\u003e#3117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eJSON DSL functions on \u003ccode\u003eJsonElement\u003c/code\u003e with \u003ccode\u003eNothing?\u003c/code\u003e overloads. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3117\"\u003e#3117\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eReadiness for return value checker\u003c/h2\u003e\n\u003cp\u003eKotlin 2.3.0 \u003ca href=\"https://kotlinlang.org/docs/whatsnew23.html#unused-return-value-checker\"\u003eintroduces a new feature\u003c/a\u003e aimed at helping you to catch bugs related to the accidentally ignored return value of the function.\nkotlinx-serialization 1.10.0-RC code is fully marked for this feature, meaning that you can get warnings for unused function calls like \u003ccode\u003eJson.encodeToString(...)\u003c/code\u003e. To get the warnings, the feature has to be enabled in your project as \u003ca href=\"https://kotlinlang.org/docs/unused-return-value-checker.html#configure-the-unused-return-value-checker\"\u003edescribed here\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003ePolymorphism improvements\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/blob/master/CHANGELOG.md\"\u003eorg.jetbrains.kotlinx:kotlinx-serialization-json's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.11.0 / 2026-04-10\u003c/h1\u003e\n\u003cp\u003eThis release is based on Kotlin 2.3.20 and provides new Json exceptions API and some bugfixes and improvements.\u003c/p\u003e\n\u003ch2\u003eExpose Json exceptions structure\u003c/h2\u003e\n\u003cp\u003eTo make working with exceptions easier and providing proper error codes in e.g., REST APIs,\nclasses \u003ccode\u003eJsonException\u003c/code\u003e, \u003ccode\u003eJsonDecodingException\u003c/code\u003e, and \u003ccode\u003eJsonEncodingException\u003c/code\u003e are now public.\nThey have relevant public properties, such as \u003ccode\u003eshortMessage\u003c/code\u003e, \u003ccode\u003epath\u003c/code\u003e, \u003ccode\u003eoffset\u003c/code\u003e, and others.\nThis API is currently experimental, and we're going to improve it further in the subsequent releases.\nSee the linked issues for the details: \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/1930\"\u003e#1930\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/1877\"\u003e#1877\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eAbility to hide user input from exception messages for security/privacy reasons.\u003c/h2\u003e\n\u003cp\u003eHistorically, exception messages in kotlinx.serialization often included the input Json itself for debuggability reason.\nSuch behavior may pose additional challenges for logging, analytics, and other systems, since\na system is not always allowed to store user data due to privacy/security reasons, which imposes additional sanitation logic.\nTo address this issue, a new property \u003ccode\u003eexceptionsWithDebugInfo\u003c/code\u003e is added to \u003ccode\u003eJsonConfiguration\u003c/code\u003e.\nDisable it to hide user input from exception messages.\nIMPORTANT: This behavior will be enabled by default when this property becomes stable.\nSee \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/2590\"\u003e#2590\u003c/a\u003e for more details.\u003c/p\u003e\n\u003ch2\u003eBugfixes and improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCBOR: Relax value range check when decoding numbers (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3167\"\u003e#3167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse a specialized writeDecimalLong method for IO stream integrations in Json (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3152\"\u003e#3152\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.10.0 / 2026-01-21\u003c/h1\u003e\n\u003cp\u003eThis release is based on Kotlin 2.3.0 and contains all of the changes from 1.10.0-RC.\nThe only additional change is a fix for ProtoBuf packing of Kotlin unsigned types (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3079\"\u003e#3079\u003c/a\u003e).\nBig thanks to \u003ca href=\"https://github.com/KosmX\"\u003eKosmX\u003c/a\u003e for contributing the fix.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eFor your convenience, the changelog for 1.10.0-RC is duplicated below:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eStabilization of APIs\u003c/h2\u003e\n\u003cp\u003ekotlinx-serialization 1.10 and subsequent releases will be focused on stabilization of existing APIs.\nThe following APIs and configuration options are no longer experimental because they're widely used without any known major issues:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eJson\u003c/code\u003e configuration options: \u003ccode\u003edecodeEnumsCaseInsensitive\u003c/code\u003e, \u003ccode\u003eallowTrailingComma\u003c/code\u003e, \u003ccode\u003eallowComments\u003c/code\u003e, and \u003ccode\u003eprettyPrintIndent\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3100\"\u003e#3100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@EncodeDefault\u003c/code\u003e annotation and its modes. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3106\"\u003e#3106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eJsonUnquotedLiteral\u003c/code\u003e constructor function (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/2900\"\u003e#2900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eJsonPrimitive\u003c/code\u003e constructor function overloads that accept unsigned types. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3117\"\u003e#3117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eJSON DSL functions on \u003ccode\u003eJsonElement\u003c/code\u003e with \u003ccode\u003eNothing?\u003c/code\u003e overloads. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3117\"\u003e#3117\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eReadiness for return value checker\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/6956af2e6073347c7832c3c5b374fa3b5a345956\"\u003e\u003ccode\u003e6956af2\u003c/code\u003e\u003c/a\u003e Prepare 1.11 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/390d84c68a19cbf7fa453dec22a333648bde49b4\"\u003e\u003ccode\u003e390d84c\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into dev\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/431fe2dc0a144300b33038820d24fc30302c8abc\"\u003e\u003ccode\u003e431fe2d\u003c/code\u003e\u003c/a\u003e Use local repo for publishing (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3171\"\u003e#3171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/05c12b60a6717b99053fb82e1f94d2f859727374\"\u003e\u003ccode\u003e05c12b6\u003c/code\u003e\u003c/a\u003e Add usage attribute to \u0026quot;testRepositories\u0026quot; configuration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/a4e1f082ef2e72caa139b474c05657de6015da20\"\u003e\u003ccode\u003ea4e1f08\u003c/code\u003e\u003c/a\u003e Bump Kover version to 0.9.8 release (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3174\"\u003e#3174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/304e858ccc7066854637d86ab80056f5f2bcc094\"\u003e\u003ccode\u003e304e858\u003c/code\u003e\u003c/a\u003e Expose Json exceptions structure (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3145\"\u003e#3145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/4a0338ef5093d765138151bc30282e909ca459e4\"\u003e\u003ccode\u003e4a0338e\u003c/code\u003e\u003c/a\u003e Included G Play SDK verification file for core-jvm (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3169\"\u003e#3169\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/421f64c74f0ea6d4a3cdc8dd483505366e3f6c8f\"\u003e\u003ccode\u003e421f64c\u003c/code\u003e\u003c/a\u003e CBOR: Relax value range check when decoding numbers (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3167\"\u003e#3167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/85a4f126ec491c77e2b3686cc22c1bae27a20783\"\u003e\u003ccode\u003e85a4f12\u003c/code\u003e\u003c/a\u003e KT-84955: mark apple x64 tagets as deprecated error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/bd38b0e49bce38d1a55576e89856bc63990167ed\"\u003e\u003ccode\u003ebd38b0e\u003c/code\u003e\u003c/a\u003e Remove dead code\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/compare/v1.8.0...v1.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlinx:kotlinx-coroutines-android` from 1.10.1 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/releases\"\u003eorg.jetbrains.kotlinx:kotlinx-coroutines-android's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.11.0\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003ePromise\u003c/code\u003e-related functions from JS and Wasm/JS to the new \u003ccode\u003eweb\u003c/code\u003e target. On Wasm/JS, this is a breaking change. Before the change, \u003ccode\u003ePromise\u003c/code\u003e on Wasm/JS could work with arbitrary Kotlin types, but now, only \u003ccode\u003eJsAny\u003c/code\u003e subtypes are accepted (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4563\"\u003e#4563\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eChanged handling of coroutine exceptions that can't be propagated on JS and Wasm/JS. B\nefore, exceptions were logged, but now, they are reported to the JS runtime (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4451\"\u003e#4451\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4631\"\u003e#4631\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeprecated using \u003ccode\u003eCoroutineDispatcher\u003c/code\u003e as the coroutine context key; now, \u003ccode\u003eContinuationInterceptor\u003c/code\u003e has to be used instead (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4333\"\u003e#4333\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdvanced the deprecation levels on \u003ccode\u003ekotlinx-coroutines-test\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4604\"\u003e#4604\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded lint functions that mark passing a \u003ccode\u003eJob\u003c/code\u003e to coroutine builders as deprecated (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4435\"\u003e#4435\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003erunBlocking\u003c/code\u003e in code shared between JVM and Native (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4368\"\u003e#4368\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003esuspendCancellableCoroutine\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4574\"\u003e#4574\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eflowOn\u003c/code\u003e incorrectly handling \u003ccode\u003eThreadContextElement\u003c/code\u003e updates (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4403\"\u003e#4403\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed exceptions in user-supplied \u003ccode\u003eThread.UncaughtExceptionHandler\u003c/code\u003e instances causing the internal coroutines machinery to fail (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4516\"\u003e#4516\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCoroutineDispatcher.asScheduler\u003c/code\u003e in the RxJava integration not cancelling outstanding work when a \u003ccode\u003eWorker\u003c/code\u003e gets cancelled, which led to memory leaks in some scenarios (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4615\"\u003e#4615\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSharedFlow\u003c/code\u003e entering an invalid state when a subscriber and an emitter are cancelled simultaneously (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4583\"\u003e#4583\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed an R8 optimization leading to \u003ccode\u003eshareIn\u003c/code\u003e/\u003ccode\u003estateIn\u003c/code\u003e coroutines getting garbage-collected (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4646\"\u003e#4646\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/solevic\"\u003e\u003ccode\u003e@​solevic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSmall additions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eCompletableDeferred.asDeferred\u003c/code\u003e for obtaining a read-only \u003ccode\u003eDeferred\u003c/code\u003e view (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4408\"\u003e#4408\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSharedFlow.asFlow\u003c/code\u003e for obtaining a \u003ccode\u003eFlow\u003c/code\u003e view with hidden hot flow semantics (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4530\"\u003e#4530\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/g000sha256\"\u003e\u003ccode\u003e@​g000sha256\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow.collectLatest\u003c/code\u003e overload returning \u003ccode\u003eNothing\u003c/code\u003e to assist with finding unreachable code (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4454\"\u003e#4454\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eReceiveChannel.consumeTo\u003c/code\u003e for consuming a \u003ccode\u003eReceiveChannel\u003c/code\u003e into a \u003ccode\u003eMutableCollection\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4520\"\u003e#4520\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e overload returning a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;\u003c/code\u003e, similar to \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e returning \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4275\"\u003e#4275\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/xit0c\"\u003e\u003ccode\u003e@​xit0c\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded terminal \u003ccode\u003eFlow\u003c/code\u003e operators for collecting a \u003ccode\u003eFlow\u003c/code\u003e to a \u003ccode\u003eMap\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/1541\"\u003e#1541\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog relative to version 1.11.0\u003c/h3\u003e\n\u003cp\u003eNo changes, only the version is increased.\u003c/p\u003e\n\u003ch2\u003e1.11.0-rc02\u003c/h2\u003e\n\u003cp\u003eRestored binary compatibility with 1.10.2 and older versions on Wasm/JS for usages of \u003ccode\u003ePromise\u003c/code\u003e-related functions (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003e1.11.0-rc01\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/blob/master/CHANGES.md\"\u003eorg.jetbrains.kotlinx:kotlinx-coroutines-android's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.11.0\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003ePromise\u003c/code\u003e-related functions from JS and Wasm/JS to the new \u003ccode\u003eweb\u003c/code\u003e target. On Wasm/JS, this is a breaking change. Before the change, \u003ccode\u003ePromise\u003c/code\u003e on Wasm/JS could work with arbitrary Kotlin types, but now, only \u003ccode\u003eJsAny\u003c/code\u003e subtypes are accepted (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4563\"\u003e#4563\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eChanged handling of coroutine exceptions that can't be propagated on JS and Wasm/JS. Before, exceptions were logged, but now, they are reported to the JS runtime (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4451\"\u003e#4451\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4631\"\u003e#4631\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeprecated using \u003ccode\u003eCoroutineDispatcher\u003c/code\u003e as the coroutine context key; now, \u003ccode\u003eContinuationInterceptor\u003c/code\u003e has to be used instead (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4333\"\u003e#4333\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdvanced the deprecation levels on \u003ccode\u003ekotlinx-coroutines-test\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4604\"\u003e#4604\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded lint functions that mark passing a \u003ccode\u003eJob\u003c/code\u003e to coroutine builders as deprecated (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4435\"\u003e#4435\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003erunBlocking\u003c/code\u003e in code shared between JVM and Native (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4368\"\u003e#4368\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003esuspendCancellableCoroutine\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4574\"\u003e#4574\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eflowOn\u003c/code\u003e incorrectly handling \u003ccode\u003eThreadContextElement\u003c/code\u003e updates (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4403\"\u003e#4403\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed exceptions in user-supplied \u003ccode\u003eThread.UncaughtExceptionHandler\u003c/code\u003e instances causing the internal coroutines machinery to fail (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4516\"\u003e#4516\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCoroutineDispatcher.asScheduler\u003c/code\u003e in the RxJava integration not cancelling outstanding work when a \u003ccode\u003eWorker\u003c/code\u003e gets cancelled, which led to memory leaks in some scenarios (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4615\"\u003e#4615\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSharedFlow\u003c/code\u003e entering an invalid state when a subscriber and an emitter are cancelled simultaneously (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4583\"\u003e#4583\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed an R8 optimization leading to \u003ccode\u003eshareIn\u003c/code\u003e/\u003ccode\u003estateIn\u003c/code\u003e coroutines getting garbage-collected (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4646\"\u003e#4646\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/solevic\"\u003e\u003ccode\u003e@​solevic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSmall additions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eCompletableDeferred.asDeferred\u003c/code\u003e for obtaining a read-only \u003ccode\u003eDeferred\u003c/code\u003e view (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4408\"\u003e#4408\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSharedFlow.asFlow\u003c/code\u003e for obtaining a \u003ccode\u003eFlow\u003c/code\u003e view with hidden hot flow semantics (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4530\"\u003e#4530\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/g000sha256\"\u003e\u003ccode\u003e@​g000sha256\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow.collectLatest\u003c/code\u003e overload returning \u003ccode\u003eNothing\u003c/code\u003e to assist with finding unreachable code (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4454\"\u003e#4454\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eReceiveChannel.consumeTo\u003c/code\u003e for consuming a \u003ccode\u003eReceiveChannel\u003c/code\u003e into a \u003ccode\u003eMutableCollection\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4520\"\u003e#4520\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e overload returning a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;\u003c/code\u003e, similar to \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e returning \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4275\"\u003e#4275\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/xit0c\"\u003e\u003ccode\u003e@​xit0c\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded terminal \u003ccode\u003eFlow\u003c/code\u003e operators for collecting a \u003ccode\u003eFlow\u003c/code\u003e to a \u003ccode\u003eMap\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/1541\"\u003e#1541\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog relative to version 1.11.0\u003c/h3\u003e\n\u003cp\u003eNo changes, only the version is increased.\u003c/p\u003e\n\u003ch2\u003eVersion 1.11.0-rc02\u003c/h2\u003e\n\u003cp\u003eRestored binary compatibility with 1.10.2 and older versions on Wasm/JS for usages of \u003ccode\u003ePromise\u003c/code\u003e-related functions (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eVersion 1.11.0-rc01\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/8564f65764d3d05893cec026c6e94250e2b23874\"\u003e\u003ccode\u003e8564f65\u003c/code\u003e\u003c/a\u003e Version 1.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/a4c6af96c15fe30f5d4e8b810ea74f8babd5805c\"\u003e\u003ccode\u003ea4c6af9\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/ef917b460aa741691fbf991ee1b813049cae18c9\"\u003e\u003ccode\u003eef917b4\u003c/code\u003e\u003c/a\u003e KT-84955: mark apple x64 tagets as deprecated error (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/5ebc421e341bf2ddce734d369da87df1985e80bd\"\u003e\u003ccode\u003e5ebc421\u003c/code\u003e\u003c/a\u003e Update the release procedure description (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4670\"\u003e#4670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/95f46a073bc4a1230352108cea1835fd22219a80\"\u003e\u003ccode\u003e95f46a0\u003c/code\u003e\u003c/a\u003e Remove old maven repository settings (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4672\"\u003e#4672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/b4f4f0aa6acb692f3fbcadd70e4958e3e9d370fc\"\u003e\u003ccode\u003eb4f4f0a\u003c/code\u003e\u003c/a\u003e Fix package name of \u003ccode\u003eToMapCollectionSamplesTest\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4674\"\u003e#4674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/86738dca7dc9ac82249abc8206263fa0065ee631\"\u003e\u003ccode\u003e86738dc\u003c/code\u003e\u003c/a\u003e Added templates to the issue creation wizard (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4654\"\u003e#4654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/330fcc221fb583f0b119f34191f735a73b827378\"\u003e\u003ccode\u003e330fcc2\u003c/code\u003e\u003c/a\u003e Version 1.11.0-rc02\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/e31cef6e9f2d26794be7d75ecbf3033b6432d582\"\u003e\u003ccode\u003ee31cef6\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/dc6e9f61eaf3a67f4bf474a7987aedc3f16cef37\"\u003e\u003ccode\u003edc6e9f6\u003c/code\u003e\u003c/a\u003e Restore Promise-related functions on Wasm/JS as HIDDEN (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/compare/1.10.1...1.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.android` from 2.0.21 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.android's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.android's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.0.21...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.plugin.compose` from 2.0.21 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.plugin.compose's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.plugin.compose's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.0.21...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.plugin.serialization` from 2.0.21 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.plugin.serialization's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.plugin.serialization's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for privat...\n\n_Description has been truncated_","html_url":"https://github.com/shgnx/slte/pull/7","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/shgnx%2Fslte/issues/7","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/7/packages"}},{"old_version":"2.4.0","new_version":"2.4.20","update_type":"patch","path":null,"pr_created_at":"2026-09-14T17:43:37.000Z","version_change":"2.4.0 → 2.4.20","issue":{"uuid":"5452657431","node_id":"PR_kwDOTHJuas8AAAABDfWe-A","number":34,"state":"open","title":"chore(deps): bump the android-deps group across 1 directory with 20 updates","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-14T17:43:37.000Z","updated_at":"2026-09-14T17:45:24.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"android-deps","update_count":20,"packages":[{"name":"gradle-wrapper","old_version":"9.5.1","new_version":"9.7.1","repository_url":"https://github.com/gradle/gradle"},{"name":"androidx.benchmark:benchmark-macro-junit4","old_version":"1.4.1","new_version":"1.5.0"},{"name":"androidx.compose:compose-bom","old_version":"2026.05.01","new_version":"2026.09.00"},{"name":"androidx.core:core-ktx","old_version":"1.18.0","new_version":"1.19.0"},{"name":"org.bouncycastle:bcprov-jdk18on","old_version":"1.84","new_version":"1.86","repository_url":"https://github.com/bcgit/bc-java"},{"name":"org.commonmark:commonmark","old_version":"0.28.0","new_version":"0.30.0","repository_url":"https://github.com/commonmark/commonmark-java"},{"name":"org.commonmark:commonmark-ext-autolink","old_version":"0.28.0","new_version":"0.30.0","repository_url":"https://github.com/commonmark/commonmark-java"},{"name":"org.commonmark:commonmark-ext-gfm-strikethrough","old_version":"0.28.0","new_version":"0.30.0","repository_url":"https://github.com/commonmark/commonmark-java"},{"name":"org.commonmark:commonmark-ext-gfm-tables","old_version":"0.28.0","new_version":"0.30.0","repository_url":"https://github.com/commonmark/commonmark-java"},{"name":"org.commonmark:commonmark-ext-task-list-items","old_version":"0.28.0","new_version":"0.30.0","repository_url":"https://github.com/commonmark/commonmark-java"},{"name":"org.junit.vintage:junit-vintage-engine","old_version":"6.1.0","new_version":"6.1.3","repository_url":"https://github.com/junit-team/junit-framework"},{"name":"io.kotest:kotest-assertions-core-jvm","old_version":"6.1.11","new_version":"6.2.5","repository_url":"https://github.com/kotest/kotest"},{"name":"io.kotest:kotest-runner-junit5-jvm","old_version":"6.1.11","new_version":"6.2.5","repository_url":"https://github.com/kotest/kotest"},{"name":"com.squareup.okhttp3:mockwebserver","old_version":"5.3.2","new_version":"5.5.0","repository_url":"https://github.com/lysine-dev/okhttp"},{"name":"com.squareup.okhttp3:okhttp","old_version":"5.3.2","new_version":"5.5.0","repository_url":"https://github.com/lysine-dev/okhttp"},{"name":"org.robolectric:robolectric","old_version":"4.16.1","new_version":"4.17","repository_url":"https://github.com/robolectric/robolectric"},{"name":"com.android.application","old_version":"9.2.1","new_version":"9.4.0"},{"name":"com.android.test","old_version":"9.2.1","new_version":"9.4.0"},{"name":"org.jetbrains.kotlin.plugin.compose","old_version":"2.4.0","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.4.0","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"}],"path":null,"ecosystem":"maven"},"body":"Bumps the android-deps group with 20 updates in the /apps/android directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [gradle-wrapper](https://github.com/gradle/gradle) | `9.5.1` | `9.7.1` |\n| androidx.benchmark:benchmark-macro-junit4 | `1.4.1` | `1.5.0` |\n| androidx.compose:compose-bom | `2026.05.01` | `2026.09.00` |\n| androidx.core:core-ktx | `1.18.0` | `1.19.0` |\n| [org.bouncycastle:bcprov-jdk18on](https://github.com/bcgit/bc-java) | `1.84` | `1.86` |\n| [org.commonmark:commonmark](https://github.com/commonmark/commonmark-java) | `0.28.0` | `0.30.0` |\n| [org.commonmark:commonmark-ext-autolink](https://github.com/commonmark/commonmark-java) | `0.28.0` | `0.30.0` |\n| [org.commonmark:commonmark-ext-gfm-strikethrough](https://github.com/commonmark/commonmark-java) | `0.28.0` | `0.30.0` |\n| [org.commonmark:commonmark-ext-gfm-tables](https://github.com/commonmark/commonmark-java) | `0.28.0` | `0.30.0` |\n| [org.commonmark:commonmark-ext-task-list-items](https://github.com/commonmark/commonmark-java) | `0.28.0` | `0.30.0` |\n| [org.junit.vintage:junit-vintage-engine](https://github.com/junit-team/junit-framework) | `6.1.0` | `6.1.3` |\n| [io.kotest:kotest-assertions-core-jvm](https://github.com/kotest/kotest) | `6.1.11` | `6.2.5` |\n| [io.kotest:kotest-runner-junit5-jvm](https://github.com/kotest/kotest) | `6.1.11` | `6.2.5` |\n| [com.squareup.okhttp3:mockwebserver](https://github.com/lysine-dev/okhttp) | `5.3.2` | `5.5.0` |\n| [com.squareup.okhttp3:okhttp](https://github.com/lysine-dev/okhttp) | `5.3.2` | `5.5.0` |\n| [org.robolectric:robolectric](https://github.com/robolectric/robolectric) | `4.16.1` | `4.17` |\n| com.android.application | `9.2.1` | `9.4.0` |\n| com.android.test | `9.2.1` | `9.4.0` |\n| [org.jetbrains.kotlin.plugin.compose](https://github.com/JetBrains/kotlin) | `2.4.0` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.serialization](https://github.com/JetBrains/kotlin) | `2.4.0` | `2.4.20` |\n\n\nUpdates `gradle-wrapper` from 9.5.1 to 9.7.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gradle/gradle/releases\"\u003egradle-wrapper's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.7.1\u003c/h2\u003e\n\u003cp\u003eThe Gradle team is excited to announce Gradle 9.7.1.\u003c/p\u003e\n\u003cp\u003eThis is a patch release for 9.7.0. We recommend using 9.7.1 instead of 9.7.0.\u003c/p\u003e\n\u003cp\u003eHere are the highlights of 9.7.0 release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIsolated Projects graduates to incubating\u003c/li\u003e\n\u003cli\u003eBroader Configuration Cache compatibility\u003c/li\u003e\n\u003cli\u003eResilient Sync helps you fix broken builds\u003c/li\u003e\n\u003cli\u003eMore source locations in problem reports\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://docs.gradle.org/9.7.1/release-notes.html\"\u003eRead the Release Notes\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eWe would like to thank the following community members for their contributions to this release of Gradle:\n\u003ca href=\"https://github.com/aSemy\"\u003eAdam\u003c/a\u003e,\n\u003ca href=\"https://github.com/Gautam-aman\"\u003eAman Gautam\u003c/a\u003e,\n\u003ca href=\"https://github.com/YukiCodepth\"\u003eAman Kumar\u003c/a\u003e,\n\u003ca href=\"https://github.com/adubrouski\"\u003eAnton Dubrouski\u003c/a\u003e,\n\u003ca href=\"https://github.com/liutikas\"\u003eAurimas\u003c/a\u003e,\n\u003ca href=\"https://github.com/gbhavya07\"\u003egbhavya07\u003c/a\u003e,\n\u003ca href=\"https://github.com/joshfriend\"\u003eJosh Friend\u003c/a\u003e,\n\u003ca href=\"https://github.com/nicklauslittle-gov\"\u003enicklauslittle-gov\u003c/a\u003e,\n\u003ca href=\"https://github.com/psoni674\"\u003ePragati\u003c/a\u003e,\n\u003ca href=\"https://github.com/Project516\"\u003eproject516\u003c/a\u003e,\n\u003ca href=\"https://github.com/Uomocapra\"\u003eQin Mi\u003c/a\u003e,\n\u003ca href=\"https://github.com/rkdfx\"\u003eRavi\u003c/a\u003e,\n\u003ca href=\"https://github.com/sk-reddy17\"\u003esk-reddy17\u003c/a\u003e,\n\u003ca href=\"https://github.com/Suvrat1629\"\u003eSuvrat Acharya\u003c/a\u003e,\n\u003ca href=\"https://github.com/ShreckYe\"\u003eYongshun Ye\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eUpgrade instructions\u003c/h2\u003e\n\u003cp\u003eSwitch your build to use Gradle 9.7.1 by updating your wrapper:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e./gradlew :wrapper --gradle-version=9.7.1 \u0026amp;\u0026amp; ./gradlew :wrapper\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eSee the Gradle \u003ca href=\"https://docs.gradle.org/9.7.1/userguide/upgrading_version_9.html\"\u003e9.x upgrade guide\u003c/a\u003e to learn about deprecations, breaking changes and other considerations when upgrading.\u003c/p\u003e\n\u003cp\u003eFor Java, Groovy, Kotlin and Android compatibility, see the \u003ca href=\"https://docs.gradle.org/9.7.1/userguide/compatibility.html\"\u003efull compatibility notes\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eReporting problems\u003c/h2\u003e\n\u003cp\u003eIf you find a problem with this release, please file a bug on \u003ca href=\"https://github.com/gradle/gradle/issues\"\u003eGitHub Issues\u003c/a\u003e adhering to our issue guidelines.\nIf you're not sure you're encountering a bug, please use the \u003ca href=\"https://discuss.gradle.org/c/help-discuss\"\u003eforum\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eWe hope you will build happiness with Gradle, and we look forward to your feedback via \u003ca href=\"https://twitter.com/gradle\"\u003eTwitter\u003c/a\u003e or on \u003ca href=\"https://github.com/gradle\"\u003eGitHub\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003e9.7.0\u003c/h2\u003e\n\u003cp\u003eThe Gradle team is excited to announce Gradle 9.7.0.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/92f0512e7f06d84621afba191f75e265363890cf\"\u003e\u003ccode\u003e92f0512\u003c/code\u003e\u003c/a\u003e update fixed issues for 9.7.1 (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/38892\"\u003e#38892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/820ee75a99a179bbffa41bcedc6477b685fabb9f\"\u003e\u003ccode\u003e820ee75\u003c/code\u003e\u003c/a\u003e update fixed issues for 9.7.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/82c23f9bd2a89b4cc644e1f90a28a8668feb3dee\"\u003e\u003ccode\u003e82c23f9\u003c/code\u003e\u003c/a\u003e Fix annotation parameter ordering problem in KTS (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/38878\"\u003e#38878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/ef11a7268fe8cc8d6ab849ec911aa11220180553\"\u003e\u003ccode\u003eef11a72\u003c/code\u003e\u003c/a\u003e Fix annotation parameter ordering issue\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/bb0d8a974a71b1003efea41e4046e98855cd5ff8\"\u003e\u003ccode\u003ebb0d8a9\u003c/code\u003e\u003c/a\u003e Make relevant tests polyglot (run for multiple DSLs)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/336e129d7f95c03486acafc97abf59734acfed48\"\u003e\u003ccode\u003e336e129\u003c/code\u003e\u003c/a\u003e Update signing configuration (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/38874\"\u003e#38874\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/4bdf0da2dad9884d089a6062a45ea7183e7d735d\"\u003e\u003ccode\u003e4bdf0da\u003c/code\u003e\u003c/a\u003e Update signing configuration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/cd9b92c1b82856248cf1dc58b50378238bec7b52\"\u003e\u003ccode\u003ecd9b92c\u003c/code\u003e\u003c/a\u003e List issues resolved in 9.7.1 (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/38839\"\u003e#38839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/5f4e381964897ad8d6b99e5a7c77f26dba3259fb\"\u003e\u003ccode\u003e5f4e381\u003c/code\u003e\u003c/a\u003e List issues resolved in 9.7.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/1e08ab551367aeb5fb48b26e72807e1d2b27c939\"\u003e\u003ccode\u003e1e08ab5\u003c/code\u003e\u003c/a\u003e Keep type-use annotations in extracted ABI classes (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/38810\"\u003e#38810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gradle/gradle/compare/v9.5.1...v9.7.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `androidx.benchmark:benchmark-macro-junit4` from 1.4.1 to 1.5.0\n\nUpdates `androidx.compose:compose-bom` from 2026.05.01 to 2026.09.00\n\nUpdates `androidx.core:core-ktx` from 1.18.0 to 1.19.0\n\nUpdates `org.bouncycastle:bcprov-jdk18on` from 1.84 to 1.86\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/bcgit/bc-java/blob/main/docs/releasenotes.md\"\u003eorg.bouncycastle:bcprov-jdk18on's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eBouncy Castle Crypto Package - Release Notes\u003c/h1\u003e\n\u003ch2\u003e1.0 Introduction\u003c/h2\u003e\n\u003cp\u003eThe Bouncy Castle Crypto package is a Java implementation of cryptographic algorithms. The package is organised so that it contains a light-weight API suitable for use in any environment (including the J2ME) with the additional infrastructure to conform the algorithms to the JCE framework.\u003c/p\u003e\n\u003ch2\u003e2.0 Release History\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003e2.1.1 Version\u003c/h3\u003e\n\u003cp\u003eRelease: 1.87\u003cbr /\u003e\nDate: 2026, TBD\u003c/p\u003e\n\u003ch3\u003e2.1.2 Defects Fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eA KeyAgreement asked for its shared secret before doPhase returned data rather than refusing. javax.crypto.KeyAgreement specifies IllegalStateException for that state, but nothing in the provider tracked it, so each SPI handed back whatever its result field held: for Diffie-Hellman that was the private value itself - engineInit seeded result with x, so generateSecret() returned the private exponent padded to the prime's length and generateSecret(\u0026quot;AES\u0026quot;) an all-zero key taken from that padding - while ECDH returned null and its named-algorithm overload raised NullPointerException. BaseAgreementSpi now records whether a doPhase has completed the agreement since the last init and refuses the request with an IllegalStateException naming the algorithm, so every family in the provider - DH, ECDH and ECMQV, the SM2 exchange, both ECGOST families, XDH, SM9 and NewHope - answers the same way, and the DH SPI no longer holds the private value in that field at all.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMac.getInstance and KeyGenerator.getInstance by the HMAC SHA-512/224 and SHA-512/256 object identifiers (1.2.840.113549.2.12 and .13) failed, although the same algorithms resolved by name and the matching SecretKeyFactory aliases were registered: the SHA512 mappings called addHMACAlgorithm for the two truncated variants without the addHMACAlias that registers their OIDs against Mac and KeyGenerator. Both are now aliased, as every other HMAC in that class already was.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eA KTSParameterSpec naming an HKDF key-derivation function with a parameters field - a form the provider does not service - was accepted at Cipher init and then failed out of wrap or unwrap with an unchecked IllegalStateException neither method declares. The KTS key-wrapping Ciphers (ML-KEM, Classic McEliece, FrodoKEM, the composite KEM and RSA-KEM) now validate the spec's KDF when they take it, reporting an unserviceable one as the InvalidAlgorithmParameterException engineInit declares, which is what the javax.crypto.KEM services already did through KdfUtil.resolveKemSpec.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eA DTLS handshake deadlocked when a handshake message ahead of the peer's ChangeCipherSpec (a client's CertificateVerify, say) was lost while the ChangeCipherSpec and Finished behind it arrived: the record layer moved its read epoch on at the ChangeCipherSpec and then discarded every retransmission of the lost message as belonging to the old epoch, whose records are only accepted once the handshake has completed. Each side then waited on the other until a handshake timeout, if one was configured, ended it. Every client-authenticated handshake, and every handshake in which the server issues a NewSessionTicket, was exposed. Until the handshake completes, handshake records from the current epoch are now still accepted after the read epoch has moved on, and each message is checked against the epoch of the record that carried it. The DTLS loopback tests now run their handshakes at 10% datagram loss in each direction, with a client-authenticated handshake at 25%.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe lightweight SubjectPublicKeyInfoFactory and PrivateKeyInfoFactory encoded a GOST R 34.10-2012 key on one of the legacy CryptoPro curves under id-GostR3410-2001, although RFC 9215 sec. 4.2 permits those curves for 2012 keys. The digestParamSet now decides: a GOST R 34.11-94 parameter set means 2001 (RFC 4491 sec. 2.3.2), a GOST R 34.11-2012 digest or none means 2012 with 256/512 taken from the curve field size, and any other value is rejected. GOST3410PublicKeyAlgParameters treats digestParamSet as OPTIONAL on both read and write per RFC 9215, and PrivateKeyInfoFactory now passes attributes through for ECGOST3410 keys (bc-csharp github \u003ca href=\"https://redirect.github.com/bcgit/bc-java/issues/707\"\u003e#707\u003c/a\u003e).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe name-constraint host canonicalisation removed a single RFC 1034 root-label dot, the only empty label a name may legally carry, but nothing refused the ones that are not legal: a dNSName, rfc822Name host or uniformResourceIdentifier host such as \u0026quot;example.com..\u0026quot; kept a phantom empty label after the strip and so matched no constraint at all, escaping an excluded subtree naming the host it appears to carry. A tested name whose host carries an empty label - a second trailing dot, a doubled dot or a leading dot - is now refused outright wherever a constraint of that type is in force, rather than canonicalised into a name it is not: removing the extra dots would decide on the caller's behalf that \u0026quot;example.com..\u0026quot; names example.com, which is not how a consumer resolving or comparing the name reads it, and refusing fails closed in both directions where canonicalising would newly admit such a name under a permitted subtree. The single trailing dot is canonicalised as before, a bare \u0026quot;.\u0026quot; remains the root label rather than an empty one, and the guard is scoped to the host, so the doubled dot a quoted local part may legally carry is unaffected. Constraints are untouched - one may still begin with a dot, which is how this implementation spells \u0026quot;subdomains only\u0026quot; (github PR \u003ca href=\"https://redirect.github.com/bcgit/bc-java/issues/2436\"\u003e#2436\u003c/a\u003e).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e2.1.3 Additional Features and Functionality\u003c/h3\u003e\n\u003ch3\u003e2.1.4 Additional Notes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe sources and javadoc jars of the Ant-built distributions (jdk14, jdk15to18 and jdk13) no longer carry test material. Each module's javadoc target copies the package documentation it needs - org/bouncycastle/\u003c!-- raw HTML omitted --\u003e/\u003cstrong\u003e/*.html - back into the module source directory that has already been compiled from, and zip-src zips that directory afterwards, so every test package's package.html arrived in the sources jar by that route; javadoc-util additionally copied org/bouncycastle/asn1/isismtt/\u003c/strong\u003e/*.java, which put test classes into the bcutil javadoc as generated pages, and javadoc-pg deliberately copied the gpg and bcpg test sources in order to document them. Separately the source copies excluded test material only one directory deep and only for *.java, because Ant reads ** as an any-depth wildcard just where it is a whole path segment, so anything nested further or with another extension - the PEM certificate fixtures under org/bouncycastle/est/test/san corrected in 1.86, and an ICAO master list under org/bouncycastle/asn1/icao/test - went through. The source and javadoc copies of every module now exclude test directories at any depth, and javadoc-pg no longer documents the test packages. org.bouncycastle.util.test is unaffected and still ships in the bcprov binary, sources and javadoc jars, as it does from the Gradle build: it is the SimpleTest framework the light-weight API's own test classes are written against, not test material of the distribution. No binary changes - the classes and resources of every Ant-built jar are identical to those of the 1.86 release - and the Gradle-built jdk18on artifacts never carried any of this.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003e2.2.1 Version\u003c/h3\u003e\n\u003cp\u003eRelease: 1.86\u003cbr /\u003e\nDate: 2026, 11th September.\u003c/p\u003e\n\u003ch3\u003e2.2.2 Defects Fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe high-level OpenPGP API let a subkey inherit the primary key's Key Flags when its own Subkey Binding signature carried none, so a subkey bound with no flags counted as signing-capable for one check while the cross-certification check RFC 9580 sec. 5.2.1.8 requires of a signing subkey saw none and was skipped - letting a third party's public signing subkey be bound to an attacker's primary key and that party's genuine signatures verify under the attacker's identity. Flags are no longer inherited (CVE-2026-71887).\u003c/li\u003e\n\u003cli\u003eThe high-level OpenPGP API used a version 6 key carrying no valid Direct Key signature, falling back to the primary user ID binding as it correctly does for version 4. RFC 9580 sec. 5.2.3.10 requires the opposite, and since a v6 certificate carries its expiration and preferences there, stripping that one packet silently dropped them - the certificate went on offering subkeys of a key set to expire. isBoundBy now requires a valid Direct Key self-signature before any v6 component is treated as bound; version 4 is unaffected.\u003c/li\u003e\n\u003cli\u003eThe high-level OpenPGP API ignored the OpenPGPPolicy a caller had configured when verifying signatures on an inline message: OpenPGPMessageInputStream took the policy from the implementation's own default rather than from the processor doing the verification, so a hardened policy had no bearing on acceptance and getSignatures() reported isTestedCorrect() true for a signature that policy rejects. Both the one-pass and prefixed-signature paths now read the configured policy.\u003c/li\u003e\n\u003cli\u003eThe high-level OpenPGP API went on offering the subkeys of a certificate whose primary key had expired, the binding check evaluating only a subkey's own Subkey Binding signature - so the certificate contradicted itself, reporting the primary unbound while still handing out its subkeys. The primary key's expiration now applies to the whole certificate, as GnuPG and Sequoia treat it, and a subkey no longer inherits the primary's validity period, which RFC 9580 sec. 5.2.3.13 counts from the creation time of the key the carrying signature is made on.\u003c/li\u003e\n\u003cli\u003eOpenPGPDocumentSignature.isValidAt(Date) reported a data signature as valid past the signature's own Signature Expiration Time (RFC 9580 sec. 5.2.3.18): it checked that the signature was correct and the issuing key bound and signing-capable at that date, but never the signature's own expiration, so it disagreed with isEffectiveAt() on the same object and with its own javadoc. isValid() and isValid(policy), which evaluate at creation time, are unchanged.\u003c/li\u003e\n\u003cli\u003eThe lightweight LMSSigner and HSSSigner refused a key wrapped in ParametersWithRandom, which is how BcContentSignerBuilder passes one once setSecureRandom() has been called, so BcHssLmsContentSignerBuilder failed with \u0026quot;Incorrect Key Parameters\u0026quot; and the two signers raised ClassCastException. All three now unwrap it, as the ML-DSA and SLH-DSA signers already did; the random is accepted and ignored, LMS deriving its message randomiser deterministically from the seed and one-time index.\u003c/li\u003e\n\u003cli\u003eLMS signature verification did not apply two checks RFC 8554 sec. 5.4.2 requires before a signature is processed: step 2g, refusing a signature whose LMS typecode is not the public key's - without it a signature claiming a height-25 parameter set drove a 25-level computation against a height-5 key - and step 2i, refusing a leaf number outside the tree. Neither was a forgery, but both are attacker-chosen work the specification says to refuse up front. Both are now checked.\u003c/li\u003e\n\u003cli\u003eThe LMS and HSS key parameter classes now apply at construction the checks their decoders apply, so a key built directly cannot be one the decoder would refuse: LMSPrivateKeyParameters accepted an identifier of any length where the decoder reads exactly 16 bytes, and left q, maxQ and the seed length unchecked, while HSSPrivateKeyParameters checked neither its level count nor that it had a component key and chaining signature per level. The decoders now report a bad version or seed length as IOException rather than IllegalStateException.\u003c/li\u003e\n\u003cli\u003eIn the LMS JCE layer, LMSKeyGenParameterSpec.fromNames knew all twenty LMS parameter-set names but only four of the sixteen LM-OTS ones, so none of the SP 800-208 n24 or SHAKE sets could be named; all sixteen are now present. initialize(int, SecureRandom) now reports InvalidParameterException as the JCA specifies, and BCLMSPrivateKey.getIndex takes the exhaustion check and the index read under one monitor.\u003c/li\u003e\n\u003cli\u003eKeyPairGenerator.initialize(int, SecureRandom) is documented to raise InvalidParameterException when the key size is not one the generator supports, and thirty of them raised a bare IllegalArgumentException instead. Every generator in BCPQC, and the ML-DSA, ML-KEM, SLH-DSA, Classic McEliece, FrodoKEM, NTRU and composite ones in the BC provider, now raise the documented type - which extends IllegalArgumentException, so existing catches still match. The two RSA generators translate the lightweight refusal through a new SecurityExceptions.invalidParameterException factory.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/bcgit/bc-java/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.commonmark:commonmark` from 0.28.0 to 0.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/commonmark/commonmark-java/releases\"\u003eorg.commonmark:commonmark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ecommonmark-java 0.30.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew option \u003ccode\u003elineSeparator\u003c/code\u003e for \u003ccode\u003eMarkdownRenderer.Builder\u003c/code\u003e to change the default line\nseparator from \u003ccode\u003e\\n\u003c/code\u003e (e.g. to \u003ccode\u003e\\r\\n\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Support extracting the raw YAML content so that you can\ndo the YAML parsing using a library (instead of the limited built-in parsing) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTables extension: Limit max number of parsed table cells by default (1 million cells),\nsee option \u003ccode\u003emaxCells\u003c/code\u003e in \u003ccode\u003eTablesExtension.Builder\u003c/code\u003e. Parsing will throw an error if the\nlimit would be exceeded, to protect against malicious input.\u003c/li\u003e\n\u003cli\u003eThe default for \u003ccode\u003emaxOpenBlockParsers\u003c/code\u003e for \u003ccode\u003eParser.Builder\u003c/code\u003e is now 100; configure the\noption to remove the limit.\u003c/li\u003e\n\u003cli\u003eLimit how deeply inline nodes may nest by default (100), see option \u003ccode\u003emaxInlineNesting\u003c/code\u003e in\n\u003ccode\u003eParser.Builder\u003c/code\u003e; configure the option to remove the limit. This covers emphasis-like\ndelimiters (e.g. \u003ccode\u003e*\u003c/code\u003e or the ins extension's \u003ccode\u003e+\u003c/code\u003e) as well as images, which can otherwise\nnest arbitrarily deep for a small amount of input. Anything over the limit is treated as\nplain text instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix quadratic runtime on various pathological inputs (where inline syntax to start a\nnode is used repeatedly but never finished):\n\u003cul\u003e\n\u003cli\u003eInline HTML like \u003ccode\u003e\u0026quot;x \u0026lt;!--\u0026quot;.repeat(100_000)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/447\"\u003e#447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAutolink starts like \u003ccode\u003e\u0026quot;\u0026lt;\u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eEmphasis like \u003ccode\u003e\u0026quot;a**b\u0026quot; + \u0026quot;c* \u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBackticks runs of different lengths\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow errors when parsing pathological inputs with repeated syntax:\n\u003cul\u003e\n\u003cli\u003eHTML block attributes\u003c/li\u003e\n\u003cli\u003eAutolink email addresses\u003c/li\u003e\n\u003cli\u003eDeeply nested emphasis\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow error when rendering/visiting deeply nested inline nodes, by capping nesting\ndepth during parsing (see \u003ccode\u003emaxInlineNesting\u003c/code\u003e above). This can happen with emphasis, e.g.\n\u003ccode\u003e\u0026quot;*\u0026quot;.repeat(n) + \u0026quot;x\u0026quot; + \u0026quot;*\u0026quot;.repeat(n)\u003c/code\u003e or \u003ccode\u003e\u0026quot;*a \u0026quot;.repeat(n) + \u0026quot; b*\u0026quot;.repeat(n)\u003c/code\u003e, as well as with\nimages, e.g. \u003ccode\u003e\u0026quot;![\u0026quot;.repeat(https://github.com/commonmark/commonmark-java/blob/HEAD/n) + \u0026quot;x\u0026quot; + \u0026quot;](u)\u0026quot;.repeat(n)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Fix inefficient string concatenation for literal-block values (\u003ccode\u003e|\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ecommonmark-java 0.29.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport rendering GFM task list items to Markdown (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/433\"\u003e#433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport rendering YAML front matter to Markdown (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/434\"\u003e#434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAlerts\n\u003cul\u003e\n\u003cli\u003eAllow customizing HTML attributes for alert title \u003ccode\u003e\u0026lt;p\u0026gt;\u003c/code\u003e tag via \u003ccode\u003eAttributeProvider\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/427\"\u003e#427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow authors to provide custom\ntitles per alert. See the\n\u003ca href=\"https://github.com/commonmark/commonmark-java/blob/HEAD/commonmark-ext-gfm-alerts/README.md#custom-alert-titles\"\u003ecustom titles section of the alerts README\u003c/a\u003e\nfor more information. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow alerts to be nested within\nother blocks (including other alerts). See\n\u003ca href=\"https://github.com/commonmark/commonmark-java/blob/HEAD/commonmark-ext-gfm-alerts/README.md#nesting-alerts\"\u003ethis section of the alerts README\u003c/a\u003e\nfor more information. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow the set of alert types\n(including standard GFM types) to be completely overwritten. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/435\"\u003e#435\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md\"\u003eorg.commonmark:commonmark's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.30.0] - 2026-08-06\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew option \u003ccode\u003elineSeparator\u003c/code\u003e for \u003ccode\u003eMarkdownRenderer.Builder\u003c/code\u003e to change the default line\nseparator from \u003ccode\u003e\\n\u003c/code\u003e (e.g. to \u003ccode\u003e\\r\\n\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Support extracting the raw YAML content so that you can\ndo the YAML parsing using a library (instead of the limited built-in parsing) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTables extension: Limit max number of parsed table cells by default (1 million cells),\nsee option \u003ccode\u003emaxCells\u003c/code\u003e in \u003ccode\u003eTablesExtension.Builder\u003c/code\u003e. Parsing will throw an error if the\nlimit would be exceeded, to protect against malicious input.\u003c/li\u003e\n\u003cli\u003eThe default for \u003ccode\u003emaxOpenBlockParsers\u003c/code\u003e for \u003ccode\u003eParser.Builder\u003c/code\u003e is now 100; configure the\noption to remove the limit.\u003c/li\u003e\n\u003cli\u003eLimit how deeply inline nodes may nest by default (100), see option \u003ccode\u003emaxInlineNesting\u003c/code\u003e in\n\u003ccode\u003eParser.Builder\u003c/code\u003e; configure the option to remove the limit. This covers emphasis-like\ndelimiters (e.g. \u003ccode\u003e*\u003c/code\u003e or the ins extension's \u003ccode\u003e+\u003c/code\u003e) as well as images, which can otherwise\nnest arbitrarily deep for a small amount of input. Anything over the limit is treated as\nplain text instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix quadratic runtime on various pathological inputs (where inline syntax to start a\nnode is used repeatedly but never finished):\n\u003cul\u003e\n\u003cli\u003eInline HTML like \u003ccode\u003e\u0026quot;x \u0026lt;!--\u0026quot;.repeat(100_000)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/447\"\u003e#447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAutolink starts like \u003ccode\u003e\u0026quot;\u0026lt;\u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eEmphasis like \u003ccode\u003e\u0026quot;a**b\u0026quot; + \u0026quot;c* \u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBackticks runs of different lengths\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow errors when parsing pathological inputs with repeated syntax:\n\u003cul\u003e\n\u003cli\u003eHTML block attributes\u003c/li\u003e\n\u003cli\u003eAutolink email addresses\u003c/li\u003e\n\u003cli\u003eDeeply nested emphasis\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow error when rendering/visiting deeply nested inline nodes, by capping nesting\ndepth during parsing (see \u003ccode\u003emaxInlineNesting\u003c/code\u003e above). This can happen with emphasis, e.g.\n\u003ccode\u003e\u0026quot;*\u0026quot;.repeat(n) + \u0026quot;x\u0026quot; + \u0026quot;*\u0026quot;.repeat(n)\u003c/code\u003e or \u003ccode\u003e\u0026quot;*a \u0026quot;.repeat(n) + \u0026quot; b*\u0026quot;.repeat(n)\u003c/code\u003e, as well as with\nimages, e.g. \u003ccode\u003e\u0026quot;![\u0026quot;.repeat(https://github.com/commonmark/commonmark-java/blob/main/n) + \u0026quot;x\u0026quot; + \u0026quot;](u)\u0026quot;.repeat(n)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Fix inefficient string concatenation for literal-block values (\u003ccode\u003e|\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.29.0] - 2026-06-20\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport rendering GFM task list items to Markdown (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/433\"\u003e#433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport rendering YAML front matter to Markdown (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/434\"\u003e#434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAlerts\n\u003cul\u003e\n\u003cli\u003eAllow customizing HTML attributes for alert title \u003ccode\u003e\u0026lt;p\u0026gt;\u003c/code\u003e tag via \u003ccode\u003eAttributeProvider\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/427\"\u003e#427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow authors to provide custom\ntitles per alert. See the\n\u003ca href=\"https://github.com/commonmark/commonmark-java/blob/main/commonmark-ext-gfm-alerts/README.md#custom-alert-titles\"\u003ecustom titles section of the alerts README\u003c/a\u003e\nfor more information. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow alerts to be nested within\nother blocks (including other alerts). See\n\u003ca href=\"https://github.com/commonmark/commonmark-java/blob/main/commonmark-ext-gfm-alerts/README.md#nesting-alerts\"\u003ethis section of the alerts README\u003c/a\u003e\nfor more information. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow the set of alert types\n(including standard GFM types) to be completely overwritten. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/435\"\u003e#435\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/64037cf982f2b12a4a2fa1c5a75c6d3f4ab979bf\"\u003e\u003ccode\u003e64037cf\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release commonmark-parent-0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/bd3e06669fd168874721267e7e5f5bd1d3433466\"\u003e\u003ccode\u003ebd3e066\u003c/code\u003e\u003c/a\u003e Fix Javadoc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/4aaf754cc90b4a5a62647a8fc621185c934f8bbf\"\u003e\u003ccode\u003e4aaf754\u003c/code\u003e\u003c/a\u003e mvn versions:set -DnewVersion=0.30.0-SNAPSHOT\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/42b4fb7adfe288ef13e9e27ab20aff7e91b0ab9d\"\u003e\u003ccode\u003e42b4fb7\u003c/code\u003e\u003c/a\u003e Prepare CHANGELOG for version 0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/b76e09d7a8362abb5f04e1d6b91dbd6da279a6fc\"\u003e\u003ccode\u003eb76e09d\u003c/code\u003e\u003c/a\u003e Limit how deep inline nodes may nest by default (100)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/49f65cb5cbec93cff713179990307145198e7061\"\u003e\u003ccode\u003e49f65cb\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing deeply nested emphasis\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/610f84b83e68c381e8f784ae4d044c80e1948b67\"\u003e\u003ccode\u003e610f84b\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing pathological autolink email addresses\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/9f1d73897a56cbd74c39347af351a473e70297e1\"\u003e\u003ccode\u003e9f1d738\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing pathological HTML block attributes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/e13297e849995fdd582a85841067bff1d9c35ee5\"\u003e\u003ccode\u003ee13297e\u003c/code\u003e\u003c/a\u003e Fix quadratic runtime when parsing pathological backticks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/89d1bd3fa1524e8217ed61db5e8116c82434470f\"\u003e\u003ccode\u003e89d1bd3\u003c/code\u003e\u003c/a\u003e Fix quadratic runtime when parsing with lots of \u003ccode\u003e\u0026lt;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.28.0...commonmark-parent-0.30.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.commonmark:commonmark-ext-autolink` from 0.28.0 to 0.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/commonmark/commonmark-java/releases\"\u003eorg.commonmark:commonmark-ext-autolink's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ecommonmark-java 0.30.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew option \u003ccode\u003elineSeparator\u003c/code\u003e for \u003ccode\u003eMarkdownRenderer.Builder\u003c/code\u003e to change the default line\nseparator from \u003ccode\u003e\\n\u003c/code\u003e (e.g. to \u003ccode\u003e\\r\\n\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Support extracting the raw YAML content so that you can\ndo the YAML parsing using a library (instead of the limited built-in parsing) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTables extension: Limit max number of parsed table cells by default (1 million cells),\nsee option \u003ccode\u003emaxCells\u003c/code\u003e in \u003ccode\u003eTablesExtension.Builder\u003c/code\u003e. Parsing will throw an error if the\nlimit would be exceeded, to protect against malicious input.\u003c/li\u003e\n\u003cli\u003eThe default for \u003ccode\u003emaxOpenBlockParsers\u003c/code\u003e for \u003ccode\u003eParser.Builder\u003c/code\u003e is now 100; configure the\noption to remove the limit.\u003c/li\u003e\n\u003cli\u003eLimit how deeply inline nodes may nest by default (100), see option \u003ccode\u003emaxInlineNesting\u003c/code\u003e in\n\u003ccode\u003eParser.Builder\u003c/code\u003e; configure the option to remove the limit. This covers emphasis-like\ndelimiters (e.g. \u003ccode\u003e*\u003c/code\u003e or the ins extension's \u003ccode\u003e+\u003c/code\u003e) as well as images, which can otherwise\nnest arbitrarily deep for a small amount of input. Anything over the limit is treated as\nplain text instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix quadratic runtime on various pathological inputs (where inline syntax to start a\nnode is used repeatedly but never finished):\n\u003cul\u003e\n\u003cli\u003eInline HTML like \u003ccode\u003e\u0026quot;x \u0026lt;!--\u0026quot;.repeat(100_000)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/447\"\u003e#447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAutolink starts like \u003ccode\u003e\u0026quot;\u0026lt;\u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eEmphasis like \u003ccode\u003e\u0026quot;a**b\u0026quot; + \u0026quot;c* \u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBackticks runs of different lengths\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow errors when parsing pathological inputs with repeated syntax:\n\u003cul\u003e\n\u003cli\u003eHTML block attributes\u003c/li\u003e\n\u003cli\u003eAutolink email addresses\u003c/li\u003e\n\u003cli\u003eDeeply nested emphasis\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow error when rendering/visiting deeply nested inline nodes, by capping nesting\ndepth during parsing (see \u003ccode\u003emaxInlineNesting\u003c/code\u003e above). This can happen with emphasis, e.g.\n\u003ccode\u003e\u0026quot;*\u0026quot;.repeat(n) + \u0026quot;x\u0026quot; + \u0026quot;*\u0026quot;.repeat(n)\u003c/code\u003e or \u003ccode\u003e\u0026quot;*a \u0026quot;.repeat(n) + \u0026quot; b*\u0026quot;.repeat(n)\u003c/code\u003e, as well as with\nimages, e.g. \u003ccode\u003e\u0026quot;![\u0026quot;.repeat(https://github.com/commonmark/commonmark-java/blob/HEAD/n) + \u0026quot;x\u0026quot; + \u0026quot;](u)\u0026quot;.repeat(n)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Fix inefficient string concatenation for literal-block values (\u003ccode\u003e|\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ecommonmark-java 0.29.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport rendering GFM task list items to Markdown (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/433\"\u003e#433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport rendering YAML front matter to Markdown (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/434\"\u003e#434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAlerts\n\u003cul\u003e\n\u003cli\u003eAllow customizing HTML attributes for alert title \u003ccode\u003e\u0026lt;p\u0026gt;\u003c/code\u003e tag via \u003ccode\u003eAttributeProvider\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/427\"\u003e#427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow authors to provide custom\ntitles per alert. See the\n\u003ca href=\"https://github.com/commonmark/commonmark-java/blob/HEAD/commonmark-ext-gfm-alerts/README.md#custom-alert-titles\"\u003ecustom titles section of the alerts README\u003c/a\u003e\nfor more information. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow alerts to be nested within\nother blocks (including other alerts). See\n\u003ca href=\"https://github.com/commonmark/commonmark-java/blob/HEAD/commonmark-ext-gfm-alerts/README.md#nesting-alerts\"\u003ethis section of the alerts README\u003c/a\u003e\nfor more information. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow the set of alert types\n(including standard GFM types) to be completely overwritten. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/435\"\u003e#435\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md\"\u003eorg.commonmark:commonmark-ext-autolink's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.30.0] - 2026-08-06\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew option \u003ccode\u003elineSeparator\u003c/code\u003e for \u003ccode\u003eMarkdownRenderer.Builder\u003c/code\u003e to change the default line\nseparator from \u003ccode\u003e\\n\u003c/code\u003e (e.g. to \u003ccode\u003e\\r\\n\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Support extracting the raw YAML content so that you can\ndo the YAML parsing using a library (instead of the limited built-in parsing) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTables extension: Limit max number of parsed table cells by default (1 million cells),\nsee option \u003ccode\u003emaxCells\u003c/code\u003e in \u003ccode\u003eTablesExtension.Builder\u003c/code\u003e. Parsing will throw an error if the\nlimit would be exceeded, to protect against malicious input.\u003c/li\u003e\n\u003cli\u003eThe default for \u003ccode\u003emaxOpenBlockParsers\u003c/code\u003e for \u003ccode\u003eParser.Builder\u003c/code\u003e is now 100; configure the\noption to remove the limit.\u003c/li\u003e\n\u003cli\u003eLimit how deeply inline nodes may nest by default (100), see option \u003ccode\u003emaxInlineNesting\u003c/code\u003e in\n\u003ccode\u003eParser.Builder\u003c/code\u003e; configure the option to remove the limit. This covers emphasis-like\ndelimiters (e.g. \u003ccode\u003e*\u003c/code\u003e or the ins extension's \u003ccode\u003e+\u003c/code\u003e) as well as images, which can otherwise\nnest arbitrarily deep for a small amount of input. Anything over the limit is treated as\nplain text instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix quadratic runtime on various pathological inputs (where inline syntax to start a\nnode is used repeatedly but never finished):\n\u003cul\u003e\n\u003cli\u003eInline HTML like \u003ccode\u003e\u0026quot;x \u0026lt;!--\u0026quot;.repeat(100_000)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/447\"\u003e#447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAutolink starts like \u003ccode\u003e\u0026quot;\u0026lt;\u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eEmphasis like \u003ccode\u003e\u0026quot;a**b\u0026quot; + \u0026quot;c* \u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBackticks runs of different lengths\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow errors when parsing pathological inputs with repeated syntax:\n\u003cul\u003e\n\u003cli\u003eHTML block attributes\u003c/li\u003e\n\u003cli\u003eAutolink email addresses\u003c/li\u003e\n\u003cli\u003eDeeply nested emphasis\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow error when rendering/visiting deeply nested inline nodes, by capping nesting\ndepth during parsing (see \u003ccode\u003emaxInlineNesting\u003c/code\u003e above). This can happen with emphasis, e.g.\n\u003ccode\u003e\u0026quot;*\u0026quot;.repeat(n) + \u0026quot;x\u0026quot; + \u0026quot;*\u0026quot;.repeat(n)\u003c/code\u003e or \u003ccode\u003e\u0026quot;*a \u0026quot;.repeat(n) + \u0026quot; b*\u0026quot;.repeat(n)\u003c/code\u003e, as well as with\nimages, e.g. \u003ccode\u003e\u0026quot;![\u0026quot;.repeat(https://github.com/commonmark/commonmark-java/blob/main/n) + \u0026quot;x\u0026quot; + \u0026quot;](u)\u0026quot;.repeat(n)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Fix inefficient string concatenation for literal-block values (\u003ccode\u003e|\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.29.0] - 2026-06-20\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport rendering GFM task list items to Markdown (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/433\"\u003e#433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport rendering YAML front matter to Markdown (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/434\"\u003e#434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAlerts\n\u003cul\u003e\n\u003cli\u003eAllow customizing HTML attributes for alert title \u003ccode\u003e\u0026lt;p\u0026gt;\u003c/code\u003e tag via \u003ccode\u003eAttributeProvider\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/427\"\u003e#427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow authors to provide custom\ntitles per alert. See the\n\u003ca href=\"https://github.com/commonmark/commonmark-java/blob/main/commonmark-ext-gfm-alerts/README.md#custom-alert-titles\"\u003ecustom titles section of the alerts README\u003c/a\u003e\nfor more information. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow alerts to be nested within\nother blocks (including other alerts). See\n\u003ca href=\"https://github.com/commonmark/commonmark-java/blob/main/commonmark-ext-gfm-alerts/README.md#nesting-alerts\"\u003ethis section of the alerts README\u003c/a\u003e\nfor more information. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow the set of alert types\n(including standard GFM types) to be completely overwritten. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/435\"\u003e#435\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/64037cf982f2b12a4a2fa1c5a75c6d3f4ab979bf\"\u003e\u003ccode\u003e64037cf\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release commonmark-parent-0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/bd3e06669fd168874721267e7e5f5bd1d3433466\"\u003e\u003ccode\u003ebd3e066\u003c/code\u003e\u003c/a\u003e Fix Javadoc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/4aaf754cc90b4a5a62647a8fc621185c934f8bbf\"\u003e\u003ccode\u003e4aaf754\u003c/code\u003e\u003c/a\u003e mvn versions:set -DnewVersion=0.30.0-SNAPSHOT\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/42b4fb7adfe288ef13e9e27ab20aff7e91b0ab9d\"\u003e\u003ccode\u003e42b4fb7\u003c/code\u003e\u003c/a\u003e Prepare CHANGELOG for version 0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/b76e09d7a8362abb5f04e1d6b91dbd6da279a6fc\"\u003e\u003ccode\u003eb76e09d\u003c/code\u003e\u003c/a\u003e Limit how deep inline nodes may nest by default (100)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/49f65cb5cbec93cff713179990307145198e7061\"\u003e\u003ccode\u003e49f65cb\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing deeply nested emphasis\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/610f84b83e68c381e8f784ae4d044c80e1948b67\"\u003e\u003ccode\u003e610f84b\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing pathological autolink email addresses\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/9f1d73897a56cbd74c39347af351a473e70297e1\"\u003e\u003ccode\u003e9f1d738\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing pathological HTML block attributes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/e13297e849995fdd582a85841067bff1d9c35ee5\"\u003e\u003ccode\u003ee13297e\u003c/code\u003e\u003c/a\u003e Fix quadratic runtime when parsing pathological backticks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/89d1bd3fa1524e8217ed61db5e8116c82434470f\"\u003e\u003ccode\u003e89d1bd3\u003c/code\u003e\u003c/a\u003e Fix quadratic runtime when parsing with lots of \u003ccode\u003e\u0026lt;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.28.0...commonmark-parent-0.30.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.commonmark:commonmark-ext-gfm-strikethrough` from 0.28.0 to 0.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/commonmark/commonmark-java/releases\"\u003eorg.commonmark:commonmark-ext-gfm-strikethrough's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ecommonmark-java 0.30.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew option \u003ccode\u003elineSeparator\u003c/code\u003e for \u003ccode\u003eMarkdownRenderer.Builder\u003c/code\u003e to change the default line\nseparator from \u003ccode\u003e\\n\u003c/code\u003e (e.g. to \u003ccode\u003e\\r\\n\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Support extracting the raw YAML content so that you can\ndo the YAML parsing using a library (instead of the limited built-in parsing) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTables extension: Limit max number of parsed table cells by default (1 million cells),\nsee option \u003ccode\u003emaxCells\u003c/code\u003e in \u003ccode\u003eTablesExtension.Builder\u003c/code\u003e. Parsing will throw an error if the\nlimit would be exceeded, to protect against malicious input.\u003c/li\u003e\n\u003cli\u003eThe default for \u003ccode\u003emaxOpenBlockParsers\u003c/code\u003e for \u003ccode\u003eParser.Builder\u003c/code\u003e is now 100; configure the\noption to remove the limit.\u003c/li\u003e\n\u003cli\u003eLimit how deeply inline nodes may nest by default (100), see option \u003ccode\u003emaxInlineNesting\u003c/code\u003e in\n\u003ccode\u003eParser.Builder\u003c/code\u003e; configure the option to remove the limit. This covers emphasis-like\ndelimiters (e.g. \u003ccode\u003e*\u003c/code\u003e or the ins extension's \u003ccode\u003e+\u003c/code\u003e) as well as images, which can otherwise\nnest arbitrarily deep for a small amount of input. Anything over the limit is treated as\nplain text instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix quadratic runtime on various pathological inputs (where inline syntax to start a\nnode is used repeatedly but never finished):\n\u003cul\u003e\n\u003cli\u003eInline HTML like \u003ccode\u003e\u0026quot;x \u0026lt;!--\u0026quot;.repeat(100_000)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/447\"\u003e#447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAutolink starts like \u003ccode\u003e\u0026quot;\u0026lt;\u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eEmphasis like \u003ccode\u003e\u0026quot;a**b\u0026quot; + \u0026quot;c* \u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBackticks runs of different lengths\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow errors when parsing pathological inputs with repeated syntax:\n\u003cul\u003e\n\u003cli\u003eHTML block attributes\u003c/li\u003e\n\u003cli\u003eAutolink email addresses\u003c/li\u003e\n\u003cli\u003eDeeply nested emphasis\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow error when rendering/visiting deeply nested inline nodes, by capping nesting\ndepth during parsing (see \u003ccode\u003emaxInlineNesting\u003c/code\u003e above). This can happen with emphasis, e.g.\n\u003ccode\u003e\u0026quot;*\u0026quot;.repeat(n) + \u0026quot;x\u0026quot; + \u0026quot;*\u0026quot;.repeat(n)\u003c/code\u003e or \u003ccode\u003e\u0026quot;*a \u0026quot;.repeat(n) + \u0026quot; b*\u0026quot;.repeat(n)\u003c/code\u003e, as well as with\nimages, e.g. \u003ccode\u003e\u0026quot;![\u0026quot;.repeat(https://github.com/commonmark/commonmark-java/blob/HEAD/n) + \u0026quot;x\u0026quot; + \u0026quot;](u)\u0026quot;.repeat(n)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Fix inefficient string concatenation for literal-block values (\u003ccode\u003e|\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ecommonmark-java 0.29.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport rendering GFM task list items to Markdown (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/433\"\u003e#433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport rendering YAML front matter to Markdown (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/434\"\u003e#434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAlerts\n\u003cul\u003e\n\u003cli\u003eAllow customizing HTML attributes for alert title \u003ccode\u003e\u0026lt;p\u0026gt;\u003c/code\u003e tag via \u003ccode\u003eAttributeProvider\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/427\"\u003e#427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow authors to provide custom\ntitles per alert. See the\n\u003ca href=\"https://github.com/commonmark/commonmark-java/blob/HEAD/commonmark-ext-gfm-alerts/README.md#custom-alert-titles\"\u003ecustom titles section of the alerts README\u003c/a\u003e\nfor more information. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow alerts to be nested within\nother blocks (including other alerts). See\n\u003ca href=\"https://github.com/commonmark/commonmark-java/blob/HEAD/commonmark-ext-gfm-alerts/README.md#nesting-alerts\"\u003ethis section of the alerts README\u003c/a\u003e\nfor more information. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow the set of alert types\n(including standard GFM types) to be completely overwritten. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/435\"\u003e#435\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md\"\u003eorg.commonmark:commonmark-ext-gfm-strikethrough's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.30.0] - 2026-08-06\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew option \u003ccode\u003elineSeparator\u003c/code\u003e for \u003ccode\u003eMarkdownRenderer.Builder\u003c/code\u003e to change the default line\nseparator from \u003ccode\u003e\\n\u003c/code\u003e (e.g. to \u003ccode\u003e\\r\\n\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Support extracting the raw YAML content so that you can\ndo the YAML parsing using a library (instead of the limited built-in parsing) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTables extension: Limit max number of parsed table cells by default (1 million cells),\nsee option \u003ccode\u003emaxCells\u003c/code\u003e in \u003ccode\u003eTablesExtension.Builder\u003c/code\u003e. Parsing will throw an error if the\nlimit would be exceeded, to protect against malicious input.\u003c/li\u003e\n\u003cli\u003eThe default for \u003ccode\u003emaxOpenBlockParsers\u003c/code\u003e for \u003ccode\u003eParser.Builder\u003c/code\u003e is now 100; configure the\noption to remove the limit.\u003c/li\u003e\n\u003cli\u003eLimit how deeply inline nodes may nest by default (100), see option \u003ccode\u003emaxInlineNesting\u003c/code\u003e in\n\u003ccode\u003eParser.Builder\u003c/code\u003e; configure the option to remove the limit. This covers emphasis-like\ndelimiters (e.g. \u003ccode\u003e*\u003c/code\u003e or the ins extension's \u003ccode\u003e+\u003c/code\u003e) as well as images, which can otherwise\nnest arbitrarily deep for a small amount of input. Anything over the limit is treated as\nplain text instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix quadratic runtime on various pathological inputs (where inline syntax to start a\nnode is used repeatedly but never finished):\n\u003cul\u003e\n\u003cli\u003eInline HTML like \u003ccode\u003e\u0026quot;x \u0026lt;!--\u0026quot;.repeat(100_000)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/447\"\u003e#447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAutolink starts like \u003ccode\u003e\u0026quot;\u0026lt;\u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eEmphasis like \u003ccode\u003e\u0026quot;a**b\u0026quot; + \u0026quot;c* \u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBackticks runs of different lengths\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow errors when parsing pathological inputs with repeated syntax:\n\u003cul\u003e\n\u003cli\u003eHTML block attributes\u003c/li\u003e\n\u003cli\u003eAutolink email addresses\u003c/li\u003e\n\u003cli\u003eDeeply nested emphasis\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow error when rendering/visiting deeply nested inline nodes, by capping nesting\ndepth during parsing (see \u003ccode\u003emaxInlineNesting\u003c/code\u003e above). This can happen with emphasis, e.g.\n\u003ccode\u003e\u0026quot;*\u0026quot;.repeat(n) + \u0026quot;x\u0026quot; + \u0026quot;*\u0026quot;.repeat(n)\u003c/code\u003e or \u003ccode\u003e\u0026quot;*a \u0026quot;.repeat(n) + \u0026quot; b*\u0026quot;.repeat(n)\u003c/code\u003e, as well as with\nimages, e.g. \u003ccode\u003e\u0026quot;![\u0026quot;.repeat(https://github.com/commonmark/commonmark-java/blob/main/n) + \u0026quot;x\u0026quot; + \u0026quot;](u)\u0026quot;.repeat(n)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Fix inefficient string concatenation for literal-block values (\u003ccode\u003e|\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.29.0] - 2026-06-20\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport rendering GFM task list items to Markdown (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/433\"\u003e#433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport rendering YAML front matter to Markdown (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/434\"\u003e#434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAlerts\n\u003cul\u003e\n\u003cli\u003eAllow customizing HTML attributes for alert title \u003ccode\u003e\u0026lt;p\u0026gt;\u003c/code\u003e tag via \u003ccode\u003eAttributeProvider\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/427\"\u003e#427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow authors to provide custom\ntitles per alert. See the\n\u003ca href=\"https://github.com/commonmark/commonmark-java/blob/main/commonmark-ext-gfm-alerts/README.md#custom-alert-titles\"\u003ecustom titles section of the alerts README\u003c/a\u003e\nfor more information. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow alerts to be nested within\nother blocks (including other alerts). See\n\u003ca href=\"https://github.com/commonmark/commonmark-java/blob/main/commonmark-ext-gfm-alerts/README.md#nesting-alerts\"\u003ethis section of the alerts README\u003c/a\u003e\nfor more information. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow the set of alert types\n(including standard GFM types) to be completely overwritten. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/435\"\u003e#435\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/64037cf982f2b12a4a2fa1c5a75c6d3f4ab979bf\"\u003e\u003ccode\u003e64037cf\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release commonmark-parent-0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/bd3e06669fd168874721267e7e5f5bd1d3433466\"\u003e\u003ccode\u003ebd3e066\u003c/code\u003e\u003c/a\u003e Fix Javadoc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/4aaf754cc90b4a5a62647a8fc621185c934f8bbf\"\u003e\u003ccode\u003e4aaf754\u003c/code\u003e\u003c/a\u003e mvn versions:set -DnewVersion=0.30.0-SNAPSHOT\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/42b4fb7adfe288ef13e9e27ab20aff7e91b0ab9d\"\u003e\u003ccode\u003e42b4fb7\u003c/code\u003e\u003c/a\u003e Prepare CHANGELOG for version 0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/b76e09d7a8362abb5f04e1d6b91dbd6da279a6fc\"\u003e\u003ccode\u003eb76e09d\u003c/code\u003e\u003c/a\u003e Limit how deep inline nodes may nest by default (100)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/49f65cb5cbec93cff713179990307145198e7061\"\u003e\u003ccode\u003e49f65cb\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing deeply nested emphasis\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/610f84b83e68c381e8f784ae4d044c80e1948b67\"\u003e\u003ccode\u003e610f84b\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing pathological autolink email addresses\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/9f1d73897a56cbd74c39347af351a473e70297e1\"\u003e\u003ccode\u003e9f1d738\u003c/code\u003e\u003c/a\u003e Fix StackOverflowError when parsing pathological HTML block attributes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/e13297e849995fdd582a85841067bff1d9c35ee5\"\u003e\u003ccode\u003ee13297e\u003c/code\u003e\u003c/a\u003e Fix quadratic runtime when parsing pathological backticks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/89d1bd3fa1524e8217ed61db5e8116c82434470f\"\u003e\u003ccode\u003e89d1bd3\u003c/code\u003e\u003c/a\u003e Fix quadratic runtime when parsing with lots of \u003ccode\u003e\u0026lt;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.28.0...commonmark-parent-0.30.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.commonmark:commonmark-ext-gfm-tables` from 0.28.0 to 0.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/commonmark/commonmark-java/releases\"\u003eorg.commonmark:commonmark-ext-gfm-tables's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ecommonmark-java 0.30.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew option \u003ccode\u003elineSeparator\u003c/code\u003e for \u003ccode\u003eMarkdownRenderer.Builder\u003c/code\u003e to change the default line\nseparator from \u003ccode\u003e\\n\u003c/code\u003e (e.g. to \u003ccode\u003e\\r\\n\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Support extracting the raw YAML content so that you can\ndo the YAML parsing using a library (instead of the limited built-in parsing) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTables extension: Limit max number of parsed table cells by default (1 million cells),\nsee option \u003ccode\u003emaxCells\u003c/code\u003e in \u003ccode\u003eTablesExtension.Builder\u003c/code\u003e. Parsing will throw an error if the\nlimit would be exceeded, to protect against malicious input.\u003c/li\u003e\n\u003cli\u003eThe default for \u003ccode\u003emaxOpenBlockParsers\u003c/code\u003e for \u003ccode\u003eParser.Builder\u003c/code\u003e is now 100; configure the\noption to remove the limit.\u003c/li\u003e\n\u003cli\u003eLimit how deeply inline nodes may nest by default (100), see option \u003ccode\u003emaxInlineNesting\u003c/code\u003e in\n\u003ccode\u003eParser.Builder\u003c/code\u003e; configure the option to remove the limit. This covers emphasis-like\ndelimiters (e.g. \u003ccode\u003e*\u003c/code\u003e or the ins extension's \u003ccode\u003e+\u003c/code\u003e) as well as images, which can otherwise\nnest arbitrarily deep for a small amount of input. Anything over the limit is treated as\nplain text instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix quadratic runtime on various pathological inputs (where inline syntax to start a\nnode is used repeatedly but never finished):\n\u003cul\u003e\n\u003cli\u003eInline HTML like \u003ccode\u003e\u0026quot;x \u0026lt;!--\u0026quot;.repeat(100_000)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/447\"\u003e#447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAutolink starts like \u003ccode\u003e\u0026quot;\u0026lt;\u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eEmphasis like \u003ccode\u003e\u0026quot;a**b\u0026quot; + \u0026quot;c* \u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBackticks runs of different lengths\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow errors when parsing pathological inputs with repeated syntax:\n\u003cul\u003e\n\u003cli\u003eHTML block attributes\u003c/li\u003e\n\u003cli\u003eAutolink email addresses\u003c/li\u003e\n\u003cli\u003eDeeply nested emphasis\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow error when rendering/visiting deeply nested inline nodes, by capping nesting\ndepth during parsing (see \u003ccode\u003emaxInlineNesting\u003c/code\u003e above). This can happen with emphasis, e.g.\n\u003ccode\u003e\u0026quot;*\u0026quot;.repeat(n) + \u0026quot;x\u0026quot; + \u0026quot;*\u0026quot;.repeat(n)\u003c/code\u003e or \u003ccode\u003e\u0026quot;*a \u0026quot;.repeat(n) + \u0026quot; b*\u0026quot;.repeat(n)\u003c/code\u003e, as well as with\nimages, e.g. \u003ccode\u003e\u0026quot;![\u0026quot;.repeat(https://github.com/commonmark/commonmark-java/blob/HEAD/n) + \u0026quot;x\u0026quot; + \u0026quot;](u)\u0026quot;.repeat(n)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Fix inefficient string concatenation for literal-block values (\u003ccode\u003e|\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ecommonmark-java 0.29.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport rendering GFM task list items to Markdown (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/433\"\u003e#433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport rendering YAML front matter to Markdown (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/434\"\u003e#434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAlerts\n\u003cul\u003e\n\u003cli\u003eAllow customizing HTML attributes for alert title \u003ccode\u003e\u0026lt;p\u0026gt;\u003c/code\u003e tag via \u003ccode\u003eAttributeProvider\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/427\"\u003e#427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow authors to provide custom\ntitles per alert. See the\n\u003ca href=\"https://github.com/commonmark/commonmark-java/blob/HEAD/commonmark-ext-gfm-alerts/README.md#custom-alert-titles\"\u003ecustom titles section of the alerts README\u003c/a\u003e\nfor more information. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow alerts to be nested within\nother blocks (including other alerts). See\n\u003ca href=\"https://github.com/commonmark/commonmark-java/blob/HEAD/commonmark-ext-gfm-alerts/README.md#nesting-alerts\"\u003ethis section of the alerts README\u003c/a\u003e\nfor more information. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow the set of alert types\n(including standard GFM types) to be completely overwritten. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/435\"\u003e#435\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md\"\u003eorg.commonmark:commonmark-ext-gfm-tables's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.30.0] - 2026-08-06\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew option \u003ccode\u003elineSeparator\u003c/code\u003e for \u003ccode\u003eMarkdownRenderer.Builder\u003c/code\u003e to change the default line\nseparator from \u003ccode\u003e\\n\u003c/code\u003e (e.g. to \u003ccode\u003e\\r\\n\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Support extracting the raw YAML content so that you can\ndo the YAML parsing using a library (instead of the limited built-in parsing) (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTables extension: Limit max number of parsed table cells by default (1 million cells),\nsee option \u003ccode\u003emaxCells\u003c/code\u003e in \u003ccode\u003eTablesExtension.Builder\u003c/code\u003e. Parsing will throw an error if the\nlimit would be exceeded, to protect against malicious input.\u003c/li\u003e\n\u003cli\u003eThe default for \u003ccode\u003emaxOpenBlockParsers\u003c/code\u003e for \u003ccode\u003eParser.Builder\u003c/code\u003e is now 100; configure the\noption to remove the limit.\u003c/li\u003e\n\u003cli\u003eLimit how deeply inline nodes may nest by default (100), see option \u003ccode\u003emaxInlineNesting\u003c/code\u003e in\n\u003ccode\u003eParser.Builder\u003c/code\u003e; configure the option to remove the limit. This covers emphasis-like\ndelimiters (e.g. \u003ccode\u003e*\u003c/code\u003e or the ins extension's \u003ccode\u003e+\u003c/code\u003e) as well as images, which can otherwise\nnest arbitrarily deep for a small amount of input. Anything over the limit is treated as\nplain text instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix quadratic runtime on various pathological inputs (where inline syntax to start a\nnode is used repeatedly but never finished):\n\u003cul\u003e\n\u003cli\u003eInline HTML like \u003ccode\u003e\u0026quot;x \u0026lt;!--\u0026quot;.repeat(100_000)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/447\"\u003e#447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAutolink starts like \u003ccode\u003e\u0026quot;\u0026lt;\u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eEmphasis like \u003ccode\u003e\u0026quot;a**b\u0026quot; + \u0026quot;c* \u0026quot;.repeat(100_000)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBackticks runs of different lengths\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow errors when parsing pathological inputs with repeated syntax:\n\u003cul\u003e\n\u003cli\u003eHTML block attributes\u003c/li\u003e\n\u003cli\u003eAutolink email addresses\u003c/li\u003e\n\u003cli\u003eDeeply nested emphasis\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix stack overflow error when rendering/visiting deeply nested inline nodes, by capping nesting\ndepth during parsing (see \u003ccode\u003emaxInlineNesting\u003c/code\u003e above). This can happen with emphasis, e.g.\n\u003ccode\u003e\u0026quot;*\u0026quot;.repeat(n) + \u0026quot;x\u0026quot; + \u0026quot;*\u0026quot;.repeat(n)\u003c/code\u003e or \u003ccode\u003e\u0026quot;*a \u0026quot;.repeat(n) + \u0026quot; b*\u0026quot;.repeat(n)\u003c/code\u003e, as well as with\nimages, e.g. \u003ccode\u003e\u0026quot;![\u0026quot;.repeat(https://github.com/commonmark/commonmark-java/blob/main/n) + \u0026quot;x\u0026quot; + \u0026quot;](u)\u0026quot;.repeat(n)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eYAML front matter extension: Fix inefficient string concatenation for literal-block values (\u003ccode\u003e|\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.29.0] - 2026-06-20\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport rendering GFM task list items to Markdown (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/433\"\u003e#433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport rendering YAML front matter to Markdown (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/434\"\u003e#434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAlerts\n\u003cul\u003e\n\u003cli\u003eAllow customizing HTML attributes for alert title \u003ccode\u003e\u0026lt;p\u0026gt;\u003c/code\u003e tag via \u003ccode\u003eAttributeProvider\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/427\"\u003e#427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow authors to provide custom\ntitles per alert. See the\n\u003ca href=\"https://github.com/commonmark/commonmark-java/blob/main/commonmark-ext-gfm-alerts/README.md#custom-alert-titles\"\u003ecustom titles section of the alerts README\u003c/a\u003e\nfor more information. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow alerts to be nested within\nother blocks (including other alerts). See\n\u003ca href=\"https://github.com/commonmark/commonmark-java/blob/main/commonmark-ext-gfm-alerts/README.md#nesting-alerts\"\u003ethis section of the alerts README\u003c/a\u003e\nfor more information. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew configuration for \u003ccode\u003eAlertsExtension\u003c/code\u003e to allow the set of alert types\n(including standard GFM types) to be completely overwritten. (\u003ca href=\"https://redirect.github.com/commonmark/commonmark-java/issues/435\"\u003e#435\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commonmark/commonmark-java/commit/64037cf982f2b12a4a2fa1c5a75c6d3f4ab979bf\"\u003e\u003ccode\u003e64037cf\u003c/code\u003e\u003c/a...\n\n_Description has been truncated_","html_url":"https://github.com/amstaff666/openclaw-30754/pull/34","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/amstaff666%2Fopenclaw-30754/issues/34","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/34/packages"}},{"old_version":"2.2.20","new_version":"2.4.20","update_type":"minor","path":null,"pr_created_at":"2026-09-14T10:55:36.000Z","version_change":"2.2.20 → 2.4.20","issue":{"uuid":"5448407118","node_id":"PR_kwDOUYUgzM8AAAABDb7GBQ","number":3,"state":"closed","title":"Bump the gradle-minor-and-patch group across 1 directory with 10 updates","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-14T15:46:15.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-14T10:55:36.000Z","updated_at":"2026-09-14T15:46:16.000Z","time_to_close":17439,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"gradle-minor-and-patch","update_count":10,"packages":[{"name":"androidx.core:core-ktx","old_version":"1.17.0","new_version":"1.19.0"},{"name":"androidx.compose:compose-bom","old_version":"2026.05.01","new_version":"2026.09.00"},{"name":"androidx.navigation:navigation-compose","old_version":"2.9.8","new_version":"2.10.1"},{"name":"org.jetbrains.kotlinx:kotlinx-serialization-json","old_version":"1.9.0","new_version":"1.11.0","repository_url":"https://github.com/Kotlin/kotlinx.serialization"},{"name":"org.jetbrains.kotlinx:kotlinx-coroutines-android","old_version":"1.10.2","new_version":"1.11.0","repository_url":"https://github.com/Kotlin/kotlinx.coroutines"},{"name":"org.jetbrains.kotlinx:kotlinx-coroutines-test","old_version":"1.10.2","new_version":"1.11.0","repository_url":"https://github.com/Kotlin/kotlinx.coroutines"},{"name":"org.jetbrains.kotlin.android","old_version":"2.2.20","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.compose","old_version":"2.2.20","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.2.20","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"com.google.devtools.ksp","old_version":"2.2.20-2.0.4","new_version":"2.3.12","repository_url":"https://github.com/google/ksp"}],"path":null,"ecosystem":"maven"},"body":"Bumps the gradle-minor-and-patch group with 10 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| androidx.core:core-ktx | `1.17.0` | `1.19.0` |\n| androidx.compose:compose-bom | `2026.05.01` | `2026.09.00` |\n| androidx.navigation:navigation-compose | `2.9.8` | `2.10.1` |\n| [org.jetbrains.kotlinx:kotlinx-serialization-json](https://github.com/Kotlin/kotlinx.serialization) | `1.9.0` | `1.11.0` |\n| [org.jetbrains.kotlinx:kotlinx-coroutines-android](https://github.com/Kotlin/kotlinx.coroutines) | `1.10.2` | `1.11.0` |\n| [org.jetbrains.kotlinx:kotlinx-coroutines-test](https://github.com/Kotlin/kotlinx.coroutines) | `1.10.2` | `1.11.0` |\n| [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) | `2.2.20` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.compose](https://github.com/JetBrains/kotlin) | `2.2.20` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.serialization](https://github.com/JetBrains/kotlin) | `2.2.20` | `2.4.20` |\n| [com.google.devtools.ksp](https://github.com/google/ksp) | `2.2.20-2.0.4` | `2.3.12` |\n\n\nUpdates `androidx.core:core-ktx` from 1.17.0 to 1.19.0\n\nUpdates `androidx.compose:compose-bom` from 2026.05.01 to 2026.09.00\n\nUpdates `androidx.navigation:navigation-compose` from 2.9.8 to 2.10.1\n\nUpdates `org.jetbrains.kotlinx:kotlinx-serialization-json` from 1.9.0 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/releases\"\u003eorg.jetbrains.kotlinx:kotlinx-serialization-json's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.11.0\u003c/h2\u003e\n\u003cp\u003eThis release is based on Kotlin 2.3.20 and provides a new Json exceptions API and some bugfixes and improvements.\u003c/p\u003e\n\u003ch2\u003eExpose Json exceptions structure\u003c/h2\u003e\n\u003cp\u003eTo make working with exceptions easier and providing proper error codes in e.g., REST APIs,\nclasses \u003ccode\u003eJsonException\u003c/code\u003e, \u003ccode\u003eJsonDecodingException\u003c/code\u003e, and \u003ccode\u003eJsonEncodingException\u003c/code\u003e are now public.\nThey have relevant public properties, such as \u003ccode\u003eshortMessage\u003c/code\u003e, \u003ccode\u003epath\u003c/code\u003e, \u003ccode\u003eoffset\u003c/code\u003e, and others.\nThis API is currently experimental, and we're going to improve it further in the subsequent releases.\nSee the linked issues for the details: \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/1930\"\u003e#1930\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/1877\"\u003e#1877\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eAbility to hide user input from exception messages for security/privacy reasons.\u003c/h2\u003e\n\u003cp\u003eHistorically, exception messages in kotlinx.serialization often included the input Json itself for debuggability reason.\nSuch behavior may pose additional challenges for logging, analytics, and other systems, since\na system is not always allowed to store user data due to privacy/security reasons, which imposes additional sanitation logic.\nTo address this issue, a new property \u003ccode\u003eexceptionsWithDebugInfo\u003c/code\u003e is added to \u003ccode\u003eJsonConfiguration\u003c/code\u003e.\nDisable it to hide user input from exception messages.\nIMPORTANT: This behavior will be enabled by default when this property becomes stable.\nSee \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/2590\"\u003e#2590\u003c/a\u003e for more details.\u003c/p\u003e\n\u003ch2\u003eBugfixes and improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCBOR: Relax value range check when decoding numbers (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3167\"\u003e#3167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse a specialized writeDecimalLong method for IO stream integrations in Json (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3152\"\u003e#3152\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.10.0\u003c/h2\u003e\n\u003cp\u003eThis release is based on Kotlin 2.3.0 and contains all of the changes from 1.10.0-RC.\nThe only additional change is a fix for ProtoBuf packing of Kotlin unsigned types (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3079\"\u003e#3079\u003c/a\u003e).\nBig thanks to \u003ca href=\"https://github.com/KosmX\"\u003eKosmX\u003c/a\u003e for contributing the fix.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eFor your convenience, the changelog for 1.10.0-RC is duplicated below:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eStabilization of APIs\u003c/h2\u003e\n\u003cp\u003ekotlinx-serialization 1.10 and subsequent releases will be focused on stabilization of existing APIs.\nThe following APIs and configuration options are no longer experimental because they're widely used without any known major issues:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eJson\u003c/code\u003e configuration options: \u003ccode\u003edecodeEnumsCaseInsensitive\u003c/code\u003e, \u003ccode\u003eallowTrailingComma\u003c/code\u003e, \u003ccode\u003eallowComments\u003c/code\u003e, and \u003ccode\u003eprettyPrintIndent\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3100\"\u003e#3100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@EncodeDefault\u003c/code\u003e annotation and its modes. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3106\"\u003e#3106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eJsonUnquotedLiteral\u003c/code\u003e constructor function (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/2900\"\u003e#2900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eJsonPrimitive\u003c/code\u003e constructor function overloads that accept unsigned types. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3117\"\u003e#3117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eJSON DSL functions on \u003ccode\u003eJsonElement\u003c/code\u003e with \u003ccode\u003eNothing?\u003c/code\u003e overloads. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3117\"\u003e#3117\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eReadiness for return value checker\u003c/h2\u003e\n\u003cp\u003eKotlin 2.3.0 \u003ca href=\"https://kotlinlang.org/docs/whatsnew23.html#unused-return-value-checker\"\u003eintroduces a new feature\u003c/a\u003e aimed at helping you to catch bugs related to the accidentally ignored return value of the function.\nkotlinx-serialization 1.10.0-RC code is fully marked for this feature, meaning that you can get warnings for unused function calls like \u003ccode\u003eJson.encodeToString(...)\u003c/code\u003e. To get the warnings, the feature has to be enabled in your project as \u003ca href=\"https://kotlinlang.org/docs/unused-return-value-checker.html#configure-the-unused-return-value-checker\"\u003edescribed here\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003ePolymorphism improvements\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/blob/master/CHANGELOG.md\"\u003eorg.jetbrains.kotlinx:kotlinx-serialization-json's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.11.0 / 2026-04-10\u003c/h1\u003e\n\u003cp\u003eThis release is based on Kotlin 2.3.20 and provides new Json exceptions API and some bugfixes and improvements.\u003c/p\u003e\n\u003ch2\u003eExpose Json exceptions structure\u003c/h2\u003e\n\u003cp\u003eTo make working with exceptions easier and providing proper error codes in e.g., REST APIs,\nclasses \u003ccode\u003eJsonException\u003c/code\u003e, \u003ccode\u003eJsonDecodingException\u003c/code\u003e, and \u003ccode\u003eJsonEncodingException\u003c/code\u003e are now public.\nThey have relevant public properties, such as \u003ccode\u003eshortMessage\u003c/code\u003e, \u003ccode\u003epath\u003c/code\u003e, \u003ccode\u003eoffset\u003c/code\u003e, and others.\nThis API is currently experimental, and we're going to improve it further in the subsequent releases.\nSee the linked issues for the details: \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/1930\"\u003e#1930\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/1877\"\u003e#1877\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eAbility to hide user input from exception messages for security/privacy reasons.\u003c/h2\u003e\n\u003cp\u003eHistorically, exception messages in kotlinx.serialization often included the input Json itself for debuggability reason.\nSuch behavior may pose additional challenges for logging, analytics, and other systems, since\na system is not always allowed to store user data due to privacy/security reasons, which imposes additional sanitation logic.\nTo address this issue, a new property \u003ccode\u003eexceptionsWithDebugInfo\u003c/code\u003e is added to \u003ccode\u003eJsonConfiguration\u003c/code\u003e.\nDisable it to hide user input from exception messages.\nIMPORTANT: This behavior will be enabled by default when this property becomes stable.\nSee \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/2590\"\u003e#2590\u003c/a\u003e for more details.\u003c/p\u003e\n\u003ch2\u003eBugfixes and improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCBOR: Relax value range check when decoding numbers (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3167\"\u003e#3167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse a specialized writeDecimalLong method for IO stream integrations in Json (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3152\"\u003e#3152\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.10.0 / 2026-01-21\u003c/h1\u003e\n\u003cp\u003eThis release is based on Kotlin 2.3.0 and contains all of the changes from 1.10.0-RC.\nThe only additional change is a fix for ProtoBuf packing of Kotlin unsigned types (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3079\"\u003e#3079\u003c/a\u003e).\nBig thanks to \u003ca href=\"https://github.com/KosmX\"\u003eKosmX\u003c/a\u003e for contributing the fix.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eFor your convenience, the changelog for 1.10.0-RC is duplicated below:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eStabilization of APIs\u003c/h2\u003e\n\u003cp\u003ekotlinx-serialization 1.10 and subsequent releases will be focused on stabilization of existing APIs.\nThe following APIs and configuration options are no longer experimental because they're widely used without any known major issues:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eJson\u003c/code\u003e configuration options: \u003ccode\u003edecodeEnumsCaseInsensitive\u003c/code\u003e, \u003ccode\u003eallowTrailingComma\u003c/code\u003e, \u003ccode\u003eallowComments\u003c/code\u003e, and \u003ccode\u003eprettyPrintIndent\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3100\"\u003e#3100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@EncodeDefault\u003c/code\u003e annotation and its modes. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3106\"\u003e#3106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eJsonUnquotedLiteral\u003c/code\u003e constructor function (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/2900\"\u003e#2900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eJsonPrimitive\u003c/code\u003e constructor function overloads that accept unsigned types. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3117\"\u003e#3117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eJSON DSL functions on \u003ccode\u003eJsonElement\u003c/code\u003e with \u003ccode\u003eNothing?\u003c/code\u003e overloads. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3117\"\u003e#3117\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eReadiness for return value checker\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/6956af2e6073347c7832c3c5b374fa3b5a345956\"\u003e\u003ccode\u003e6956af2\u003c/code\u003e\u003c/a\u003e Prepare 1.11 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/390d84c68a19cbf7fa453dec22a333648bde49b4\"\u003e\u003ccode\u003e390d84c\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into dev\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/431fe2dc0a144300b33038820d24fc30302c8abc\"\u003e\u003ccode\u003e431fe2d\u003c/code\u003e\u003c/a\u003e Use local repo for publishing (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3171\"\u003e#3171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/05c12b60a6717b99053fb82e1f94d2f859727374\"\u003e\u003ccode\u003e05c12b6\u003c/code\u003e\u003c/a\u003e Add usage attribute to \u0026quot;testRepositories\u0026quot; configuration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/a4e1f082ef2e72caa139b474c05657de6015da20\"\u003e\u003ccode\u003ea4e1f08\u003c/code\u003e\u003c/a\u003e Bump Kover version to 0.9.8 release (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3174\"\u003e#3174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/304e858ccc7066854637d86ab80056f5f2bcc094\"\u003e\u003ccode\u003e304e858\u003c/code\u003e\u003c/a\u003e Expose Json exceptions structure (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3145\"\u003e#3145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/4a0338ef5093d765138151bc30282e909ca459e4\"\u003e\u003ccode\u003e4a0338e\u003c/code\u003e\u003c/a\u003e Included G Play SDK verification file for core-jvm (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3169\"\u003e#3169\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/421f64c74f0ea6d4a3cdc8dd483505366e3f6c8f\"\u003e\u003ccode\u003e421f64c\u003c/code\u003e\u003c/a\u003e CBOR: Relax value range check when decoding numbers (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3167\"\u003e#3167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/85a4f126ec491c77e2b3686cc22c1bae27a20783\"\u003e\u003ccode\u003e85a4f12\u003c/code\u003e\u003c/a\u003e KT-84955: mark apple x64 tagets as deprecated error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/bd38b0e49bce38d1a55576e89856bc63990167ed\"\u003e\u003ccode\u003ebd38b0e\u003c/code\u003e\u003c/a\u003e Remove dead code\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/compare/v1.9.0...v1.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlinx:kotlinx-coroutines-android` from 1.10.2 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/releases\"\u003eorg.jetbrains.kotlinx:kotlinx-coroutines-android's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.11.0\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003ePromise\u003c/code\u003e-related functions from JS and Wasm/JS to the new \u003ccode\u003eweb\u003c/code\u003e target. On Wasm/JS, this is a breaking change. Before the change, \u003ccode\u003ePromise\u003c/code\u003e on Wasm/JS could work with arbitrary Kotlin types, but now, only \u003ccode\u003eJsAny\u003c/code\u003e subtypes are accepted (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4563\"\u003e#4563\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eChanged handling of coroutine exceptions that can't be propagated on JS and Wasm/JS. B\nefore, exceptions were logged, but now, they are reported to the JS runtime (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4451\"\u003e#4451\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4631\"\u003e#4631\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeprecated using \u003ccode\u003eCoroutineDispatcher\u003c/code\u003e as the coroutine context key; now, \u003ccode\u003eContinuationInterceptor\u003c/code\u003e has to be used instead (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4333\"\u003e#4333\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdvanced the deprecation levels on \u003ccode\u003ekotlinx-coroutines-test\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4604\"\u003e#4604\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded lint functions that mark passing a \u003ccode\u003eJob\u003c/code\u003e to coroutine builders as deprecated (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4435\"\u003e#4435\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003erunBlocking\u003c/code\u003e in code shared between JVM and Native (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4368\"\u003e#4368\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003esuspendCancellableCoroutine\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4574\"\u003e#4574\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eflowOn\u003c/code\u003e incorrectly handling \u003ccode\u003eThreadContextElement\u003c/code\u003e updates (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4403\"\u003e#4403\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed exceptions in user-supplied \u003ccode\u003eThread.UncaughtExceptionHandler\u003c/code\u003e instances causing the internal coroutines machinery to fail (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4516\"\u003e#4516\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCoroutineDispatcher.asScheduler\u003c/code\u003e in the RxJava integration not cancelling outstanding work when a \u003ccode\u003eWorker\u003c/code\u003e gets cancelled, which led to memory leaks in some scenarios (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4615\"\u003e#4615\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSharedFlow\u003c/code\u003e entering an invalid state when a subscriber and an emitter are cancelled simultaneously (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4583\"\u003e#4583\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed an R8 optimization leading to \u003ccode\u003eshareIn\u003c/code\u003e/\u003ccode\u003estateIn\u003c/code\u003e coroutines getting garbage-collected (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4646\"\u003e#4646\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/solevic\"\u003e\u003ccode\u003e@​solevic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSmall additions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eCompletableDeferred.asDeferred\u003c/code\u003e for obtaining a read-only \u003ccode\u003eDeferred\u003c/code\u003e view (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4408\"\u003e#4408\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSharedFlow.asFlow\u003c/code\u003e for obtaining a \u003ccode\u003eFlow\u003c/code\u003e view with hidden hot flow semantics (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4530\"\u003e#4530\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/g000sha256\"\u003e\u003ccode\u003e@​g000sha256\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow.collectLatest\u003c/code\u003e overload returning \u003ccode\u003eNothing\u003c/code\u003e to assist with finding unreachable code (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4454\"\u003e#4454\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eReceiveChannel.consumeTo\u003c/code\u003e for consuming a \u003ccode\u003eReceiveChannel\u003c/code\u003e into a \u003ccode\u003eMutableCollection\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4520\"\u003e#4520\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e overload returning a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;\u003c/code\u003e, similar to \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e returning \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4275\"\u003e#4275\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/xit0c\"\u003e\u003ccode\u003e@​xit0c\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded terminal \u003ccode\u003eFlow\u003c/code\u003e operators for collecting a \u003ccode\u003eFlow\u003c/code\u003e to a \u003ccode\u003eMap\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/1541\"\u003e#1541\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog relative to version 1.11.0\u003c/h3\u003e\n\u003cp\u003eNo changes, only the version is increased.\u003c/p\u003e\n\u003ch2\u003e1.11.0-rc02\u003c/h2\u003e\n\u003cp\u003eRestored binary compatibility with 1.10.2 and older versions on Wasm/JS for usages of \u003ccode\u003ePromise\u003c/code\u003e-related functions (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003e1.11.0-rc01\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/blob/master/CHANGES.md\"\u003eorg.jetbrains.kotlinx:kotlinx-coroutines-android's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.11.0\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003ePromise\u003c/code\u003e-related functions from JS and Wasm/JS to the new \u003ccode\u003eweb\u003c/code\u003e target. On Wasm/JS, this is a breaking change. Before the change, \u003ccode\u003ePromise\u003c/code\u003e on Wasm/JS could work with arbitrary Kotlin types, but now, only \u003ccode\u003eJsAny\u003c/code\u003e subtypes are accepted (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4563\"\u003e#4563\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eChanged handling of coroutine exceptions that can't be propagated on JS and Wasm/JS. Before, exceptions were logged, but now, they are reported to the JS runtime (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4451\"\u003e#4451\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4631\"\u003e#4631\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeprecated using \u003ccode\u003eCoroutineDispatcher\u003c/code\u003e as the coroutine context key; now, \u003ccode\u003eContinuationInterceptor\u003c/code\u003e has to be used instead (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4333\"\u003e#4333\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdvanced the deprecation levels on \u003ccode\u003ekotlinx-coroutines-test\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4604\"\u003e#4604\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded lint functions that mark passing a \u003ccode\u003eJob\u003c/code\u003e to coroutine builders as deprecated (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4435\"\u003e#4435\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003erunBlocking\u003c/code\u003e in code shared between JVM and Native (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4368\"\u003e#4368\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003esuspendCancellableCoroutine\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4574\"\u003e#4574\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eflowOn\u003c/code\u003e incorrectly handling \u003ccode\u003eThreadContextElement\u003c/code\u003e updates (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4403\"\u003e#4403\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed exceptions in user-supplied \u003ccode\u003eThread.UncaughtExceptionHandler\u003c/code\u003e instances causing the internal coroutines machinery to fail (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4516\"\u003e#4516\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCoroutineDispatcher.asScheduler\u003c/code\u003e in the RxJava integration not cancelling outstanding work when a \u003ccode\u003eWorker\u003c/code\u003e gets cancelled, which led to memory leaks in some scenarios (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4615\"\u003e#4615\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSharedFlow\u003c/code\u003e entering an invalid state when a subscriber and an emitter are cancelled simultaneously (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4583\"\u003e#4583\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed an R8 optimization leading to \u003ccode\u003eshareIn\u003c/code\u003e/\u003ccode\u003estateIn\u003c/code\u003e coroutines getting garbage-collected (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4646\"\u003e#4646\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/solevic\"\u003e\u003ccode\u003e@​solevic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSmall additions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eCompletableDeferred.asDeferred\u003c/code\u003e for obtaining a read-only \u003ccode\u003eDeferred\u003c/code\u003e view (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4408\"\u003e#4408\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSharedFlow.asFlow\u003c/code\u003e for obtaining a \u003ccode\u003eFlow\u003c/code\u003e view with hidden hot flow semantics (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4530\"\u003e#4530\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/g000sha256\"\u003e\u003ccode\u003e@​g000sha256\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow.collectLatest\u003c/code\u003e overload returning \u003ccode\u003eNothing\u003c/code\u003e to assist with finding unreachable code (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4454\"\u003e#4454\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eReceiveChannel.consumeTo\u003c/code\u003e for consuming a \u003ccode\u003eReceiveChannel\u003c/code\u003e into a \u003ccode\u003eMutableCollection\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4520\"\u003e#4520\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e overload returning a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;\u003c/code\u003e, similar to \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e returning \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4275\"\u003e#4275\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/xit0c\"\u003e\u003ccode\u003e@​xit0c\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded terminal \u003ccode\u003eFlow\u003c/code\u003e operators for collecting a \u003ccode\u003eFlow\u003c/code\u003e to a \u003ccode\u003eMap\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/1541\"\u003e#1541\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog relative to version 1.11.0\u003c/h3\u003e\n\u003cp\u003eNo changes, only the version is increased.\u003c/p\u003e\n\u003ch2\u003eVersion 1.11.0-rc02\u003c/h2\u003e\n\u003cp\u003eRestored binary compatibility with 1.10.2 and older versions on Wasm/JS for usages of \u003ccode\u003ePromise\u003c/code\u003e-related functions (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eVersion 1.11.0-rc01\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/8564f65764d3d05893cec026c6e94250e2b23874\"\u003e\u003ccode\u003e8564f65\u003c/code\u003e\u003c/a\u003e Version 1.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/a4c6af96c15fe30f5d4e8b810ea74f8babd5805c\"\u003e\u003ccode\u003ea4c6af9\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/ef917b460aa741691fbf991ee1b813049cae18c9\"\u003e\u003ccode\u003eef917b4\u003c/code\u003e\u003c/a\u003e KT-84955: mark apple x64 tagets as deprecated error (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/5ebc421e341bf2ddce734d369da87df1985e80bd\"\u003e\u003ccode\u003e5ebc421\u003c/code\u003e\u003c/a\u003e Update the release procedure description (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4670\"\u003e#4670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/95f46a073bc4a1230352108cea1835fd22219a80\"\u003e\u003ccode\u003e95f46a0\u003c/code\u003e\u003c/a\u003e Remove old maven repository settings (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4672\"\u003e#4672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/b4f4f0aa6acb692f3fbcadd70e4958e3e9d370fc\"\u003e\u003ccode\u003eb4f4f0a\u003c/code\u003e\u003c/a\u003e Fix package name of \u003ccode\u003eToMapCollectionSamplesTest\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4674\"\u003e#4674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/86738dca7dc9ac82249abc8206263fa0065ee631\"\u003e\u003ccode\u003e86738dc\u003c/code\u003e\u003c/a\u003e Added templates to the issue creation wizard (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4654\"\u003e#4654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/330fcc221fb583f0b119f34191f735a73b827378\"\u003e\u003ccode\u003e330fcc2\u003c/code\u003e\u003c/a\u003e Version 1.11.0-rc02\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/e31cef6e9f2d26794be7d75ecbf3033b6432d582\"\u003e\u003ccode\u003ee31cef6\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/dc6e9f61eaf3a67f4bf474a7987aedc3f16cef37\"\u003e\u003ccode\u003edc6e9f6\u003c/code\u003e\u003c/a\u003e Restore Promise-related functions on Wasm/JS as HIDDEN (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/compare/1.10.2...1.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlinx:kotlinx-coroutines-test` from 1.10.2 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/releases\"\u003eorg.jetbrains.kotlinx:kotlinx-coroutines-test's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.11.0\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003ePromise\u003c/code\u003e-related functions from JS and Wasm/JS to the new \u003ccode\u003eweb\u003c/code\u003e target. On Wasm/JS, this is a breaking change. Before the change, \u003ccode\u003ePromise\u003c/code\u003e on Wasm/JS could work with arbitrary Kotlin types, but now, only \u003ccode\u003eJsAny\u003c/code\u003e subtypes are accepted (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4563\"\u003e#4563\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eChanged handling of coroutine exceptions that can't be propagated on JS and Wasm/JS. B\nefore, exceptions were logged, but now, they are reported to the JS runtime (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4451\"\u003e#4451\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4631\"\u003e#4631\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeprecated using \u003ccode\u003eCoroutineDispatcher\u003c/code\u003e as the coroutine context key; now, \u003ccode\u003eContinuationInterceptor\u003c/code\u003e has to be used instead (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4333\"\u003e#4333\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdvanced the deprecation levels on \u003ccode\u003ekotlinx-coroutines-test\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4604\"\u003e#4604\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded lint functions that mark passing a \u003ccode\u003eJob\u003c/code\u003e to coroutine builders as deprecated (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4435\"\u003e#4435\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003erunBlocking\u003c/code\u003e in code shared between JVM and Native (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4368\"\u003e#4368\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003esuspendCancellableCoroutine\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4574\"\u003e#4574\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eflowOn\u003c/code\u003e incorrectly handling \u003ccode\u003eThreadContextElement\u003c/code\u003e updates (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4403\"\u003e#4403\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed exceptions in user-supplied \u003ccode\u003eThread.UncaughtExceptionHandler\u003c/code\u003e instances causing the internal coroutines machinery to fail (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4516\"\u003e#4516\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCoroutineDispatcher.asScheduler\u003c/code\u003e in the RxJava integration not cancelling outstanding work when a \u003ccode\u003eWorker\u003c/code\u003e gets cancelled, which led to memory leaks in some scenarios (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4615\"\u003e#4615\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSharedFlow\u003c/code\u003e entering an invalid state when a subscriber and an emitter are cancelled simultaneously (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4583\"\u003e#4583\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed an R8 optimization leading to \u003ccode\u003eshareIn\u003c/code\u003e/\u003ccode\u003estateIn\u003c/code\u003e coroutines getting garbage-collected (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4646\"\u003e#4646\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/solevic\"\u003e\u003ccode\u003e@​solevic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSmall additions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eCompletableDeferred.asDeferred\u003c/code\u003e for obtaining a read-only \u003ccode\u003eDeferred\u003c/code\u003e view (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4408\"\u003e#4408\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSharedFlow.asFlow\u003c/code\u003e for obtaining a \u003ccode\u003eFlow\u003c/code\u003e view with hidden hot flow semantics (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4530\"\u003e#4530\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/g000sha256\"\u003e\u003ccode\u003e@​g000sha256\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow.collectLatest\u003c/code\u003e overload returning \u003ccode\u003eNothing\u003c/code\u003e to assist with finding unreachable code (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4454\"\u003e#4454\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eReceiveChannel.consumeTo\u003c/code\u003e for consuming a \u003ccode\u003eReceiveChannel\u003c/code\u003e into a \u003ccode\u003eMutableCollection\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4520\"\u003e#4520\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e overload returning a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;\u003c/code\u003e, similar to \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e returning \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4275\"\u003e#4275\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/xit0c\"\u003e\u003ccode\u003e@​xit0c\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded terminal \u003ccode\u003eFlow\u003c/code\u003e operators for collecting a \u003ccode\u003eFlow\u003c/code\u003e to a \u003ccode\u003eMap\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/1541\"\u003e#1541\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog relative to version 1.11.0\u003c/h3\u003e\n\u003cp\u003eNo changes, only the version is increased.\u003c/p\u003e\n\u003ch2\u003e1.11.0-rc02\u003c/h2\u003e\n\u003cp\u003eRestored binary compatibility with 1.10.2 and older versions on Wasm/JS for usages of \u003ccode\u003ePromise\u003c/code\u003e-related functions (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003e1.11.0-rc01\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/blob/master/CHANGES.md\"\u003eorg.jetbrains.kotlinx:kotlinx-coroutines-test's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.11.0\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003ePromise\u003c/code\u003e-related functions from JS and Wasm/JS to the new \u003ccode\u003eweb\u003c/code\u003e target. On Wasm/JS, this is a breaking change. Before the change, \u003ccode\u003ePromise\u003c/code\u003e on Wasm/JS could work with arbitrary Kotlin types, but now, only \u003ccode\u003eJsAny\u003c/code\u003e subtypes are accepted (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4563\"\u003e#4563\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eChanged handling of coroutine exceptions that can't be propagated on JS and Wasm/JS. Before, exceptions were logged, but now, they are reported to the JS runtime (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4451\"\u003e#4451\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4631\"\u003e#4631\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeprecated using \u003ccode\u003eCoroutineDispatcher\u003c/code\u003e as the coroutine context key; now, \u003ccode\u003eContinuationInterceptor\u003c/code\u003e has to be used instead (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4333\"\u003e#4333\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdvanced the deprecation levels on \u003ccode\u003ekotlinx-coroutines-test\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4604\"\u003e#4604\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded lint functions that mark passing a \u003ccode\u003eJob\u003c/code\u003e to coroutine builders as deprecated (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4435\"\u003e#4435\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003erunBlocking\u003c/code\u003e in code shared between JVM and Native (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4368\"\u003e#4368\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003esuspendCancellableCoroutine\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4574\"\u003e#4574\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eflowOn\u003c/code\u003e incorrectly handling \u003ccode\u003eThreadContextElement\u003c/code\u003e updates (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4403\"\u003e#4403\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed exceptions in user-supplied \u003ccode\u003eThread.UncaughtExceptionHandler\u003c/code\u003e instances causing the internal coroutines machinery to fail (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4516\"\u003e#4516\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCoroutineDispatcher.asScheduler\u003c/code\u003e in the RxJava integration not cancelling outstanding work when a \u003ccode\u003eWorker\u003c/code\u003e gets cancelled, which led to memory leaks in some scenarios (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4615\"\u003e#4615\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSharedFlow\u003c/code\u003e entering an invalid state when a subscriber and an emitter are cancelled simultaneously (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4583\"\u003e#4583\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed an R8 optimization leading to \u003ccode\u003eshareIn\u003c/code\u003e/\u003ccode\u003estateIn\u003c/code\u003e coroutines getting garbage-collected (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4646\"\u003e#4646\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/solevic\"\u003e\u003ccode\u003e@​solevic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSmall additions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eCompletableDeferred.asDeferred\u003c/code\u003e for obtaining a read-only \u003ccode\u003eDeferred\u003c/code\u003e view (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4408\"\u003e#4408\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSharedFlow.asFlow\u003c/code\u003e for obtaining a \u003ccode\u003eFlow\u003c/code\u003e view with hidden hot flow semantics (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4530\"\u003e#4530\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/g000sha256\"\u003e\u003ccode\u003e@​g000sha256\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow.collectLatest\u003c/code\u003e overload returning \u003ccode\u003eNothing\u003c/code\u003e to assist with finding unreachable code (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4454\"\u003e#4454\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eReceiveChannel.consumeTo\u003c/code\u003e for consuming a \u003ccode\u003eReceiveChannel\u003c/code\u003e into a \u003ccode\u003eMutableCollection\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4520\"\u003e#4520\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e overload returning a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;\u003c/code\u003e, similar to \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e returning \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4275\"\u003e#4275\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/xit0c\"\u003e\u003ccode\u003e@​xit0c\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded terminal \u003ccode\u003eFlow\u003c/code\u003e operators for collecting a \u003ccode\u003eFlow\u003c/code\u003e to a \u003ccode\u003eMap\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/1541\"\u003e#1541\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog relative to version 1.11.0\u003c/h3\u003e\n\u003cp\u003eNo changes, only the version is increased.\u003c/p\u003e\n\u003ch2\u003eVersion 1.11.0-rc02\u003c/h2\u003e\n\u003cp\u003eRestored binary compatibility with 1.10.2 and older versions on Wasm/JS for usages of \u003ccode\u003ePromise\u003c/code\u003e-related functions (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eVersion 1.11.0-rc01\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/8564f65764d3d05893cec026c6e94250e2b23874\"\u003e\u003ccode\u003e8564f65\u003c/code\u003e\u003c/a\u003e Version 1.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/a4c6af96c15fe30f5d4e8b810ea74f8babd5805c\"\u003e\u003ccode\u003ea4c6af9\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/ef917b460aa741691fbf991ee1b813049cae18c9\"\u003e\u003ccode\u003eef917b4\u003c/code\u003e\u003c/a\u003e KT-84955: mark apple x64 tagets as deprecated error (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/5ebc421e341bf2ddce734d369da87df1985e80bd\"\u003e\u003ccode\u003e5ebc421\u003c/code\u003e\u003c/a\u003e Update the release procedure description (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4670\"\u003e#4670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/95f46a073bc4a1230352108cea1835fd22219a80\"\u003e\u003ccode\u003e95f46a0\u003c/code\u003e\u003c/a\u003e Remove old maven repository settings (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4672\"\u003e#4672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/b4f4f0aa6acb692f3fbcadd70e4958e3e9d370fc\"\u003e\u003ccode\u003eb4f4f0a\u003c/code\u003e\u003c/a\u003e Fix package name of \u003ccode\u003eToMapCollectionSamplesTest\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4674\"\u003e#4674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/86738dca7dc9ac82249abc8206263fa0065ee631\"\u003e\u003ccode\u003e86738dc\u003c/code\u003e\u003c/a\u003e Added templates to the issue creation wizard (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4654\"\u003e#4654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/330fcc221fb583f0b119f34191f735a73b827378\"\u003e\u003ccode\u003e330fcc2\u003c/code\u003e\u003c/a\u003e Version 1.11.0-rc02\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/e31cef6e9f2d26794be7d75ecbf3033b6432d582\"\u003e\u003ccode\u003ee31cef6\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/dc6e9f61eaf3a67f4bf474a7987aedc3f16cef37\"\u003e\u003ccode\u003edc6e9f6\u003c/code\u003e\u003c/a\u003e Restore Promise-related functions on Wasm/JS as HIDDEN (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/compare/1.10.2...1.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlinx:kotlinx-coroutines-test` from 1.10.2 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/releases\"\u003eorg.jetbrains.kotlinx:kotlinx-coroutines-test's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.11.0\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003ePromise\u003c/code\u003e-related functions from JS and Wasm/JS to the new \u003ccode\u003eweb\u003c/code\u003e target. On Wasm/JS, this is a breaking change. Before the change, \u003ccode\u003ePromise\u003c/code\u003e on Wasm/JS could work with arbitrary Kotlin types, but now, only \u003ccode\u003eJsAny\u003c/code\u003e subtypes are accepted (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4563\"\u003e#4563\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eChanged handling of coroutine exceptions that can't be propagated on JS and Wasm/JS. B\nefore, exceptions were logged, but now, they are reported to the JS runtime (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4451\"\u003e#4451\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4631\"\u003e#4631\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeprecated using \u003ccode\u003eCoroutineDispatcher\u003c/code\u003e as the coroutine context key; now, \u003ccode\u003eContinuationInterceptor\u003c/code\u003e has to be used instead (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4333\"\u003e#4333\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdvanced the deprecation levels on \u003ccode\u003ekotlinx-coroutines-test\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4604\"\u003e#4604\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded lint functions that mark passing a \u003ccode\u003eJob\u003c/code\u003e to coroutine builders as deprecated (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4435\"\u003e#4435\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003erunBlocking\u003c/code\u003e in code shared between JVM and Native (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4368\"\u003e#4368\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003esuspendCancellableCoroutine\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4574\"\u003e#4574\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eflowOn\u003c/code\u003e incorrectly handling \u003ccode\u003eThreadContextElement\u003c/code\u003e updates (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4403\"\u003e#4403\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed exceptions in user-supplied \u003ccode\u003eThread.UncaughtExceptionHandler\u003c/code\u003e instances causing the internal coroutines machinery to fail (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4516\"\u003e#4516\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCoroutineDispatcher.asScheduler\u003c/code\u003e in the RxJava integration not cancelling outstanding work when a \u003ccode\u003eWorker\u003c/code\u003e gets cancelled, which led to memory leaks in some scenarios (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4615\"\u003e#4615\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSharedFlow\u003c/code\u003e entering an invalid state when a subscriber and an emitter are cancelled simultaneously (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4583\"\u003e#4583\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed an R8 optimization leading to \u003ccode\u003eshareIn\u003c/code\u003e/\u003ccode\u003estateIn\u003c/code\u003e coroutines getting garbage-collected (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4646\"\u003e#4646\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/solevic\"\u003e\u003ccode\u003e@​solevic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSmall additions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eCompletableDeferred.asDeferred\u003c/code\u003e for obtaining a read-only \u003ccode\u003eDeferred\u003c/code\u003e view (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4408\"\u003e#4408\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSharedFlow.asFlow\u003c/code\u003e for obtaining a \u003ccode\u003eFlow\u003c/code\u003e view with hidden hot flow semantics (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4530\"\u003e#4530\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/g000sha256\"\u003e\u003ccode\u003e@​g000sha256\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow.collectLatest\u003c/code\u003e overload returning \u003ccode\u003eNothing\u003c/code\u003e to assist with finding unreachable code (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4454\"\u003e#4454\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eReceiveChannel.consumeTo\u003c/code\u003e for consuming a \u003ccode\u003eReceiveChannel\u003c/code\u003e into a \u003ccode\u003eMutableCollection\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4520\"\u003e#4520\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e overload returning a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;\u003c/code\u003e, similar to \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e returning \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4275\"\u003e#4275\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/xit0c\"\u003e\u003ccode\u003e@​xit0c\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded terminal \u003ccode\u003eFlow\u003c/code\u003e operators for collecting a \u003ccode\u003eFlow\u003c/code\u003e to a \u003ccode\u003eMap\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/1541\"\u003e#1541\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog relative to version 1.11.0\u003c/h3\u003e\n\u003cp\u003eNo changes, only the version is increased.\u003c/p\u003e\n\u003ch2\u003e1.11.0-rc02\u003c/h2\u003e\n\u003cp\u003eRestored binary compatibility with 1.10.2 and older versions on Wasm/JS for usages of \u003ccode\u003ePromise\u003c/code\u003e-related functions (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003e1.11.0-rc01\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/blob/master/CHANGES.md\"\u003eorg.jetbrains.kotlinx:kotlinx-coroutines-test's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.11.0\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003ePromise\u003c/code\u003e-related functions from JS and Wasm/JS to the new \u003ccode\u003eweb\u003c/code\u003e target. On Wasm/JS, this is a breaking change. Before the change, \u003ccode\u003ePromise\u003c/code\u003e on Wasm/JS could work with arbitrary Kotlin types, but now, only \u003ccode\u003eJsAny\u003c/code\u003e subtypes are accepted (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4563\"\u003e#4563\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eChanged handling of coroutine exceptions that can't be propagated on JS and Wasm/JS. Before, exceptions were logged, but now, they are reported to the JS runtime (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4451\"\u003e#4451\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4631\"\u003e#4631\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeprecated using \u003ccode\u003eCoroutineDispatcher\u003c/code\u003e as the coroutine context key; now, \u003ccode\u003eContinuationInterceptor\u003c/code\u003e has to be used instead (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4333\"\u003e#4333\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdvanced the deprecation levels on \u003ccode\u003ekotlinx-coroutines-test\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4604\"\u003e#4604\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded lint functions that mark passing a \u003ccode\u003eJob\u003c/code\u003e to coroutine builders as deprecated (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4435\"\u003e#4435\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003erunBlocking\u003c/code\u003e in code shared between JVM and Native (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4368\"\u003e#4368\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003esuspendCancellableCoroutine\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4574\"\u003e#4574\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eflowOn\u003c/code\u003e incorrectly handling \u003ccode\u003eThreadContextElement\u003c/code\u003e updates (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4403\"\u003e#4403\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed exceptions in user-supplied \u003ccode\u003eThread.UncaughtExceptionHandler\u003c/code\u003e instances causing the internal coroutines machinery to fail (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4516\"\u003e#4516\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCoroutineDispatcher.asScheduler\u003c/code\u003e in the RxJava integration not cancelling outstanding work when a \u003ccode\u003eWorker\u003c/code\u003e gets cancelled, which led to memory leaks in some scenarios (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4615\"\u003e#4615\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSharedFlow\u003c/code\u003e entering an invalid state when a subscriber and an emitter are cancelled simultaneously (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4583\"\u003e#4583\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed an R8 optimization leading to \u003ccode\u003eshareIn\u003c/code\u003e/\u003ccode\u003estateIn\u003c/code\u003e coroutines getting garbage-collected (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4646\"\u003e#4646\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/solevic\"\u003e\u003ccode\u003e@​solevic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSmall additions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eCompletableDeferred.asDeferred\u003c/code\u003e for obtaining a read-only \u003ccode\u003eDeferred\u003c/code\u003e view (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4408\"\u003e#4408\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSharedFlow.asFlow\u003c/code\u003e for obtaining a \u003ccode\u003eFlow\u003c/code\u003e view with hidden hot flow semantics (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4530\"\u003e#4530\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/g000sha256\"\u003e\u003ccode\u003e@​g000sha256\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow.collectLatest\u003c/code\u003e overload returning \u003ccode\u003eNothing\u003c/code\u003e to assist with finding unreachable code (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4454\"\u003e#4454\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eReceiveChannel.consumeTo\u003c/code\u003e for consuming a \u003ccode\u003eReceiveChannel\u003c/code\u003e into a \u003ccode\u003eMutableCollection\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4520\"\u003e#4520\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e overload returning a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;\u003c/code\u003e, similar to \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e returning \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4275\"\u003e#4275\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/xit0c\"\u003e\u003ccode\u003e@​xit0c\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded terminal \u003ccode\u003eFlow\u003c/code\u003e operators for collecting a \u003ccode\u003eFlow\u003c/code\u003e to a \u003ccode\u003eMap\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/1541\"\u003e#1541\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog relative to version 1.11.0\u003c/h3\u003e\n\u003cp\u003eNo changes, only the version is increased.\u003c/p\u003e\n\u003ch2\u003eVersion 1.11.0-rc02\u003c/h2\u003e\n\u003cp\u003eRestored binary compatibility with 1.10.2 and older versions on Wasm/JS for usages of \u003ccode\u003ePromise\u003c/code\u003e-related functions (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eVersion 1.11.0-rc01\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/8564f65764d3d05893cec026c6e94250e2b23874\"\u003e\u003ccode\u003e8564f65\u003c/code\u003e\u003c/a\u003e Version 1.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/a4c6af96c15fe30f5d4e8b810ea74f8babd5805c\"\u003e\u003ccode\u003ea4c6af9\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/ef917b460aa741691fbf991ee1b813049cae18c9\"\u003e\u003ccode\u003eef917b4\u003c/code\u003e\u003c/a\u003e KT-84955: mark apple x64 tagets as deprecated error (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/5ebc421e341bf2ddce734d369da87df1985e80bd\"\u003e\u003ccode\u003e5ebc421\u003c/code\u003e\u003c/a\u003e Update the release procedure description (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4670\"\u003e#4670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/95f46a073bc4a1230352108cea1835fd22219a80\"\u003e\u003ccode\u003e95f46a0\u003c/code\u003e\u003c/a\u003e Remove old maven repository settings (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4672\"\u003e#4672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/b4f4f0aa6acb692f3fbcadd70e4958e3e9d370fc\"\u003e\u003ccode\u003eb4f4f0a\u003c/code\u003e\u003c/a\u003e Fix package name of \u003ccode\u003eToMapCollectionSamplesTest\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4674\"\u003e#4674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/86738dca7dc9ac82249abc8206263fa0065ee631\"\u003e\u003ccode\u003e86738dc\u003c/code\u003e\u003c/a\u003e Added templates to the issue creation wizard (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4654\"\u003e#4654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/330fcc221fb583f0b119f34191f735a73b827378\"\u003e\u003ccode\u003e330fcc2\u003c/code\u003e\u003c/a\u003e Version 1.11.0-rc02\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/e31cef6e9f2d26794be7d75ecbf3033b6432d582\"\u003e\u003ccode\u003ee31cef6\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/dc6e9f61eaf3a67f4bf474a7987aedc3f16cef37\"\u003e\u003ccode\u003edc6e9f6\u003c/code\u003e\u003c/a\u003e Restore Promise-related functions on Wasm/JS as HIDDEN (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/compare/1.10.2...1.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.android` from 2.2.20 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.android's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbr...\n\n_Description has been truncated_","html_url":"https://github.com/DontPanic345/TortoiseSpelling/pull/3","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/DontPanic345%2FTortoiseSpelling/issues/3","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3/packages"}},{"old_version":"2.3.20","new_version":"2.4.20","update_type":"minor","path":null,"pr_created_at":"2026-09-14T04:00:14.000Z","version_change":"2.3.20 → 2.4.20","issue":{"uuid":"5444998081","node_id":"PR_kwDORWjILs8AAAABDZL1yw","number":298,"state":"open","title":"build(deps): bump the android-deps group across 1 directory with 26 updates","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-14T04:00:14.000Z","updated_at":"2026-09-14T04:00:35.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"android-deps","update_count":26,"packages":[{"name":"com.android.application","old_version":"9.0.1","new_version":"9.4.0"},{"name":"com.android.test","old_version":"9.0.1","new_version":"9.4.0"},{"name":"org.jetbrains.kotlin.plugin.compose","old_version":"2.3.20","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.3.20","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"androidx.compose:compose-bom","old_version":"2026.03.01","new_version":"2026.09.00"},{"name":"androidx.core:core-ktx","old_version":"1.18.0","new_version":"1.19.0"},{"name":"androidx.navigation:navigation-compose","old_version":"2.9.7","new_version":"2.10.1"},{"name":"com.google.android.material:material","old_version":"1.13.0","new_version":"1.14.0","repository_url":"https://github.com/material-components/material-components-android"},{"name":"org.jetbrains.kotlinx:kotlinx-coroutines-android","old_version":"1.10.2","new_version":"1.11.0","repository_url":"https://github.com/Kotlin/kotlinx.coroutines"},{"name":"org.jetbrains.kotlinx:kotlinx-serialization-json","old_version":"1.10.0","new_version":"1.11.0","repository_url":"https://github.com/Kotlin/kotlinx.serialization"},{"name":"com.squareup.okhttp3:okhttp","old_version":"5.3.2","new_version":"5.5.0","repository_url":"https://github.com/lysine-dev/okhttp"},{"name":"org.bouncycastle:bcprov-jdk18on","old_version":"1.83","new_version":"1.86","repository_url":"https://github.com/bcgit/bc-java"},{"name":"org.commonmark:commonmark","old_version":"0.28.0","new_version":"0.30.0","repository_url":"https://github.com/commonmark/commonmark-java"},{"name":"dnsjava:dnsjava","old_version":"3.6.4","new_version":"3.6.5","repository_url":"https://github.com/dnsjava/dnsjava"},{"name":"io.kotest:kotest-runner-junit5-jvm","old_version":"6.1.11","new_version":"6.2.5","repository_url":"https://github.com/kotest/kotest"},{"name":"org.robolectric:robolectric","old_version":"4.16.1","new_version":"4.17","repository_url":"https://github.com/robolectric/robolectric"},{"name":"org.junit.vintage:junit-vintage-engine","old_version":"6.0.3","new_version":"6.1.3","repository_url":"https://github.com/junit-team/junit-framework"},{"name":"androidx.benchmark:benchmark-macro-junit4","old_version":"1.4.1","new_version":"1.5.0"},{"name":"gradle-wrapper","old_version":"9.4.1","new_version":"9.7.1","repository_url":"https://github.com/gradle/gradle"}],"path":null,"ecosystem":"maven"},"body":"Bumps the android-deps group with 19 updates in the /apps/android directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| com.android.application | `9.0.1` | `9.4.0` |\n| com.android.test | `9.0.1` | `9.4.0` |\n| [org.jetbrains.kotlin.plugin.compose](https://github.com/JetBrains/kotlin) | `2.3.20` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.serialization](https://github.com/JetBrains/kotlin) | `2.3.20` | `2.4.20` |\n| androidx.compose:compose-bom | `2026.03.01` | `2026.09.00` |\n| androidx.core:core-ktx | `1.18.0` | `1.19.0` |\n| androidx.navigation:navigation-compose | `2.9.7` | `2.10.1` |\n| [com.google.android.material:material](https://github.com/material-components/material-components-android) | `1.13.0` | `1.14.0` |\n| [org.jetbrains.kotlinx:kotlinx-coroutines-android](https://github.com/Kotlin/kotlinx.coroutines) | `1.10.2` | `1.11.0` |\n| [org.jetbrains.kotlinx:kotlinx-serialization-json](https://github.com/Kotlin/kotlinx.serialization) | `1.10.0` | `1.11.0` |\n| [com.squareup.okhttp3:okhttp](https://github.com/lysine-dev/okhttp) | `5.3.2` | `5.5.0` |\n| [org.bouncycastle:bcprov-jdk18on](https://github.com/bcgit/bc-java) | `1.83` | `1.86` |\n| [org.commonmark:commonmark](https://github.com/commonmark/commonmark-java) | `0.28.0` | `0.30.0` |\n| [dnsjava:dnsjava](https://github.com/dnsjava/dnsjava) | `3.6.4` | `3.6.5` |\n| [io.kotest:kotest-runner-junit5-jvm](https://github.com/kotest/kotest) | `6.1.11` | `6.2.5` |\n| [org.robolectric:robolectric](https://github.com/robolectric/robolectric) | `4.16.1` | `4.17` |\n| [org.junit.vintage:junit-vintage-engine](https://github.com/junit-team/junit-framework) | `6.0.3` | `6.1.3` |\n| androidx.benchmark:benchmark-macro-junit4 | `1.4.1` | `1.5.0` |\n| [gradle-wrapper](https://github.com/gradle/gradle) | `9.4.1` | `9.7.1` |\n\n\nUpdates `com.android.application` from 9.0.1 to 9.4.0\n\nUpdates `com.android.test` from 9.0.1 to 9.4.0\n\nUpdates `org.jetbrains.kotlin.plugin.compose` from 2.3.20 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.plugin.compose's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.plugin.compose's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.3.20...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.plugin.serialization` from 2.3.20 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.plugin.serialization's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.plugin.serialization's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.3.20...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `androidx.compose:compose-bom` from 2026.03.01 to 2026.09.00\n\nUpdates `androidx.core:core-ktx` from 1.18.0 to 1.19.0\n\nUpdates `androidx.navigation:navigation-compose` from 2.9.7 to 2.10.1\n\nUpdates `com.google.android.material:material` from 1.13.0 to 1.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/material-components/material-components-android/releases\"\u003ecom.google.android.material:material's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.14.0\u003c/h2\u003e\n\u003ch1\u003eNew in 1.14.0!\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eExpressive Themes (\u003ca href=\"https://github.com/material-components/material-components-android/blob/master/docs/getting-started.md#material3expressive-themes\"\u003edoc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpressive Lists (\u003ca href=\"https://github.com/material-components/material-components-android/blob/master/docs/components/List.md\"\u003edoc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpressive Button Styles (\u003ca href=\"https://github.com/material-components/material-components-android/blob/master/docs/components/CommonButton.md#m3-expressive\"\u003edoc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpressive Icon Button Styles (\u003ca href=\"https://github.com/material-components/material-components-android/blob/master/docs/components/IconButton.md#m3-expressive\"\u003edoc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpressive Button Group Styles (\u003ca href=\"https://github.com/material-components/material-components-android/blob/master/docs/components/ButtonGroup.md#m3-expressive\"\u003edoc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpressive FAB Styles (\u003ca href=\"https://github.com/material-components/material-components-android/blob/master/docs/components/FloatingActionButton.md#m3-expressive\"\u003edoc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpressive Top App Bar Styles (\u003ca href=\"https://github.com/material-components/material-components-android/blob/master/docs/components/TopAppBar.md#m3-expressive\"\u003edoc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpressive Navigation Bar (BottomNavigationView) Styles (\u003ca href=\"https://github.com/material-components/material-components-android/blob/master/docs/components/BottomNavigation.md#m3-expressive\"\u003edoc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpressive Navigation Rail Styles (\u003ca href=\"https://github.com/material-components/material-components-android/blob/master/docs/components/NavigationRail.md#m3-expressive\"\u003edoc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpressive Search Styles (\u003ca href=\"https://github.com/material-components/material-components-android/blob/master/docs/components/Search.md#m3-expressive\"\u003edoc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpressive Progress Indicator Styles (\u003ca href=\"https://github.com/material-components/material-components-android/blob/master/docs/components/ProgressIndicator.md#m3-expressive\"\u003edoc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpressive Slider Styles (\u003ca href=\"https://github.com/material-components/material-components-android/blob/master/docs/components/Slider.md#m3-expressive\"\u003edoc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEmphasized Typescale (\u003ca href=\"https://github.com/material-components/material-components-android/blob/master/docs/theming/Typography.md#emphasized-scale\"\u003edoc\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImportant\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRequired \u003ccode\u003eminSdkVersion\u003c/code\u003e is now 23 or higher, for Material and \u003ca href=\"https://developer.android.com/jetpack/androidx/versions#version-table\"\u003eAndroidX\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eLibrary is now built with Android Gradle Plugin (AGP) 8.11.1 and Gradle 8.13.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependency Updates\u003c/h2\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eDependency\u003c/th\u003e\n\u003cth\u003ePrevious version\u003c/th\u003e\n\u003cth\u003eNew version\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003eandroidx.constraintlayout:constraintlayout\u003c/td\u003e\n\u003ctd\u003e2.1.0\u003c/td\u003e\n\u003ctd\u003e2.2.1\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eandroidx.core:core\u003c/td\u003e\n\u003ctd\u003e1.6.0\u003c/td\u003e\n\u003ctd\u003e1.16.0\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eandroidx.customview:customview\u003c/td\u003e\n\u003ctd\u003eN/A\u003c/td\u003e\n\u003ctd\u003e1.2.0\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003ecom.android.tools.build:gradle\u003c/td\u003e\n\u003ctd\u003e8.7.3\u003c/td\u003e\n\u003ctd\u003e8.11.1\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003eLibrary Updates\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eAppBar\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003eFixed the bug that setBackground will reset the internal MaterialShapeDrawable for lift-on-scroll feature. (1adc50110ed6491661f89aa535355b1480fac73a)\u003c/li\u003e\n\u003cli\u003eAdd support for navigation button with circle background (015e0534e1a6205224097f258102f913832f99ed)\u003c/li\u003e\n\u003cli\u003eImprove keyboard navigation in TopAppBar catalog demos (98a73a61d272d3e38ee87dd4b322f7787c374a9c)\u003c/li\u003e\n\u003cli\u003eRemoved special key shortcut and keyboard navigation cluster for top app bar for correct keyboard navigation a11y. (ee52adbf051f744f2345ec5b7f4ab4df3b101d4d)\u003c/li\u003e\n\u003cli\u003eUpdated ripple color on actions in M3 toolbar. (3b971c9fe9d6ae9a175d96a448a2e740fa97996f)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBottomAppBar\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003eRemove special key shortcut and keyboard navigation cluster for bottom app bar for correct keyboard navigation a11y. (5c73d7a9284fb8e8409452bb95751bf70912acfd)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBottomNavigationView\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003eFix navigation item layout in non-compact windows (78189012dada1fae4516eaccab7b8f75c481aa73)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBottomSheet\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecated enableEdgeToEdge for bottom sheet dialogs on API 35+. (603f1ef9d5223fc06fa432c4175473eda2138330)\u003c/li\u003e\n\u003cli\u003ePrevent ACTION_DOWN events on the BottomSheetHandleDragView from setting touchingScrollChild to true. (af7f254bf660704368d46e630d34a81c479fa1c7)\u003c/li\u003e\n\u003cli\u003eFixed keyboard animation on Android 14 (a0b4dfa8769f98851efe97569c900f75eb0d5ef2)\u003c/li\u003e\n\u003cli\u003eFixed crash when protections are set before setContentView is called (d2119098489f6f6b55d77f2c7966b8ddf16c90ed)\u003c/li\u003e\n\u003cli\u003eAdded half-expanded state description for accessibility (95e7b452088d88005982a3f29ec212ef7ee8696d)\u003c/li\u003e\n\u003cli\u003eAdded support for androidx.core ProtectionLayout API and update dependency to 1.16 (e7f9f639d2f4a3b9f619ce704df82cbb14e49222)\u003c/li\u003e\n\u003cli\u003eMake handle respond to keyboard input (1ee07687af2c4c84f515e45c1b809d65aeecbbf4)\u003c/li\u003e\n\u003cli\u003eDelete duplicate \u0026quot;Handling insets and fullscreen\u0026quot; section (5e7e8238f7be448af6b4db4b2ad6128737c0bc50)\u003c/li\u003e\n\u003cli\u003eAdded support for Nested Scrolling with multiple nested scroll children. (4e4e8f3388beb7e82a87cb67142aa34444a79740)\u003c/li\u003e\n\u003cli\u003eMake behavior_draggableOnNestedScroll public (a67afdff0d207239d0f427a37e44074936db3166)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/material-components/material-components-android/commit/66c334b7946dabf33adfe1a2b7cad6bcaa4ea3ad\"\u003e\u003ccode\u003e66c334b\u003c/code\u003e\u003c/a\u003e [Release] Update library version to 1.14.0 stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/material-components/material-components-android/commit/12e57b5143609a96de8516426336bcf3b3e321f7\"\u003e\u003ccode\u003e12e57b5\u003c/code\u003e\u003c/a\u003e [Focus Rings] Add setters and getters for stroke widths and inner inset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/material-components/material-components-android/commit/f4652d6af613395835b17ce329ceb03f43fc4a84\"\u003e\u003ccode\u003ef4652d6\u003c/code\u003e\u003c/a\u003e [NavigationView] Improve focus saving when opening NavigationView\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/material-components/material-components-android/commit/14b9ac97b0863fa7fea6f59954441cea9f4e7e14\"\u003e\u003ccode\u003e14b9ac9\u003c/code\u003e\u003c/a\u003e [Focus Rings] Add setters for outer and inner stroke colors and for refreshin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/material-components/material-components-android/commit/d6de1da0f5532090d8b7de697e13c180f56e11e1\"\u003e\u003ccode\u003ed6de1da\u003c/code\u003e\u003c/a\u003e [A11y][BottomSheet] Auto-expand when a focused view is off-screen in non-touc...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/material-components/material-components-android/commit/41cfb65e8393cd7ff0f9dc082b400c852405e9cc\"\u003e\u003ccode\u003e41cfb65\u003c/code\u003e\u003c/a\u003e [A11y][NavigationView] Request and restore focus when opened and closed in Dr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/material-components/material-components-android/commit/8f63e9485bf6da5a9a0aaefa4bbf26c8ec1364a5\"\u003e\u003ccode\u003e8f63e94\u003c/code\u003e\u003c/a\u003e [Catalog] Fix lift on scroll glitchiness in All Components demo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/material-components/material-components-android/commit/80aa0cc0233af0e81a846271de0d5218beeceeaf\"\u003e\u003ccode\u003e80aa0cc\u003c/code\u003e\u003c/a\u003e [Release] Update library version to 1.14.0-rc01\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/material-components/material-components-android/commit/fd44c9d58699e18de06ca5de8687fe79f390568b\"\u003e\u003ccode\u003efd44c9d\u003c/code\u003e\u003c/a\u003e [Button] [SplitButton] Fix inset and optical centering issue for SplitButton ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/material-components/material-components-android/commit/e6ae416e7fc791d733eedde96ffea66d313ef231\"\u003e\u003ccode\u003ee6ae416\u003c/code\u003e\u003c/a\u003e [SearchView] Make sure IME is hidden when EditText loses focus\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/material-components/material-components-android/compare/1.13.0...1.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlinx:kotlinx-coroutines-android` from 1.10.2 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/releases\"\u003eorg.jetbrains.kotlinx:kotlinx-coroutines-android's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.11.0\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003ePromise\u003c/code\u003e-related functions from JS and Wasm/JS to the new \u003ccode\u003eweb\u003c/code\u003e target. On Wasm/JS, this is a breaking change. Before the change, \u003ccode\u003ePromise\u003c/code\u003e on Wasm/JS could work with arbitrary Kotlin types, but now, only \u003ccode\u003eJsAny\u003c/code\u003e subtypes are accepted (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4563\"\u003e#4563\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eChanged handling of coroutine exceptions that can't be propagated on JS and Wasm/JS. B\nefore, exceptions were logged, but now, they are reported to the JS runtime (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4451\"\u003e#4451\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4631\"\u003e#4631\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeprecated using \u003ccode\u003eCoroutineDispatcher\u003c/code\u003e as the coroutine context key; now, \u003ccode\u003eContinuationInterceptor\u003c/code\u003e has to be used instead (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4333\"\u003e#4333\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdvanced the deprecation levels on \u003ccode\u003ekotlinx-coroutines-test\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4604\"\u003e#4604\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded lint functions that mark passing a \u003ccode\u003eJob\u003c/code\u003e to coroutine builders as deprecated (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4435\"\u003e#4435\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003erunBlocking\u003c/code\u003e in code shared between JVM and Native (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4368\"\u003e#4368\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003esuspendCancellableCoroutine\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4574\"\u003e#4574\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eflowOn\u003c/code\u003e incorrectly handling \u003ccode\u003eThreadContextElement\u003c/code\u003e updates (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4403\"\u003e#4403\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed exceptions in user-supplied \u003ccode\u003eThread.UncaughtExceptionHandler\u003c/code\u003e instances causing the internal coroutines machinery to fail (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4516\"\u003e#4516\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCoroutineDispatcher.asScheduler\u003c/code\u003e in the RxJava integration not cancelling outstanding work when a \u003ccode\u003eWorker\u003c/code\u003e gets cancelled, which led to memory leaks in some scenarios (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4615\"\u003e#4615\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSharedFlow\u003c/code\u003e entering an invalid state when a subscriber and an emitter are cancelled simultaneously (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4583\"\u003e#4583\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed an R8 optimization leading to \u003ccode\u003eshareIn\u003c/code\u003e/\u003ccode\u003estateIn\u003c/code\u003e coroutines getting garbage-collected (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4646\"\u003e#4646\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/solevic\"\u003e\u003ccode\u003e@​solevic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSmall additions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eCompletableDeferred.asDeferred\u003c/code\u003e for obtaining a read-only \u003ccode\u003eDeferred\u003c/code\u003e view (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4408\"\u003e#4408\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSharedFlow.asFlow\u003c/code\u003e for obtaining a \u003ccode\u003eFlow\u003c/code\u003e view with hidden hot flow semantics (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4530\"\u003e#4530\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/g000sha256\"\u003e\u003ccode\u003e@​g000sha256\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow.collectLatest\u003c/code\u003e overload returning \u003ccode\u003eNothing\u003c/code\u003e to assist with finding unreachable code (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4454\"\u003e#4454\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eReceiveChannel.consumeTo\u003c/code\u003e for consuming a \u003ccode\u003eReceiveChannel\u003c/code\u003e into a \u003ccode\u003eMutableCollection\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4520\"\u003e#4520\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e overload returning a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;\u003c/code\u003e, similar to \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e returning \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4275\"\u003e#4275\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/xit0c\"\u003e\u003ccode\u003e@​xit0c\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded terminal \u003ccode\u003eFlow\u003c/code\u003e operators for collecting a \u003ccode\u003eFlow\u003c/code\u003e to a \u003ccode\u003eMap\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/1541\"\u003e#1541\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog relative to version 1.11.0\u003c/h3\u003e\n\u003cp\u003eNo changes, only the version is increased.\u003c/p\u003e\n\u003ch2\u003e1.11.0-rc02\u003c/h2\u003e\n\u003cp\u003eRestored binary compatibility with 1.10.2 and older versions on Wasm/JS for usages of \u003ccode\u003ePromise\u003c/code\u003e-related functions (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003e1.11.0-rc01\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/blob/master/CHANGES.md\"\u003eorg.jetbrains.kotlinx:kotlinx-coroutines-android's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.11.0\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003ePromise\u003c/code\u003e-related functions from JS and Wasm/JS to the new \u003ccode\u003eweb\u003c/code\u003e target. On Wasm/JS, this is a breaking change. Before the change, \u003ccode\u003ePromise\u003c/code\u003e on Wasm/JS could work with arbitrary Kotlin types, but now, only \u003ccode\u003eJsAny\u003c/code\u003e subtypes are accepted (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4563\"\u003e#4563\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eChanged handling of coroutine exceptions that can't be propagated on JS and Wasm/JS. Before, exceptions were logged, but now, they are reported to the JS runtime (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4451\"\u003e#4451\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4631\"\u003e#4631\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeprecated using \u003ccode\u003eCoroutineDispatcher\u003c/code\u003e as the coroutine context key; now, \u003ccode\u003eContinuationInterceptor\u003c/code\u003e has to be used instead (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4333\"\u003e#4333\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdvanced the deprecation levels on \u003ccode\u003ekotlinx-coroutines-test\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4604\"\u003e#4604\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded lint functions that mark passing a \u003ccode\u003eJob\u003c/code\u003e to coroutine builders as deprecated (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4435\"\u003e#4435\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003erunBlocking\u003c/code\u003e in code shared between JVM and Native (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4368\"\u003e#4368\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003esuspendCancellableCoroutine\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4574\"\u003e#4574\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eflowOn\u003c/code\u003e incorrectly handling \u003ccode\u003eThreadContextElement\u003c/code\u003e updates (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4403\"\u003e#4403\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed exceptions in user-supplied \u003ccode\u003eThread.UncaughtExceptionHandler\u003c/code\u003e instances causing the internal coroutines machinery to fail (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4516\"\u003e#4516\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCoroutineDispatcher.asScheduler\u003c/code\u003e in the RxJava integration not cancelling outstanding work when a \u003ccode\u003eWorker\u003c/code\u003e gets cancelled, which led to memory leaks in some scenarios (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4615\"\u003e#4615\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSharedFlow\u003c/code\u003e entering an invalid state when a subscriber and an emitter are cancelled simultaneously (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4583\"\u003e#4583\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed an R8 optimization leading to \u003ccode\u003eshareIn\u003c/code\u003e/\u003ccode\u003estateIn\u003c/code\u003e coroutines getting garbage-collected (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4646\"\u003e#4646\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/solevic\"\u003e\u003ccode\u003e@​solevic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSmall additions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eCompletableDeferred.asDeferred\u003c/code\u003e for obtaining a read-only \u003ccode\u003eDeferred\u003c/code\u003e view (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4408\"\u003e#4408\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSharedFlow.asFlow\u003c/code\u003e for obtaining a \u003ccode\u003eFlow\u003c/code\u003e view with hidden hot flow semantics (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4530\"\u003e#4530\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/g000sha256\"\u003e\u003ccode\u003e@​g000sha256\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow.collectLatest\u003c/code\u003e overload returning \u003ccode\u003eNothing\u003c/code\u003e to assist with finding unreachable code (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4454\"\u003e#4454\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eReceiveChannel.consumeTo\u003c/code\u003e for consuming a \u003ccode\u003eReceiveChannel\u003c/code\u003e into a \u003ccode\u003eMutableCollection\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4520\"\u003e#4520\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e overload returning a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;\u003c/code\u003e, similar to \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e returning \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4275\"\u003e#4275\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/xit0c\"\u003e\u003ccode\u003e@​xit0c\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded terminal \u003ccode\u003eFlow\u003c/code\u003e operators for collecting a \u003ccode\u003eFlow\u003c/code\u003e to a \u003ccode\u003eMap\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/1541\"\u003e#1541\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog relative to version 1.11.0\u003c/h3\u003e\n\u003cp\u003eNo changes, only the version is increased.\u003c/p\u003e\n\u003ch2\u003eVersion 1.11.0-rc02\u003c/h2\u003e\n\u003cp\u003eRestored binary compatibility with 1.10.2 and older versions on Wasm/JS for usages of \u003ccode\u003ePromise\u003c/code\u003e-related functions (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eVersion 1.11.0-rc01\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/8564f65764d3d05893cec026c6e94250e2b23874\"\u003e\u003ccode\u003e8564f65\u003c/code\u003e\u003c/a\u003e Version 1.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/a4c6af96c15fe30f5d4e8b810ea74f8babd5805c\"\u003e\u003ccode\u003ea4c6af9\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/ef917b460aa741691fbf991ee1b813049cae18c9\"\u003e\u003ccode\u003eef917b4\u003c/code\u003e\u003c/a\u003e KT-84955: mark apple x64 tagets as deprecated error (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/5ebc421e341bf2ddce734d369da87df1985e80bd\"\u003e\u003ccode\u003e5ebc421\u003c/code\u003e\u003c/a\u003e Update the release procedure description (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4670\"\u003e#4670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/95f46a073bc4a1230352108cea1835fd22219a80\"\u003e\u003ccode\u003e95f46a0\u003c/code\u003e\u003c/a\u003e Remove old maven repository settings (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4672\"\u003e#4672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/b4f4f0aa6acb692f3fbcadd70e4958e3e9d370fc\"\u003e\u003ccode\u003eb4f4f0a\u003c/code\u003e\u003c/a\u003e Fix package name of \u003ccode\u003eToMapCollectionSamplesTest\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4674\"\u003e#4674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/86738dca7dc9ac82249abc8206263fa0065ee631\"\u003e\u003ccode\u003e86738dc\u003c/code\u003e\u003c/a\u003e Added templates to the issue creation wizard (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4654\"\u003e#4654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/330fcc221fb583f0b119f34191f735a73b827378\"\u003e\u003ccode\u003e330fcc2\u003c/code\u003e\u003c/a\u003e Version 1.11.0-rc02\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/e31cef6e9f2d26794be7d75ecbf3033b6432d582\"\u003e\u003ccode\u003ee31cef6\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/dc6e9f61eaf3a67f4bf474a7987aedc3f16cef37\"\u003e\u003ccode\u003edc6e9f6\u003c/code\u003e\u003c/a\u003e Restore Promise-related functions on Wasm/JS as HIDDEN (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/compare/1.10.2...1.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlinx:kotlinx-serialization-json` from 1.10.0 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/releases\"\u003eorg.jetbrains.kotlinx:kotlinx-serialization-json's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.11.0\u003c/h2\u003e\n\u003cp\u003eThis release is based on Kotlin 2.3.20 and provides a new Json exceptions API and some bugfixes and improvements.\u003c/p\u003e\n\u003ch2\u003eExpose Json exceptions structure\u003c/h2\u003e\n\u003cp\u003eTo make working with exceptions easier and providing proper error codes in e.g., REST APIs,\nclasses \u003ccode\u003eJsonException\u003c/code\u003e, \u003ccode\u003eJsonDecodingException\u003c/code\u003e, and \u003ccode\u003eJsonEncodingException\u003c/code\u003e are now public.\nThey have relevant public properties, such as \u003ccode\u003eshortMessage\u003c/code\u003e, \u003ccode\u003epath\u003c/code\u003e, \u003ccode\u003eoffset\u003c/code\u003e, and others.\nThis API is currently experimental, and we're going to improve it further in the subsequent releases.\nSee the linked issues for the details: \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/1930\"\u003e#1930\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/1877\"\u003e#1877\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eAbility to hide user input from exception messages for security/privacy reasons.\u003c/h2\u003e\n\u003cp\u003eHistorically, exception messages in kotlinx.serialization often included the input Json itself for debuggability reason.\nSuch behavior may pose additional challenges for logging, analytics, and other systems, since\na system is not always allowed to store user data due to privacy/security reasons, which imposes additional sanitation logic.\nTo address this issue, a new property \u003ccode\u003eexceptionsWithDebugInfo\u003c/code\u003e is added to \u003ccode\u003eJsonConfiguration\u003c/code\u003e.\nDisable it to hide user input from exception messages.\nIMPORTANT: This behavior will be enabled by default when this property becomes stable.\nSee \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/2590\"\u003e#2590\u003c/a\u003e for more details.\u003c/p\u003e\n\u003ch2\u003eBugfixes and improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCBOR: Relax value range check when decoding numbers (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3167\"\u003e#3167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse a specialized writeDecimalLong method for IO stream integrations in Json (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3152\"\u003e#3152\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/blob/master/CHANGELOG.md\"\u003eorg.jetbrains.kotlinx:kotlinx-serialization-json's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.11.0 / 2026-04-10\u003c/h1\u003e\n\u003cp\u003eThis release is based on Kotlin 2.3.20 and provides new Json exceptions API and some bugfixes and improvements.\u003c/p\u003e\n\u003ch2\u003eExpose Json exceptions structure\u003c/h2\u003e\n\u003cp\u003eTo make working with exceptions easier and providing proper error codes in e.g., REST APIs,\nclasses \u003ccode\u003eJsonException\u003c/code\u003e, \u003ccode\u003eJsonDecodingException\u003c/code\u003e, and \u003ccode\u003eJsonEncodingException\u003c/code\u003e are now public.\nThey have relevant public properties, such as \u003ccode\u003eshortMessage\u003c/code\u003e, \u003ccode\u003epath\u003c/code\u003e, \u003ccode\u003eoffset\u003c/code\u003e, and others.\nThis API is currently experimental, and we're going to improve it further in the subsequent releases.\nSee the linked issues for the details: \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/1930\"\u003e#1930\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/1877\"\u003e#1877\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eAbility to hide user input from exception messages for security/privacy reasons.\u003c/h2\u003e\n\u003cp\u003eHistorically, exception messages in kotlinx.serialization often included the input Json itself for debuggability reason.\nSuch behavior may pose additional challenges for logging, analytics, and other systems, since\na system is not always allowed to store user data due to privacy/security reasons, which imposes additional sanitation logic.\nTo address this issue, a new property \u003ccode\u003eexceptionsWithDebugInfo\u003c/code\u003e is added to \u003ccode\u003eJsonConfiguration\u003c/code\u003e.\nDisable it to hide user input from exception messages.\nIMPORTANT: This behavior will be enabled by default when this property becomes stable.\nSee \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/2590\"\u003e#2590\u003c/a\u003e for more details.\u003c/p\u003e\n\u003ch2\u003eBugfixes and improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCBOR: Relax value range check when decoding numbers (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3167\"\u003e#3167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse a specialized writeDecimalLong method for IO stream integrations in Json (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3152\"\u003e#3152\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/6956af2e6073347c7832c3c5b374fa3b5a345956\"\u003e\u003ccode\u003e6956af2\u003c/code\u003e\u003c/a\u003e Prepare 1.11 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/390d84c68a19cbf7fa453dec22a333648bde49b4\"\u003e\u003ccode\u003e390d84c\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into dev\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/431fe2dc0a144300b33038820d24fc30302c8abc\"\u003e\u003ccode\u003e431fe2d\u003c/code\u003e\u003c/a\u003e Use local repo for publishing (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3171\"\u003e#3171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/05c12b60a6717b99053fb82e1f94d2f859727374\"\u003e\u003ccode\u003e05c12b6\u003c/code\u003e\u003c/a\u003e Add usage attribute to \u0026quot;testRepositories\u0026quot; configuration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/a4e1f082ef2e72caa139b474c05657de6015da20\"\u003e\u003ccode\u003ea4e1f08\u003c/code\u003e\u003c/a\u003e Bump Kover version to 0.9.8 release (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3174\"\u003e#3174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/304e858ccc7066854637d86ab80056f5f2bcc094\"\u003e\u003ccode\u003e304e858\u003c/code\u003e\u003c/a\u003e Expose Json exceptions structure (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3145\"\u003e#3145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/4a0338ef5093d765138151bc30282e909ca459e4\"\u003e\u003ccode\u003e4a0338e\u003c/code\u003e\u003c/a\u003e Included G Play SDK verification file for core-jvm (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3169\"\u003e#3169\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/421f64c74f0ea6d4a3cdc8dd483505366e3f6c8f\"\u003e\u003ccode\u003e421f64c\u003c/code\u003e\u003c/a\u003e CBOR: Relax value range check when decoding numbers (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3167\"\u003e#3167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/85a4f126ec491c77e2b3686cc22c1bae27a20783\"\u003e\u003ccode\u003e85a4f12\u003c/code\u003e\u003c/a\u003e KT-84955: mark apple x64 tagets as deprecated error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/bd38b0e49bce38d1a55576e89856bc63990167ed\"\u003e\u003ccode\u003ebd38b0e\u003c/code\u003e\u003c/a\u003e Remove dead code\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/compare/v1.10.0...v1.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.squareup.okhttp3:okhttp` from 5.3.2 to 5.5.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lysine-dev/okhttp/blob/main/CHANGELOG.md\"\u003ecom.squareup.okhttp3:okhttp's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 5.5.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2026-08-16\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eThis release introduces \u003cstrong\u003eopt-in\u003c/strong\u003e support for [Encrypted Client Hello (ECH)]. This new feature\nimproves user privacy by encrypting domain names in transit. With regular TLS, your coffee shop’s\nWi-Fi router can see that you’re visiting \u003cem\u003ewikipedia.com\u003c/em\u003e, but it cannot see which page you’re\nlooking at. With ECH, the router observes only the IP address. This additional privacy is most\neffective on sites hosted by big CDNs because the IP address doesn’t imply a particular website.\u003c/p\u003e\n\u003cp\u003eThis requires ECH support in the platform’s TLS stack. Today this is only Android 17 (API 37,\nreleased June 2026). When other TLS stacks add ECH support, we'll integrate them.\u003c/p\u003e\n\u003cp\u003eECH took a lot of work to implement because the encryption keys are published over DNS in the\n[HTTPS resource record], and we needed to write new code to fetch these records. This release\nincludes a major update to OkHttp’s DNS API: it now supports multiple resource record types (not\njust IP addresses!), asynchronous streaming results, and in-memory caching.\u003c/p\u003e\n\u003cp\u003eTo opt in, you can use \u003ccode\u003eDnsOverHttps\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"kotlin\"\u003e\u003ccode\u003e// DnsOverHttps itself uses OkHttpClient. Build both clients upon the\n// same bootstrap client so they share a connection pool and dispatcher.\nval bootstrapClient = OkHttpClient()\n\u003cp\u003e// This sample uses Cloudflare's 1.1.1.1 DnsOverHttps service.\nval client = bootstrapClient.newBuilder()\n.dns(DnsOverHttps.Builder()\n.client(bootstrapClient)\n.url(\u0026quot;\u003ca href=\"https://1.1.1.1/dns-query\u0026amp;quot;.toHttpUrl()\"\u003ehttps://1.1.1.1/dns-query\u0026amp;quot;.toHttpUrl()\u003c/a\u003e)\n.build())\n.build()\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eYou could also opt in with our new \u003ccode\u003eAndroidDns\u003c/code\u003e API. Unfortunately, the privacy benefits of ECH are\nthwarted because its DNS queries are not encrypted by default.\u003c/p\u003e\n\u003cpre lang=\"kotlin\"\u003e\u003ccode\u003e// AndroidDns fetches the HTTPS DNS resource records necessary for ECH.\nval client = OkHttpClient.Builder()\n  .dns(AndroidDns())\n  .build()\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003eNew: OkHttp artifacts are now signed with our [new signing key]. This project and three sibling\nprojects ([Retrofit], [Okio], and [SQLDelight]) recently joined [the Commonhaus Foundation].\u003c/li\u003e\n\u003cli\u003eFix: MockWebServer’s \u003ccode\u003e@StartStop\u003c/code\u003e annotation now supports \u003ccode\u003e@Nested\u003c/code\u003e JUnit 5 tests.\u003c/li\u003e\n\u003cli\u003eFix: Our default TLS hostname verifier now reject hosts that fail IP canonicalization.\u003c/li\u003e\n\u003cli\u003eFix: Closing a multipart part's sink no longer closes the entire request body.\u003c/li\u003e\n\u003cli\u003eFix: Flush HTTP/1 request bodies before detaching the timeout. We had a bug where timeouts\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysine-dev/okhttp/commit/a94bdf152084d11acecd44dcd09ffef203f4f0aa\"\u003e\u003ccode\u003ea94bdf1\u003c/code\u003e\u003c/a\u003e Prepare for release 5.5.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysine-dev/okhttp/commit/ecc3b05adfe6b2607b8ec251562c2cccf7c1923a\"\u003e\u003ccode\u003eecc3b05\u003c/code\u003e\u003c/a\u003e Use a fixed size for DoH request body (\u003ca href=\"https://redirect.github.com/lysine-dev/okhttp/issues/9687\"\u003e#9687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysine-dev/okhttp/commit/9926082660dfa6f1cc848c6f465cf5ccb998e415\"\u003e\u003ccode\u003e9926082\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Use a fixed size for DoH request body\u0026quot; (\u003ca href=\"https://redirect.github.com/lysine-dev/okhttp/issues/9686\"\u003e#9686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysine-dev/okhttp/commit/0070c2e7b4c162ee03abf1c88fd94083e94697f4\"\u003e\u003ccode\u003e0070c2e\u003c/code\u003e\u003c/a\u003e Use a fixed size for DoH request body\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysine-dev/okhttp/commit/15764539c69842dad607462f102a2507223dbfe7\"\u003e\u003ccode\u003e1576453\u003c/code\u003e\u003c/a\u003e Order ServiceMetadata records per the spec (\u003ca href=\"https://redirect.github.com/lysine-dev/okhttp/issues/9683\"\u003e#9683\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysine-dev/okhttp/commit/fb582e976a9a82d691342a4d57b3c72208ce416c\"\u003e\u003ccode\u003efb582e9\u003c/code\u003e\u003c/a\u003e Flip wiring of Dns.SYSTEM (\u003ca href=\"https://redirect.github.com/lysine-dev/okhttp/issues/9682\"\u003e#9682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysine-dev/okhttp/commit/4e884abb1a207c321acffb070c476acb4b89fa3f\"\u003e\u003ccode\u003e4e884ab\u003c/code\u003e\u003c/a\u003e retryOnConnectionFailure doesn't impact ECH retries (\u003ca href=\"https://redirect.github.com/lysine-dev/okhttp/issues/9681\"\u003e#9681\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysine-dev/okhttp/commit/0433cee8131b63fa2c0634fa2f9b3a01f9a8b1f3\"\u003e\u003ccode\u003e0433cee\u003c/code\u003e\u003c/a\u003e Only one contributing.md doc (\u003ca href=\"https://redirect.github.com/lysine-dev/okhttp/issues/9678\"\u003e#9678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysine-dev/okhttp/commit/a2cf5aa9f8711dabe514871e9dc4a9336a0e403f\"\u003e\u003ccode\u003ea2cf5a...\n\n_Description has been truncated_","html_url":"https://github.com/linuxhsj/openclaw-zero-token/pull/298","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/linuxhsj%2Fopenclaw-zero-token/issues/298","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/298/packages"}},{"old_version":"2.3.21","new_version":"2.4.20","update_type":"minor","path":null,"pr_created_at":"2026-09-13T18:54:18.000Z","version_change":"2.3.21 → 2.4.20","issue":{"uuid":"5442065104","node_id":"PR_kwDOSboaV88AAAABDW5YmA","number":51,"state":"closed","title":"deps: bump the build-toolchain group across 1 directory with 3 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-09-13T19:12:08.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-13T18:54:18.000Z","updated_at":"2026-09-13T19:12:08.000Z","time_to_close":1070,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"build-toolchain","update_count":3,"packages":[{"name":"org.jetbrains.kotlin.plugin.compose","old_version":"2.3.21","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.3.21","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.3.21","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"com.google.devtools.ksp","old_version":"2.3.7","new_version":"2.3.12","repository_url":"https://github.com/google/ksp"}],"path":null,"ecosystem":"maven"},"body":"Bumps the build-toolchain group with 3 updates in the / directory: [org.jetbrains.kotlin.plugin.compose](https://github.com/JetBrains/kotlin), [org.jetbrains.kotlin.plugin.serialization](https://github.com/JetBrains/kotlin) and [com.google.devtools.ksp](https://github.com/google/ksp).\n\nUpdates `org.jetbrains.kotlin.plugin.compose` from 2.3.21 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.plugin.compose's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.plugin.compose's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.3.21...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.plugin.serialization` from 2.3.21 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.plugin.serialization's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.plugin.serialization's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.3.21...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.plugin.serialization` from 2.3.21 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.plugin.serialization's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.plugin.serialization's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.3.21...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.google.devtools.ksp` from 2.3.7 to 2.3.12\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/ksp/releases\"\u003ecom.google.devtools.ksp's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.12\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eMigrating Processors to Support Backing Fields\u003c/h3\u003e\n\u003cp\u003eThis release introduces support for explicit backing fields (\u003ca href=\"https://redirect.github.com/google/ksp/issues/2873\"\u003e#2873\u003c/a\u003e ), which may now be returned by \u003ccode\u003eResolver.getSymbolsWithAnnotation\u003c/code\u003e. To prevent breaking existing processors, new language features require an explicit opt-in.\u003c/p\u003e\n\u003cp\u003eProcessors adapting to new features must opt in via both of the following steps simultaneously (failing to do both may lead to undefined behavior):\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eThe processor should call the \u003ccode\u003eregisterProcessorForNewFeatures\u003c/code\u003e function in \u003ccode\u003eSymbolProcessorEnvironment\u003c/code\u003e immediately when created (and only once). Example: \u003ca href=\"https://github.com/google/ksp/blob/958be42cfd07943f901727d12ab7fec6540d543f/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AbstractTestProcessor.kt#L30\"\u003eAbstractTestProcessor.kt#L30\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAll implementations of \u003ccode\u003eKSVisitor\u003c/code\u003e should move to \u003ccode\u003eKSVisitorNext\u003c/code\u003e. If their processor code does not directly implement the interface but instead \u003cstrong\u003eextends\u003c/strong\u003e one of the KSP-provided visitors (such as \u003ccode\u003eKSTopDownVisitor\u003c/code\u003e), they should instead extend \u003ccode\u003eKSTopDownVisitor(enableNewFeatures = true)\u003c/code\u003e and override \u003ccode\u003evisitBackingField\u003c/code\u003e depending on their code and needs.\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix Resolver.getDeclarationsFromPackage returning incomplete declarations from KLibs in Kotlin Multiplatform (\u003ca href=\"https://redirect.github.com/google/ksp/issues/2396\"\u003e#2396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix KSP CLI process hanging indefinitely when a processor throws an unhandled exception (\u003ca href=\"https://redirect.github.com/google/ksp/issues/3120\"\u003e#3120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix implicit task dependency error between KSP and Android Lint in Android KMP (\u003ca href=\"https://redirect.github.com/google/ksp/issues/3128\"\u003e#3128\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix NullPointerException by registering PluginProblemReporter as an application service (\u003ca href=\"https://redirect.github.com/google/ksp/issues/3140\"\u003e#3140\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDo not mark companion objects as JAVA_STATIC in Resolver.effectiveJavaModifiers (\u003ca href=\"https://redirect.github.com/google/ksp/issues/3125\"\u003e#3125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix JAVA_STATIC modifier resolution for \u003ca href=\"https://github.com/JvmStatic\"\u003e\u003ccode\u003e@​JvmStatic\u003c/code\u003e\u003c/a\u003e members in Resolver.effectiveJavaModifiers (\u003ca href=\"https://redirect.github.com/google/ksp/issues/3124\"\u003e#3124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate minimum supported Android Gradle Plugin (AGP) version to 8.12.0 (\u003ca href=\"https://redirect.github.com/google/ksp/issues/3149\"\u003e#3149\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/KlyneChrysler\"\u003e\u003ccode\u003e@​KlyneChrysler\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/budindepunk\"\u003e\u003ccode\u003e@​budindepunk\u003c/code\u003e\u003c/a\u003e, and everyone who reported bugs and participated in discussions!\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/google/ksp/compare/2.3.11...2.3.12\"\u003ehttps://github.com/google/ksp/compare/2.3.11...2.3.12\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.3.11\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003eorg.gradle.isolated-projects\u003c/code\u003e for project isolation (\u003ca href=\"https://redirect.github.com/google/ksp/issues/3051\"\u003e#3051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix premature \u003ccode\u003ekspDebugAndroidTest\u003c/code\u003e task skipping on Android library modules (\u003ca href=\"https://redirect.github.com/google/ksp/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix missing parent declaration exception for \u003ccode\u003e@NotNull\u003c/code\u003e annotations during incremental compilation (\u003ca href=\"https://redirect.github.com/google/ksp/issues/3030\"\u003e#3030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClean output directories instead of skipping tasks when processor classpath transitions to empty (\u003ca href=\"https://redirect.github.com/google/ksp/issues/3046\"\u003e#3046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix build cache misses by marking \u003ccode\u003eKspGradleConfig.logLevel\u003c/code\u003e as \u003ccode\u003e@Internal\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/google/ksp/issues/3039\"\u003e#3039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eorg.gradle.isolated-projects=true\u003c/code\u003e to KSP Gradle properties reference table (\u003ca href=\"https://redirect.github.com/google/ksp/issues/3076\"\u003e#3076\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd KSP Gradle properties reference table to README documentation (\u003ca href=\"https://redirect.github.com/google/ksp/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument collection values in \u003ccode\u003eKSValueArgument.value\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/google/ksp/issues/3069\"\u003e#3069\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate error messaging for \u003ccode\u003eksp.useKSP2\u003c/code\u003e deprecation notice (\u003ca href=\"https://redirect.github.com/google/ksp/issues/3066\"\u003e#3066\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThanks to \u003ca href=\"https://github.com/simonlebras\"\u003e\u003ccode\u003e@​simonlebras\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ChristianKatzmann\"\u003e\u003ccode\u003e@​ChristianKatzmann\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Yong-yuan-X\"\u003e\u003ccode\u003e@​Yong-yuan-X\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/bacecek\"\u003e\u003ccode\u003e@​bacecek\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/KlyneChrysler\"\u003e\u003ccode\u003e@​KlyneChrysler\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Shaurya2k06\"\u003e\u003ccode\u003e@​Shaurya2k06\u003c/code\u003e\u003c/a\u003e, and everyone who reported bugs and participated in discussions!\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/google/ksp/compare/2.3.10...2.3.11\"\u003ehttps://github.com/google/ksp/compare/2.3.10...2.3.11\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.3.10\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix OOMs caused by unstopped coroutine Dispatcher threads by moving KSP task cache to a gradle build service (\u003ca href=\"https://redirect.github.com/google/ksp/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSanitize ':' in internal-name module suffix so KSP works with Kotlin 2.4.0 default module names (\u003ca href=\"https://redirect.github.com/google/ksp/issues/2964\"\u003e#2964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFilter source file trees in KspAATask to restore NO-SOURCE skipping behaviour (\u003ca href=\"https://redirect.github.com/google/ksp/issues/2947\"\u003e#2947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix R-class resolution in KSP when AGP 9 built-in Kotlin is enabled (\u003ca href=\"https://redirect.github.com/google/ksp/issues/2857\"\u003e#2857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix KSP2 incremental cache path normalization mismatch (\u003ca href=\"https://redirect.github.com/google/ksp/issues/2854\"\u003e#2854\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/ksp/commit/a3c38590913b863cc6b73b41d54ff8afa625f642\"\u003e\u003ccode\u003ea3c3859\u003c/code\u003e\u003c/a\u003e Format Resolver file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/ksp/commit/a614317b071a434139689d8fc0f5c1377b4f0d44\"\u003e\u003ccode\u003ea614317\u003c/code\u003e\u003c/a\u003e Fix grammatical errors in Resolver doc comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/ksp/commit/c19f255fd96877bbc5b1b18c227c2a3d56883a24\"\u003e\u003ccode\u003ec19f255\u003c/code\u003e\u003c/a\u003e Merge equal EXPECT NEXT and EXPECT CURRENT in javaBackingFieldUsedInKotlin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/ksp/commit/d3df886048fc6512a06649371b2c1917863160cf\"\u003e\u003ccode\u003ed3df886\u003c/code\u003e\u003c/a\u003e Add test for getting default annotation values in KMP\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/ksp/commit/3bcac2082b36d3be96ea37070fa007d26233af88\"\u003e\u003ccode\u003e3bcac20\u003c/code\u003e\u003c/a\u003e Mark testJavaBackingFieldUsedInKotlin as fixed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/ksp/commit/e74bb5f56328808f1ad37ba62e66ec3a8e72976e\"\u003e\u003ccode\u003ee74bb5f\u003c/code\u003e\u003c/a\u003e Update expected test output in libOrigins\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/ksp/commit/c9b1d406ed5bebb34411c4036fecbf0b014b013a\"\u003e\u003ccode\u003ec9b1d40\u003c/code\u003e\u003c/a\u003e Use KSSyntheticJavaBackingFieldImpl in KSPropertyDeclarationImpl\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/ksp/commit/afefe15219f9ef70363390236eca8e012c12f6d2\"\u003e\u003ccode\u003eafefe15\u003c/code\u003e\u003c/a\u003e Add KSSyntheticJavaBackingFieldImpl\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/ksp/commit/2da07c146f61caa0428c97df1152466a7a2aa7d5\"\u003e\u003ccode\u003e2da07c1\u003c/code\u003e\u003c/a\u003e Add test for missing synthetic Java fields\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/ksp/commit/70335307edb9381edd707e5c0eabedf22300c3ab\"\u003e\u003ccode\u003e7033530\u003c/code\u003e\u003c/a\u003e Fix visibility modifiers for Kotlin-based backing fields\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/ksp/compare/2.3.7...2.3.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/megamaced/nc_collectives_android/pull/51","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/megamaced%2Fnc_collectives_android/issues/51","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/51/packages"}},{"old_version":"2.4.0","new_version":"2.4.20","update_type":"patch","path":null,"pr_created_at":"2026-09-13T16:02:15.000Z","version_change":"2.4.0 → 2.4.20","issue":{"uuid":"5441148016","node_id":"PR_kwDORV9tWc8AAAABDWMbXg","number":32,"state":"open","title":"chore(deps): bump the dependencies group across 1 directory with 10 updates","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-13T16:02:15.000Z","updated_at":"2026-09-13T16:02:41.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"dependencies","update_count":10,"packages":[{"name":"gradle-wrapper","old_version":"9.6.1","new_version":"9.7.1","repository_url":"https://github.com/gradle/gradle"},{"name":"io.ktor:ktor-client-core","old_version":"3.5.1","new_version":"3.5.2","repository_url":"https://github.com/ktorio/ktor"},{"name":"io.kotest:kotest-runner-junit5-jvm","old_version":"6.2.1","new_version":"6.2.4","repository_url":"https://github.com/kotest/kotest"},{"name":"io.kotest:kotest-assertions-core-jvm","old_version":"6.2.1","new_version":"6.2.4","repository_url":"https://github.com/kotest/kotest"},{"name":"org.slf4j:slf4j-simple","old_version":"2.0.18","new_version":"2.0.19"},{"name":"org.jetbrains.kotlin.multiplatform","old_version":"2.4.0","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.4.0","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.native.cocoapods","old_version":"2.4.0","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"}],"path":null,"ecosystem":"maven"},"body":"Bumps the dependencies group with 8 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [gradle-wrapper](https://github.com/gradle/gradle) | `9.6.1` | `9.7.1` |\n| [io.ktor:ktor-client-core](https://github.com/ktorio/ktor) | `3.5.1` | `3.5.2` |\n| [io.kotest:kotest-runner-junit5-jvm](https://github.com/kotest/kotest) | `6.2.1` | `6.2.4` |\n| [io.kotest:kotest-assertions-core-jvm](https://github.com/kotest/kotest) | `6.2.1` | `6.2.4` |\n| org.slf4j:slf4j-simple | `2.0.18` | `2.0.19` |\n| [org.jetbrains.kotlin.multiplatform](https://github.com/JetBrains/kotlin) | `2.4.0` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.serialization](https://github.com/JetBrains/kotlin) | `2.4.0` | `2.4.20` |\n| [org.jetbrains.kotlin.native.cocoapods](https://github.com/JetBrains/kotlin) | `2.4.0` | `2.4.20` |\n\n\nUpdates `gradle-wrapper` from 9.6.1 to 9.7.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gradle/gradle/releases\"\u003egradle-wrapper's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.7.1\u003c/h2\u003e\n\u003cp\u003eThe Gradle team is excited to announce Gradle 9.7.1.\u003c/p\u003e\n\u003cp\u003eThis is a patch release for 9.7.0. We recommend using 9.7.1 instead of 9.7.0.\u003c/p\u003e\n\u003cp\u003eHere are the highlights of 9.7.0 release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIsolated Projects graduates to incubating\u003c/li\u003e\n\u003cli\u003eBroader Configuration Cache compatibility\u003c/li\u003e\n\u003cli\u003eResilient Sync helps you fix broken builds\u003c/li\u003e\n\u003cli\u003eMore source locations in problem reports\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://docs.gradle.org/9.7.1/release-notes.html\"\u003eRead the Release Notes\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eWe would like to thank the following community members for their contributions to this release of Gradle:\n\u003ca href=\"https://github.com/aSemy\"\u003eAdam\u003c/a\u003e,\n\u003ca href=\"https://github.com/Gautam-aman\"\u003eAman Gautam\u003c/a\u003e,\n\u003ca href=\"https://github.com/YukiCodepth\"\u003eAman Kumar\u003c/a\u003e,\n\u003ca href=\"https://github.com/adubrouski\"\u003eAnton Dubrouski\u003c/a\u003e,\n\u003ca href=\"https://github.com/liutikas\"\u003eAurimas\u003c/a\u003e,\n\u003ca href=\"https://github.com/gbhavya07\"\u003egbhavya07\u003c/a\u003e,\n\u003ca href=\"https://github.com/joshfriend\"\u003eJosh Friend\u003c/a\u003e,\n\u003ca href=\"https://github.com/nicklauslittle-gov\"\u003enicklauslittle-gov\u003c/a\u003e,\n\u003ca href=\"https://github.com/psoni674\"\u003ePragati\u003c/a\u003e,\n\u003ca href=\"https://github.com/Project516\"\u003eproject516\u003c/a\u003e,\n\u003ca href=\"https://github.com/Uomocapra\"\u003eQin Mi\u003c/a\u003e,\n\u003ca href=\"https://github.com/rkdfx\"\u003eRavi\u003c/a\u003e,\n\u003ca href=\"https://github.com/sk-reddy17\"\u003esk-reddy17\u003c/a\u003e,\n\u003ca href=\"https://github.com/Suvrat1629\"\u003eSuvrat Acharya\u003c/a\u003e,\n\u003ca href=\"https://github.com/ShreckYe\"\u003eYongshun Ye\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eUpgrade instructions\u003c/h2\u003e\n\u003cp\u003eSwitch your build to use Gradle 9.7.1 by updating your wrapper:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e./gradlew :wrapper --gradle-version=9.7.1 \u0026amp;\u0026amp; ./gradlew :wrapper\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eSee the Gradle \u003ca href=\"https://docs.gradle.org/9.7.1/userguide/upgrading_version_9.html\"\u003e9.x upgrade guide\u003c/a\u003e to learn about deprecations, breaking changes and other considerations when upgrading.\u003c/p\u003e\n\u003cp\u003eFor Java, Groovy, Kotlin and Android compatibility, see the \u003ca href=\"https://docs.gradle.org/9.7.1/userguide/compatibility.html\"\u003efull compatibility notes\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eReporting problems\u003c/h2\u003e\n\u003cp\u003eIf you find a problem with this release, please file a bug on \u003ca href=\"https://github.com/gradle/gradle/issues\"\u003eGitHub Issues\u003c/a\u003e adhering to our issue guidelines.\nIf you're not sure you're encountering a bug, please use the \u003ca href=\"https://discuss.gradle.org/c/help-discuss\"\u003eforum\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eWe hope you will build happiness with Gradle, and we look forward to your feedback via \u003ca href=\"https://twitter.com/gradle\"\u003eTwitter\u003c/a\u003e or on \u003ca href=\"https://github.com/gradle\"\u003eGitHub\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003e9.7.0\u003c/h2\u003e\n\u003cp\u003eThe Gradle team is excited to announce Gradle 9.7.0.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/92f0512e7f06d84621afba191f75e265363890cf\"\u003e\u003ccode\u003e92f0512\u003c/code\u003e\u003c/a\u003e update fixed issues for 9.7.1 (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/38892\"\u003e#38892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/820ee75a99a179bbffa41bcedc6477b685fabb9f\"\u003e\u003ccode\u003e820ee75\u003c/code\u003e\u003c/a\u003e update fixed issues for 9.7.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/82c23f9bd2a89b4cc644e1f90a28a8668feb3dee\"\u003e\u003ccode\u003e82c23f9\u003c/code\u003e\u003c/a\u003e Fix annotation parameter ordering problem in KTS (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/38878\"\u003e#38878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/ef11a7268fe8cc8d6ab849ec911aa11220180553\"\u003e\u003ccode\u003eef11a72\u003c/code\u003e\u003c/a\u003e Fix annotation parameter ordering issue\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/bb0d8a974a71b1003efea41e4046e98855cd5ff8\"\u003e\u003ccode\u003ebb0d8a9\u003c/code\u003e\u003c/a\u003e Make relevant tests polyglot (run for multiple DSLs)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/336e129d7f95c03486acafc97abf59734acfed48\"\u003e\u003ccode\u003e336e129\u003c/code\u003e\u003c/a\u003e Update signing configuration (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/38874\"\u003e#38874\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/4bdf0da2dad9884d089a6062a45ea7183e7d735d\"\u003e\u003ccode\u003e4bdf0da\u003c/code\u003e\u003c/a\u003e Update signing configuration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/cd9b92c1b82856248cf1dc58b50378238bec7b52\"\u003e\u003ccode\u003ecd9b92c\u003c/code\u003e\u003c/a\u003e List issues resolved in 9.7.1 (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/38839\"\u003e#38839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/5f4e381964897ad8d6b99e5a7c77f26dba3259fb\"\u003e\u003ccode\u003e5f4e381\u003c/code\u003e\u003c/a\u003e List issues resolved in 9.7.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/1e08ab551367aeb5fb48b26e72807e1d2b27c939\"\u003e\u003ccode\u003e1e08ab5\u003c/code\u003e\u003c/a\u003e Keep type-use annotations in extracted ABI classes (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/38810\"\u003e#38810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gradle/gradle/compare/v9.6.1...v9.7.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `io.ktor:ktor-client-core` from 3.5.1 to 3.5.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ktorio/ktor/releases\"\u003eio.ktor:ktor-client-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.5.2\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003ePublished 31 July 2026\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8032\"\u003eKTOR-8032\u003c/a\u003e RateLimit: Allow limit requests based on authentication result\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9719\"\u003eKTOR-9719\u003c/a\u003e \u003ccode\u003eApplicationCall.isStaticContent\u003c/code\u003e returns false when called from plugin interceptors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8450\"\u003eKTOR-8450\u003c/a\u003e ContentNegotiation: it doesn't handle content type suffixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-7892\"\u003eKTOR-7892\u003c/a\u003e SwaggerUI: Missing oauth2-redirect.html support in the plugin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9759\"\u003eKTOR-9759\u003c/a\u003e Reject whitespace in URL hosts during parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9681\"\u003eKTOR-9681\u003c/a\u003e Update kotlinx-io to 0.9.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9743\"\u003eKTOR-9743\u003c/a\u003e ByteReadChannel.readLineStrict: Misleading definition of limit parameter in KDocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9504\"\u003eKTOR-9504\u003c/a\u003e Improve KDoc for EmbeddedServer.addShutdownHook\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugfixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9741\"\u003eKTOR-9741\u003c/a\u003e CIO: request-handler coroutine leak on half-closed idle connection after ≥1MB response\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-7661\"\u003eKTOR-7661\u003c/a\u003e Maven + YAML config file does not work\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9585\"\u003eKTOR-9585\u003c/a\u003e OpenAPI: JsonSchema title is truncated when it contains a dot\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9704\"\u003eKTOR-9704\u003c/a\u003e UTF-8 encoding in ktor-io bypasses JVM String.getBytes intrinsics, slowing every text response by 5-7x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9588\"\u003eKTOR-9588\u003c/a\u003e SSE client (CIO engine) sends spurious \u003ccode\u003eContent-Length: 0\u003c/code\u003e on body-less GET (RFC 9110 § 8.6 violation; rejected by AWS ELB)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9679\"\u003eKTOR-9679\u003c/a\u003e ByteReadChannel.readLine corrupts multi-byte UTF-8 by splitting a character at a buffer boundary\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9767\"\u003eKTOR-9767\u003c/a\u003e ByteReadChannel.readLineTo: Return read bytes count instead of decoded characters count \u003ca href=\"#\"\u003e\u003cimg src=\"https://img.shields.io/badge/%5BImpactful%20change%5D-orange?style=flat-square\" alt=\"\" /\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8992\"\u003eKTOR-8992\u003c/a\u003e HoconConfigLoader is not loaded when ktor-server-config-yaml on the classpath\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9698\"\u003eKTOR-9698\u003c/a\u003e OpenAPI: schema for kotlinx.serialization sealed types omits discriminator property in variant schemas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9690\"\u003eKTOR-9690\u003c/a\u003e Netty: in-flight requests are aborted on stop(), ignoring shutdown grace period\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8903\"\u003eKTOR-8903\u003c/a\u003e Netty: Close channel connection on errors properly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9707\"\u003eKTOR-9707\u003c/a\u003e SaveBody performance regression\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9703\"\u003eKTOR-9703\u003c/a\u003e Inefficient text reading function in DefaultTransform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9711\"\u003eKTOR-9711\u003c/a\u003e Netty HTTP/2: a single client-canceled stream (RST_STREAM) breaks response flushing for the whole connection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9688\"\u003eKTOR-9688\u003c/a\u003e RateLimit: No access to principal when wrapped with authentication since 3.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9677\"\u003eKTOR-9677\u003c/a\u003e Auto-reloading: server is reloaded only once since 3.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9683\"\u003eKTOR-9683\u003c/a\u003e Sockets: Canceling a SelectorManager job doesn't close it properly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9671\"\u003eKTOR-9671\u003c/a\u003e Darwin: Semicolons in URL path are sanitized\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ktorio/ktor/blob/main/CHANGELOG.md\"\u003eio.ktor:ktor-client-core's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.5.2\u003c/h1\u003e\n\u003cblockquote\u003e\n\u003cp\u003ePublished 31 July 2026\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8032\"\u003eKTOR-8032\u003c/a\u003e RateLimit: Allow limit requests based on authentication result\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9719\"\u003eKTOR-9719\u003c/a\u003e \u003ccode\u003eApplicationCall.isStaticContent\u003c/code\u003e returns false when called from plugin interceptors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8450\"\u003eKTOR-8450\u003c/a\u003e ContentNegotiation: it doesn't handle content type suffixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-7892\"\u003eKTOR-7892\u003c/a\u003e SwaggerUI: Missing oauth2-redirect.html support in the plugin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9759\"\u003eKTOR-9759\u003c/a\u003e Reject whitespace in URL hosts during parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9681\"\u003eKTOR-9681\u003c/a\u003e Update kotlinx-io to 0.9.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9743\"\u003eKTOR-9743\u003c/a\u003e ByteReadChannel.readLineStrict: Misleading definition of limit parameter in KDocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9504\"\u003eKTOR-9504\u003c/a\u003e Improve KDoc for EmbeddedServer.addShutdownHook\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugfixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9741\"\u003eKTOR-9741\u003c/a\u003e CIO: request-handler coroutine leak on half-closed idle connection after ≥1MB response\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-7661\"\u003eKTOR-7661\u003c/a\u003e Maven + YAML config file does not work\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9585\"\u003eKTOR-9585\u003c/a\u003e OpenAPI: JsonSchema title is truncated when it contains a dot\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9704\"\u003eKTOR-9704\u003c/a\u003e UTF-8 encoding in ktor-io bypasses JVM String.getBytes intrinsics, slowing every text response by 5-7x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9588\"\u003eKTOR-9588\u003c/a\u003e SSE client (CIO engine) sends spurious \u003ccode\u003eContent-Length: 0\u003c/code\u003e on body-less GET (RFC 9110 § 8.6 violation; rejected by AWS ELB)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9679\"\u003eKTOR-9679\u003c/a\u003e ByteReadChannel.readLine corrupts multi-byte UTF-8 by splitting a character at a buffer boundary\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9767\"\u003eKTOR-9767\u003c/a\u003e ByteReadChannel.readLineTo: Return read bytes count instead of decoded characters count \u003ca href=\"#\"\u003e\u003cimg src=\"https://img.shields.io/badge/%5BImpactful%20change%5D-orange?style=flat-square\" alt=\"\" /\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8992\"\u003eKTOR-8992\u003c/a\u003e HoconConfigLoader is not loaded when ktor-server-config-yaml on the classpath\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9698\"\u003eKTOR-9698\u003c/a\u003e OpenAPI: schema for kotlinx.serialization sealed types omits discriminator property in variant schemas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9690\"\u003eKTOR-9690\u003c/a\u003e Netty: in-flight requests are aborted on stop(), ignoring shutdown grace period\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8903\"\u003eKTOR-8903\u003c/a\u003e Netty: Close channel connection on errors properly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9707\"\u003eKTOR-9707\u003c/a\u003e SaveBody performance regression\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9703\"\u003eKTOR-9703\u003c/a\u003e Inefficient text reading function in DefaultTransform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9711\"\u003eKTOR-9711\u003c/a\u003e Netty HTTP/2: a single client-canceled stream (RST_STREAM) breaks response flushing for the whole connection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9688\"\u003eKTOR-9688\u003c/a\u003e RateLimit: No access to principal when wrapped with authentication since 3.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9677\"\u003eKTOR-9677\u003c/a\u003e Auto-reloading: server is reloaded only once since 3.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9683\"\u003eKTOR-9683\u003c/a\u003e Sockets: Canceling a SelectorManager job doesn't close it properly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9671\"\u003eKTOR-9671\u003c/a\u003e Darwin: Semicolons in URL path are sanitized\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/01c469a85f913aeb5aff36e5c4445ed04b896e84\"\u003e\u003ccode\u003e01c469a\u003c/code\u003e\u003c/a\u003e Release 3.5.2 (\u003ca href=\"https://redirect.github.com/ktorio/ktor/issues/5781\"\u003e#5781\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/c965a0ce85e1f1da30c0af1d8d8470c88d5c49a6\"\u003e\u003ccode\u003ec965a0c\u003c/code\u003e\u003c/a\u003e KTOR-9741 Prevent CIO request handler leak (\u003ca href=\"https://redirect.github.com/ktorio/ktor/issues/5783\"\u003e#5783\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/74df4585b80202ffc6830de5ec616042efff0136\"\u003e\u003ccode\u003e74df458\u003c/code\u003e\u003c/a\u003e chore: fix some comments to improve readability\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/2672567708f6fb9f5d301a5d4952ae8266bbbb78\"\u003e\u003ccode\u003e2672567\u003c/code\u003e\u003c/a\u003e [KTOR-9704] Optimized encoding flow for UTF-8 (\u003ca href=\"https://redirect.github.com/ktorio/ktor/issues/5743\"\u003e#5743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/d5680edbe6ae5f0a0d49e628a2c38cf0ef773d92\"\u003e\u003ccode\u003ed5680ed\u003c/code\u003e\u003c/a\u003e KTOR-5391: Document ECDSA certificate limitation for client authentication (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/9b0f356877111822d781fc74fb0352a12b84e4f2\"\u003e\u003ccode\u003e9b0f356\u003c/code\u003e\u003c/a\u003e \u003ccode\u003esomething::javaClass.name\u003c/code\u003e is not the name of the class of something but `\u0026quot;j...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/58256cd084f49338f738e3bcece15b54184ac299\"\u003e\u003ccode\u003e58256cd\u003c/code\u003e\u003c/a\u003e KTOR-9743 Clarify readLine documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/088bd60702eb2f59a0c20fb989ecdf2b12445452\"\u003e\u003ccode\u003e088bd60\u003c/code\u003e\u003c/a\u003e KTOR-9679 Fix regressions caused by adding buffering\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/167176a8d960078e9d39625776526a90b165a6f3\"\u003e\u003ccode\u003e167176a\u003c/code\u003e\u003c/a\u003e KTOR-9588 Do not send Content-Length: 0 for body-less GET requests (\u003ca href=\"https://redirect.github.com/ktorio/ktor/issues/5620\"\u003e#5620\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/7fb0844702b4e8e00ed751d36d010a6293a33eb1\"\u003e\u003ccode\u003e7fb0844\u003c/code\u003e\u003c/a\u003e KTOR-9585 Fix schema title trimming\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ktorio/ktor/compare/3.5.1...3.5.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `io.ktor:ktor-client-content-negotiation` from 3.5.1 to 3.5.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ktorio/ktor/releases\"\u003eio.ktor:ktor-client-content-negotiation's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.5.2\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003ePublished 31 July 2026\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8032\"\u003eKTOR-8032\u003c/a\u003e RateLimit: Allow limit requests based on authentication result\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9719\"\u003eKTOR-9719\u003c/a\u003e \u003ccode\u003eApplicationCall.isStaticContent\u003c/code\u003e returns false when called from plugin interceptors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8450\"\u003eKTOR-8450\u003c/a\u003e ContentNegotiation: it doesn't handle content type suffixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-7892\"\u003eKTOR-7892\u003c/a\u003e SwaggerUI: Missing oauth2-redirect.html support in the plugin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9759\"\u003eKTOR-9759\u003c/a\u003e Reject whitespace in URL hosts during parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9681\"\u003eKTOR-9681\u003c/a\u003e Update kotlinx-io to 0.9.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9743\"\u003eKTOR-9743\u003c/a\u003e ByteReadChannel.readLineStrict: Misleading definition of limit parameter in KDocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9504\"\u003eKTOR-9504\u003c/a\u003e Improve KDoc for EmbeddedServer.addShutdownHook\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugfixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9741\"\u003eKTOR-9741\u003c/a\u003e CIO: request-handler coroutine leak on half-closed idle connection after ≥1MB response\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-7661\"\u003eKTOR-7661\u003c/a\u003e Maven + YAML config file does not work\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9585\"\u003eKTOR-9585\u003c/a\u003e OpenAPI: JsonSchema title is truncated when it contains a dot\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9704\"\u003eKTOR-9704\u003c/a\u003e UTF-8 encoding in ktor-io bypasses JVM String.getBytes intrinsics, slowing every text response by 5-7x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9588\"\u003eKTOR-9588\u003c/a\u003e SSE client (CIO engine) sends spurious \u003ccode\u003eContent-Length: 0\u003c/code\u003e on body-less GET (RFC 9110 § 8.6 violation; rejected by AWS ELB)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9679\"\u003eKTOR-9679\u003c/a\u003e ByteReadChannel.readLine corrupts multi-byte UTF-8 by splitting a character at a buffer boundary\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9767\"\u003eKTOR-9767\u003c/a\u003e ByteReadChannel.readLineTo: Return read bytes count instead of decoded characters count \u003ca href=\"#\"\u003e\u003cimg src=\"https://img.shields.io/badge/%5BImpactful%20change%5D-orange?style=flat-square\" alt=\"\" /\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8992\"\u003eKTOR-8992\u003c/a\u003e HoconConfigLoader is not loaded when ktor-server-config-yaml on the classpath\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9698\"\u003eKTOR-9698\u003c/a\u003e OpenAPI: schema for kotlinx.serialization sealed types omits discriminator property in variant schemas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9690\"\u003eKTOR-9690\u003c/a\u003e Netty: in-flight requests are aborted on stop(), ignoring shutdown grace period\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8903\"\u003eKTOR-8903\u003c/a\u003e Netty: Close channel connection on errors properly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9707\"\u003eKTOR-9707\u003c/a\u003e SaveBody performance regression\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9703\"\u003eKTOR-9703\u003c/a\u003e Inefficient text reading function in DefaultTransform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9711\"\u003eKTOR-9711\u003c/a\u003e Netty HTTP/2: a single client-canceled stream (RST_STREAM) breaks response flushing for the whole connection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9688\"\u003eKTOR-9688\u003c/a\u003e RateLimit: No access to principal when wrapped with authentication since 3.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9677\"\u003eKTOR-9677\u003c/a\u003e Auto-reloading: server is reloaded only once since 3.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9683\"\u003eKTOR-9683\u003c/a\u003e Sockets: Canceling a SelectorManager job doesn't close it properly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9671\"\u003eKTOR-9671\u003c/a\u003e Darwin: Semicolons in URL path are sanitized\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ktorio/ktor/blob/main/CHANGELOG.md\"\u003eio.ktor:ktor-client-content-negotiation's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.5.2\u003c/h1\u003e\n\u003cblockquote\u003e\n\u003cp\u003ePublished 31 July 2026\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8032\"\u003eKTOR-8032\u003c/a\u003e RateLimit: Allow limit requests based on authentication result\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9719\"\u003eKTOR-9719\u003c/a\u003e \u003ccode\u003eApplicationCall.isStaticContent\u003c/code\u003e returns false when called from plugin interceptors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8450\"\u003eKTOR-8450\u003c/a\u003e ContentNegotiation: it doesn't handle content type suffixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-7892\"\u003eKTOR-7892\u003c/a\u003e SwaggerUI: Missing oauth2-redirect.html support in the plugin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9759\"\u003eKTOR-9759\u003c/a\u003e Reject whitespace in URL hosts during parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9681\"\u003eKTOR-9681\u003c/a\u003e Update kotlinx-io to 0.9.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9743\"\u003eKTOR-9743\u003c/a\u003e ByteReadChannel.readLineStrict: Misleading definition of limit parameter in KDocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9504\"\u003eKTOR-9504\u003c/a\u003e Improve KDoc for EmbeddedServer.addShutdownHook\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugfixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9741\"\u003eKTOR-9741\u003c/a\u003e CIO: request-handler coroutine leak on half-closed idle connection after ≥1MB response\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-7661\"\u003eKTOR-7661\u003c/a\u003e Maven + YAML config file does not work\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9585\"\u003eKTOR-9585\u003c/a\u003e OpenAPI: JsonSchema title is truncated when it contains a dot\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9704\"\u003eKTOR-9704\u003c/a\u003e UTF-8 encoding in ktor-io bypasses JVM String.getBytes intrinsics, slowing every text response by 5-7x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9588\"\u003eKTOR-9588\u003c/a\u003e SSE client (CIO engine) sends spurious \u003ccode\u003eContent-Length: 0\u003c/code\u003e on body-less GET (RFC 9110 § 8.6 violation; rejected by AWS ELB)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9679\"\u003eKTOR-9679\u003c/a\u003e ByteReadChannel.readLine corrupts multi-byte UTF-8 by splitting a character at a buffer boundary\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9767\"\u003eKTOR-9767\u003c/a\u003e ByteReadChannel.readLineTo: Return read bytes count instead of decoded characters count \u003ca href=\"#\"\u003e\u003cimg src=\"https://img.shields.io/badge/%5BImpactful%20change%5D-orange?style=flat-square\" alt=\"\" /\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8992\"\u003eKTOR-8992\u003c/a\u003e HoconConfigLoader is not loaded when ktor-server-config-yaml on the classpath\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9698\"\u003eKTOR-9698\u003c/a\u003e OpenAPI: schema for kotlinx.serialization sealed types omits discriminator property in variant schemas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9690\"\u003eKTOR-9690\u003c/a\u003e Netty: in-flight requests are aborted on stop(), ignoring shutdown grace period\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8903\"\u003eKTOR-8903\u003c/a\u003e Netty: Close channel connection on errors properly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9707\"\u003eKTOR-9707\u003c/a\u003e SaveBody performance regression\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9703\"\u003eKTOR-9703\u003c/a\u003e Inefficient text reading function in DefaultTransform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9711\"\u003eKTOR-9711\u003c/a\u003e Netty HTTP/2: a single client-canceled stream (RST_STREAM) breaks response flushing for the whole connection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9688\"\u003eKTOR-9688\u003c/a\u003e RateLimit: No access to principal when wrapped with authentication since 3.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9677\"\u003eKTOR-9677\u003c/a\u003e Auto-reloading: server is reloaded only once since 3.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9683\"\u003eKTOR-9683\u003c/a\u003e Sockets: Canceling a SelectorManager job doesn't close it properly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9671\"\u003eKTOR-9671\u003c/a\u003e Darwin: Semicolons in URL path are sanitized\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/01c469a85f913aeb5aff36e5c4445ed04b896e84\"\u003e\u003ccode\u003e01c469a\u003c/code\u003e\u003c/a\u003e Release 3.5.2 (\u003ca href=\"https://redirect.github.com/ktorio/ktor/issues/5781\"\u003e#5781\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/c965a0ce85e1f1da30c0af1d8d8470c88d5c49a6\"\u003e\u003ccode\u003ec965a0c\u003c/code\u003e\u003c/a\u003e KTOR-9741 Prevent CIO request handler leak (\u003ca href=\"https://redirect.github.com/ktorio/ktor/issues/5783\"\u003e#5783\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/74df4585b80202ffc6830de5ec616042efff0136\"\u003e\u003ccode\u003e74df458\u003c/code\u003e\u003c/a\u003e chore: fix some comments to improve readability\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/2672567708f6fb9f5d301a5d4952ae8266bbbb78\"\u003e\u003ccode\u003e2672567\u003c/code\u003e\u003c/a\u003e [KTOR-9704] Optimized encoding flow for UTF-8 (\u003ca href=\"https://redirect.github.com/ktorio/ktor/issues/5743\"\u003e#5743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/d5680edbe6ae5f0a0d49e628a2c38cf0ef773d92\"\u003e\u003ccode\u003ed5680ed\u003c/code\u003e\u003c/a\u003e KTOR-5391: Document ECDSA certificate limitation for client authentication (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/9b0f356877111822d781fc74fb0352a12b84e4f2\"\u003e\u003ccode\u003e9b0f356\u003c/code\u003e\u003c/a\u003e \u003ccode\u003esomething::javaClass.name\u003c/code\u003e is not the name of the class of something but `\u0026quot;j...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/58256cd084f49338f738e3bcece15b54184ac299\"\u003e\u003ccode\u003e58256cd\u003c/code\u003e\u003c/a\u003e KTOR-9743 Clarify readLine documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/088bd60702eb2f59a0c20fb989ecdf2b12445452\"\u003e\u003ccode\u003e088bd60\u003c/code\u003e\u003c/a\u003e KTOR-9679 Fix regressions caused by adding buffering\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/167176a8d960078e9d39625776526a90b165a6f3\"\u003e\u003ccode\u003e167176a\u003c/code\u003e\u003c/a\u003e KTOR-9588 Do not send Content-Length: 0 for body-less GET requests (\u003ca href=\"https://redirect.github.com/ktorio/ktor/issues/5620\"\u003e#5620\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/7fb0844702b4e8e00ed751d36d010a6293a33eb1\"\u003e\u003ccode\u003e7fb0844\u003c/code\u003e\u003c/a\u003e KTOR-9585 Fix schema title trimming\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ktorio/ktor/compare/3.5.1...3.5.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `io.ktor:ktor-serialization-kotlinx-json` from 3.5.1 to 3.5.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ktorio/ktor/releases\"\u003eio.ktor:ktor-serialization-kotlinx-json's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.5.2\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003ePublished 31 July 2026\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8032\"\u003eKTOR-8032\u003c/a\u003e RateLimit: Allow limit requests based on authentication result\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9719\"\u003eKTOR-9719\u003c/a\u003e \u003ccode\u003eApplicationCall.isStaticContent\u003c/code\u003e returns false when called from plugin interceptors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8450\"\u003eKTOR-8450\u003c/a\u003e ContentNegotiation: it doesn't handle content type suffixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-7892\"\u003eKTOR-7892\u003c/a\u003e SwaggerUI: Missing oauth2-redirect.html support in the plugin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9759\"\u003eKTOR-9759\u003c/a\u003e Reject whitespace in URL hosts during parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9681\"\u003eKTOR-9681\u003c/a\u003e Update kotlinx-io to 0.9.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9743\"\u003eKTOR-9743\u003c/a\u003e ByteReadChannel.readLineStrict: Misleading definition of limit parameter in KDocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9504\"\u003eKTOR-9504\u003c/a\u003e Improve KDoc for EmbeddedServer.addShutdownHook\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugfixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9741\"\u003eKTOR-9741\u003c/a\u003e CIO: request-handler coroutine leak on half-closed idle connection after ≥1MB response\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-7661\"\u003eKTOR-7661\u003c/a\u003e Maven + YAML config file does not work\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9585\"\u003eKTOR-9585\u003c/a\u003e OpenAPI: JsonSchema title is truncated when it contains a dot\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9704\"\u003eKTOR-9704\u003c/a\u003e UTF-8 encoding in ktor-io bypasses JVM String.getBytes intrinsics, slowing every text response by 5-7x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9588\"\u003eKTOR-9588\u003c/a\u003e SSE client (CIO engine) sends spurious \u003ccode\u003eContent-Length: 0\u003c/code\u003e on body-less GET (RFC 9110 § 8.6 violation; rejected by AWS ELB)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9679\"\u003eKTOR-9679\u003c/a\u003e ByteReadChannel.readLine corrupts multi-byte UTF-8 by splitting a character at a buffer boundary\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9767\"\u003eKTOR-9767\u003c/a\u003e ByteReadChannel.readLineTo: Return read bytes count instead of decoded characters count \u003ca href=\"#\"\u003e\u003cimg src=\"https://img.shields.io/badge/%5BImpactful%20change%5D-orange?style=flat-square\" alt=\"\" /\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8992\"\u003eKTOR-8992\u003c/a\u003e HoconConfigLoader is not loaded when ktor-server-config-yaml on the classpath\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9698\"\u003eKTOR-9698\u003c/a\u003e OpenAPI: schema for kotlinx.serialization sealed types omits discriminator property in variant schemas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9690\"\u003eKTOR-9690\u003c/a\u003e Netty: in-flight requests are aborted on stop(), ignoring shutdown grace period\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8903\"\u003eKTOR-8903\u003c/a\u003e Netty: Close channel connection on errors properly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9707\"\u003eKTOR-9707\u003c/a\u003e SaveBody performance regression\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9703\"\u003eKTOR-9703\u003c/a\u003e Inefficient text reading function in DefaultTransform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9711\"\u003eKTOR-9711\u003c/a\u003e Netty HTTP/2: a single client-canceled stream (RST_STREAM) breaks response flushing for the whole connection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9688\"\u003eKTOR-9688\u003c/a\u003e RateLimit: No access to principal when wrapped with authentication since 3.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9677\"\u003eKTOR-9677\u003c/a\u003e Auto-reloading: server is reloaded only once since 3.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9683\"\u003eKTOR-9683\u003c/a\u003e Sockets: Canceling a SelectorManager job doesn't close it properly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9671\"\u003eKTOR-9671\u003c/a\u003e Darwin: Semicolons in URL path are sanitized\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ktorio/ktor/blob/main/CHANGELOG.md\"\u003eio.ktor:ktor-serialization-kotlinx-json's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.5.2\u003c/h1\u003e\n\u003cblockquote\u003e\n\u003cp\u003ePublished 31 July 2026\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8032\"\u003eKTOR-8032\u003c/a\u003e RateLimit: Allow limit requests based on authentication result\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9719\"\u003eKTOR-9719\u003c/a\u003e \u003ccode\u003eApplicationCall.isStaticContent\u003c/code\u003e returns false when called from plugin interceptors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8450\"\u003eKTOR-8450\u003c/a\u003e ContentNegotiation: it doesn't handle content type suffixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-7892\"\u003eKTOR-7892\u003c/a\u003e SwaggerUI: Missing oauth2-redirect.html support in the plugin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9759\"\u003eKTOR-9759\u003c/a\u003e Reject whitespace in URL hosts during parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9681\"\u003eKTOR-9681\u003c/a\u003e Update kotlinx-io to 0.9.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9743\"\u003eKTOR-9743\u003c/a\u003e ByteReadChannel.readLineStrict: Misleading definition of limit parameter in KDocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9504\"\u003eKTOR-9504\u003c/a\u003e Improve KDoc for EmbeddedServer.addShutdownHook\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugfixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9741\"\u003eKTOR-9741\u003c/a\u003e CIO: request-handler coroutine leak on half-closed idle connection after ≥1MB response\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-7661\"\u003eKTOR-7661\u003c/a\u003e Maven + YAML config file does not work\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9585\"\u003eKTOR-9585\u003c/a\u003e OpenAPI: JsonSchema title is truncated when it contains a dot\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9704\"\u003eKTOR-9704\u003c/a\u003e UTF-8 encoding in ktor-io bypasses JVM String.getBytes intrinsics, slowing every text response by 5-7x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9588\"\u003eKTOR-9588\u003c/a\u003e SSE client (CIO engine) sends spurious \u003ccode\u003eContent-Length: 0\u003c/code\u003e on body-less GET (RFC 9110 § 8.6 violation; rejected by AWS ELB)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9679\"\u003eKTOR-9679\u003c/a\u003e ByteReadChannel.readLine corrupts multi-byte UTF-8 by splitting a character at a buffer boundary\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9767\"\u003eKTOR-9767\u003c/a\u003e ByteReadChannel.readLineTo: Return read bytes count instead of decoded characters count \u003ca href=\"#\"\u003e\u003cimg src=\"https://img.shields.io/badge/%5BImpactful%20change%5D-orange?style=flat-square\" alt=\"\" /\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8992\"\u003eKTOR-8992\u003c/a\u003e HoconConfigLoader is not loaded when ktor-server-config-yaml on the classpath\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9698\"\u003eKTOR-9698\u003c/a\u003e OpenAPI: schema for kotlinx.serialization sealed types omits discriminator property in variant schemas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9690\"\u003eKTOR-9690\u003c/a\u003e Netty: in-flight requests are aborted on stop(), ignoring shutdown grace period\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8903\"\u003eKTOR-8903\u003c/a\u003e Netty: Close channel connection on errors properly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9707\"\u003eKTOR-9707\u003c/a\u003e SaveBody performance regression\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9703\"\u003eKTOR-9703\u003c/a\u003e Inefficient text reading function in DefaultTransform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9711\"\u003eKTOR-9711\u003c/a\u003e Netty HTTP/2: a single client-canceled stream (RST_STREAM) breaks response flushing for the whole connection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9688\"\u003eKTOR-9688\u003c/a\u003e RateLimit: No access to principal when wrapped with authentication since 3.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9677\"\u003eKTOR-9677\u003c/a\u003e Auto-reloading: server is reloaded only once since 3.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9683\"\u003eKTOR-9683\u003c/a\u003e Sockets: Canceling a SelectorManager job doesn't close it properly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9671\"\u003eKTOR-9671\u003c/a\u003e Darwin: Semicolons in URL path are sanitized\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/01c469a85f913aeb5aff36e5c4445ed04b896e84\"\u003e\u003ccode\u003e01c469a\u003c/code\u003e\u003c/a\u003e Release 3.5.2 (\u003ca href=\"https://redirect.github.com/ktorio/ktor/issues/5781\"\u003e#5781\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/c965a0ce85e1f1da30c0af1d8d8470c88d5c49a6\"\u003e\u003ccode\u003ec965a0c\u003c/code\u003e\u003c/a\u003e KTOR-9741 Prevent CIO request handler leak (\u003ca href=\"https://redirect.github.com/ktorio/ktor/issues/5783\"\u003e#5783\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/74df4585b80202ffc6830de5ec616042efff0136\"\u003e\u003ccode\u003e74df458\u003c/code\u003e\u003c/a\u003e chore: fix some comments to improve readability\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/2672567708f6fb9f5d301a5d4952ae8266bbbb78\"\u003e\u003ccode\u003e2672567\u003c/code\u003e\u003c/a\u003e [KTOR-9704] Optimized encoding flow for UTF-8 (\u003ca href=\"https://redirect.github.com/ktorio/ktor/issues/5743\"\u003e#5743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/d5680edbe6ae5f0a0d49e628a2c38cf0ef773d92\"\u003e\u003ccode\u003ed5680ed\u003c/code\u003e\u003c/a\u003e KTOR-5391: Document ECDSA certificate limitation for client authentication (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/9b0f356877111822d781fc74fb0352a12b84e4f2\"\u003e\u003ccode\u003e9b0f356\u003c/code\u003e\u003c/a\u003e \u003ccode\u003esomething::javaClass.name\u003c/code\u003e is not the name of the class of something but `\u0026quot;j...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/58256cd084f49338f738e3bcece15b54184ac299\"\u003e\u003ccode\u003e58256cd\u003c/code\u003e\u003c/a\u003e KTOR-9743 Clarify readLine documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/088bd60702eb2f59a0c20fb989ecdf2b12445452\"\u003e\u003ccode\u003e088bd60\u003c/code\u003e\u003c/a\u003e KTOR-9679 Fix regressions caused by adding buffering\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/167176a8d960078e9d39625776526a90b165a6f3\"\u003e\u003ccode\u003e167176a\u003c/code\u003e\u003c/a\u003e KTOR-9588 Do not send Content-Length: 0 for body-less GET requests (\u003ca href=\"https://redirect.github.com/ktorio/ktor/issues/5620\"\u003e#5620\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ktorio/ktor/commit/7fb0844702b4e8e00ed751d36d010a6293a33eb1\"\u003e\u003ccode\u003e7fb0844\u003c/code\u003e\u003c/a\u003e KTOR-9585 Fix schema title trimming\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ktorio/ktor/compare/3.5.1...3.5.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `io.kotest:kotest-runner-junit5-jvm` from 6.2.1 to 6.2.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kotest/kotest/releases\"\u003eio.kotest:kotest-runner-junit5-jvm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev6.2.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAlex/same time offset date time  (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6180\"\u003e#6180\u003c/a\u003e) by \u003ca href=\"https://github.com/AlexCue987\"\u003e\u003ccode\u003e@​AlexCue987\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6181\"\u003ekotest/kotest#6181\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlex/range intersect details  (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6183\"\u003e#6183\u003c/a\u003e) by \u003ca href=\"https://github.com/AlexCue987\"\u003e\u003ccode\u003e@​AlexCue987\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6184\"\u003ekotest/kotest#6184\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eForce commons-beanutils to 1.11.0 (CVE-2025-48734) by \u003ca href=\"https://github.com/sksamuel\"\u003e\u003ccode\u003e@​sksamuel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6187\"\u003ekotest/kotest#6187\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate kotlinx-datetime to 0.8.0 by \u003ca href=\"https://github.com/sksamuel\"\u003e\u003ccode\u003e@​sksamuel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6186\"\u003ekotest/kotest#6186\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: route a few hardcoded dependency/plugin versions through the version catalog by \u003ca href=\"https://github.com/stlpine\"\u003e\u003ccode\u003e@​stlpine\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6189\"\u003ekotest/kotest#6189\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echeck gradle wrapper gh action by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6192\"\u003ekotest/kotest#6192\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(assertions): state the containExactCopies lower bound as at least 1 by \u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6193\"\u003ekotest/kotest#6193\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGeneral improvements - framework by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6190\"\u003ekotest/kotest#6190\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGeneral improvements - IJ plugin by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6191\"\u003ekotest/kotest#6191\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix jump to source by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6195\"\u003ekotest/kotest#6195\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependency net.bytebuddy:byte-buddy to v1.18.11 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6202\"\u003ekotest/kotest#6202\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependency io.github.classgraph:classgraph to v4.8.186 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6201\"\u003ekotest/kotest#6201\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupdate docs to clarify that \u003ccode\u003ecopies\u003c/code\u003e in shouldContainExactCopies must be 1 or higher by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6207\"\u003ekotest/kotest#6207\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003espring extension improvements by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6204\"\u003ekotest/kotest#6204\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003esourceRef improvements by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6203\"\u003ekotest/kotest#6203\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eintroduce a TeamCity renderer that allows tree view and force it for our legacy IJ plugin by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6210\"\u003ekotest/kotest#6210\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix kdoc on StrictThrowableHandling by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6212\"\u003ekotest/kotest#6212\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003emake ai skill available to users via claude marketplace and tie versioning to kotest releases by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6211\"\u003ekotest/kotest#6211\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003espec tags cache by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6206\"\u003ekotest/kotest#6206\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ejunit testFinished improvements by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6205\"\u003ekotest/kotest#6205\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd module-factory support to KoinExtension (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6006\"\u003e#6006\u003c/a\u003e) by \u003ca href=\"https://github.com/sksamuel\"\u003e\u003ccode\u003e@​sksamuel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6138\"\u003ekotest/kotest#6138\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stlpine\"\u003e\u003ccode\u003e@​stlpine\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6189\"\u003ekotest/kotest#6189\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/kotest/kotest/compare/6.2.3...v6.2.4\"\u003ehttps://github.com/kotest/kotest/compare/6.2.3...v6.2.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.2.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocument Kotest Gradle plugin usage by \u003ca href=\"https://github.com/cfcromn\"\u003e\u003ccode\u003e@​cfcromn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6166\"\u003ekotest/kotest#6166\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd Double.atMost by \u003ca href=\"https://github.com/AlexCue987\"\u003e\u003ccode\u003e@​AlexCue987\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6175\"\u003ekotest/kotest#6175\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd offsetDateTime.shouldHaveSameInstantAsZonedDateTime(other: ZonedDateTime) by \u003ca href=\"https://github.com/AlexCue987\"\u003e\u003ccode\u003e@​AlexCue987\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6173\"\u003ekotest/kotest#6173\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ematch fields of data classes that are data objects by \u003ca href=\"https://github.com/AlexCue987\"\u003e\u003ccode\u003e@​AlexCue987\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6177\"\u003ekotest/kotest#6177\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecomplete custom styles DSL by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6179\"\u003ekotest/kotest#6179\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cfcromn\"\u003e\u003ccode\u003e@​cfcromn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6166\"\u003ekotest/kotest#6166\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/kotest/kotest/compare/6.2.2...v6.2.3\"\u003ehttps://github.com/kotest/kotest/compare/6.2.2...v6.2.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.2.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocument instant-based ZonedDateTime \u003ccode\u003eplusOrMinus\u003c/code\u003e comparison by \u003ca href=\"https://github.com/AlexCue987\"\u003e\u003ccode\u003e@​AlexCue987\u003c/code\u003e\u003c/a\u003e with \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6159\"\u003ekotest/kotest#6159\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd documentation for OffsetDateTime tolerance matcher by \u003ca href=\"https://github.com/AlexCue987\"\u003e\u003ccode\u003e@​AlexCue987\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6161\"\u003ekotest/kotest#6161\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typo in proptest config docs by \u003ca href=\"https://github.com/axiom\"\u003e\u003ccode\u003e@​axiom\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6155\"\u003ekotest/kotest#6155\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edisable return-value-checker for releases by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6165\"\u003ekotest/kotest#6165\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(kotest-framework-engine): Use display-name rendering for ignored tests in TeamCity listener by \u003ca href=\"https://github.com/sksamuel\"\u003e\u003ccode\u003e@​sksamuel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6119\"\u003ekotest/kotest#6119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(kotest-assertions-core): Handle null map values in shouldBeEqualUsingFields by \u003ca href=\"https://github.com/sksamuel\"\u003e\u003ccode\u003e@​sksamuel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6112\"\u003ekotest/kotest#6112\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kotest/kotest/commit/736a47b8ab4305e8aef76237b7792fc499cf50a1\"\u003e\u003ccode\u003e736a47b\u003c/code\u003e\u003c/a\u003e Add module-factory support to KoinExtension (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6006\"\u003e#6006\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6138\"\u003e#6138\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kotest/kotest/commit/cb91c7e167f9184f23e0bec5941a7701560d2c99\"\u003e\u003ccode\u003ecb91c7e\u003c/code\u003e\u003c/a\u003e junit testFinished improvements (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6205\"\u003e#6205\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kotest/kotest/commit/5c898b4fbd3c9830972d03b4d67af9005c01f759\"\u003e\u003ccode\u003e5c898b4\u003c/code\u003e\u003c/a\u003e spec tags cache (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6206\"\u003e#6206\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kotest/kotest/commit/69fdc8dc9f3cbeadc18b40f6350758631c238d44\"\u003e\u003ccode\u003e69fdc8d\u003c/code\u003e\u003c/a\u003e make ai skill available to users via claude marketplace and tie versioning to...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kotest/kotest/commit/2403f4fbe36e0afe260f44577f9662d2ccab81db\"\u003e\u003ccode\u003e2403f4f\u003c/code\u003e\u003c/a\u003e fix kdoc on StrictThrowableHandling (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6212\"\u003e#6212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kotest/kotest/commit/f96cf2a6fcc3402570cc56588506ced6014651ef\"\u003e\u003ccode\u003ef96cf2a\u003c/code\u003e\u003c/a\u003e introduce a TeamCity renderer that allows tree view and force it for our IJ p...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kotest/kotest/commit/05792718cb028710e1e45c01c8543f1dc3067826\"\u003e\u003ccode\u003e0579271\u003c/code\u003e\u003c/a\u003e sourceRef improvements (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6203\"\u003e#6203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kotest/kotest/commit/da26f165abca6d049d0902be2d4f27d3597d9643\"\u003e\u003ccode\u003eda26f16\u003c/code\u003e\u003c/a\u003e spring extension improvements (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6204\"\u003e#6204\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kotest/kotest/commit/cc5cf2536ffd22792ba01a4d78b3d3b07ee2a3db\"\u003e\u003ccode\u003ecc5cf25\u003c/code\u003e\u003c/a\u003e update docs to clarify that \u003ccode\u003ecopies\u003c/code\u003e in shouldContainExactCopies must be 1 or...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kotest/kotest/commit/1d648f92ebe6a6c675ce3fa8a39f23108616a9d3\"\u003e\u003ccode\u003e1d648f9\u003c/code\u003e\u003c/a\u003e Update dependency io.github.classgraph:classgraph to v4.8.186 (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6201\"\u003e#6201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kotest/kotest/compare/6.2.1...6.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `io.kotest:kotest-assertions-core-jvm` from 6.2.1 to 6.2.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kotest/kotest/releases\"\u003eio.kotest:kotest-assertions-core-jvm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev6.2.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAlex/same time offset date time  (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6180\"\u003e#6180\u003c/a\u003e) by \u003ca href=\"https://github.com/AlexCue987\"\u003e\u003ccode\u003e@​AlexCue987\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6181\"\u003ekotest/kotest#6181\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlex/range intersect details  (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6183\"\u003e#6183\u003c/a\u003e) by \u003ca href=\"https://github.com/AlexCue987\"\u003e\u003ccode\u003e@​AlexCue987\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6184\"\u003ekotest/kotest#6184\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eForce commons-beanutils to 1.11.0 (CVE-2025-48734) by \u003ca href=\"https://github.com/sksamuel\"\u003e\u003ccode\u003e@​sksamuel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6187\"\u003ekotest/kotest#6187\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate kotlinx-datetime to 0.8.0 by \u003ca href=\"https://github.com/sksamuel\"\u003e\u003ccode\u003e@​sksamuel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6186\"\u003ekotest/kotest#6186\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: route a few hardcoded dependency/plugin versions through the version catalog by \u003ca href=\"https://github.com/stlpine\"\u003e\u003ccode\u003e@​stlpine\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6189\"\u003ekotest/kotest#6189\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echeck gradle wrapper gh action by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6192\"\u003ekotest/kotest#6192\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(assertions): state the containExactCopies lower bound as at least 1 by \u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6193\"\u003ekotest/kotest#6193\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGeneral improvements - framework by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6190\"\u003ekotest/kotest#6190\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGeneral improvements - IJ plugin by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6191\"\u003ekotest/kotest#6191\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix jump to source by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6195\"\u003ekotest/kotest#6195\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependency net.bytebuddy:byte-buddy to v1.18.11 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6202\"\u003ekotest/kotest#6202\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependency io.github.classgraph:classgraph to v4.8.186 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6201\"\u003ekotest/kotest#6201\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupdate docs to clarify that \u003ccode\u003ecopies\u003c/code\u003e in shouldContainExactCopies must be 1 or higher by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6207\"\u003ekotest/kotest#6207\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003espring extension improvements by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6204\"\u003ekotest/kotest#6204\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003esourceRef improvements by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6203\"\u003ekotest/kotest#6203\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eintroduce a TeamCity renderer that allows tree view and force it for our legacy IJ plugin by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6210\"\u003ekotest/kotest#6210\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix kdoc on StrictThrowableHandling by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6212\"\u003ekotest/kotest#6212\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003emake ai skill available to users via claude marketplace and tie versioning to kotest releases by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6211\"\u003ekotest/kotest#6211\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003espec tags cache by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6206\"\u003ekotest/kotest#6206\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ejunit testFinished improvements by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6205\"\u003ekotest/kotest#6205\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd module-factory support to KoinExtension (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6006\"\u003e#6006\u003c/a\u003e) by \u003ca href=\"https://github.com/sksamuel\"\u003e\u003ccode\u003e@​sksamuel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6138\"\u003ekotest/kotest#6138\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stlpine\"\u003e\u003ccode\u003e@​stlpine\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6189\"\u003ekotest/kotest#6189\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/kotest/kotest/compare/6.2.3...v6.2.4\"\u003ehttps://github.com/kotest/kotest/compare/6.2.3...v6.2.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.2.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocument Kotest Gradle plugin usage by \u003ca href=\"https://github.com/cfcromn\"\u003e\u003ccode\u003e@​cfcromn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6166\"\u003ekotest/kotest#6166\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd Double.atMost by \u003ca href=\"https://github.com/AlexCue987\"\u003e\u003ccode\u003e@​AlexCue987\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6175\"\u003ekotest/kotest#6175\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd offsetDateTime.shouldHaveSameInstantAsZonedDateTime(other: ZonedDateTime) by \u003ca href=\"https://github.com/AlexCue987\"\u003e\u003ccode\u003e@​AlexCue987\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6173\"\u003ekotest/kotest#6173\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ematch fields of data classes that are data objects by \u003ca href=\"https://github.com/AlexCue987\"\u003e\u003ccode\u003e@​AlexCue987\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6177\"\u003ekotest/kotest#6177\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecomplete custom styles DSL by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6179\"\u003ekotest/kotest#6179\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cfcromn\"\u003e\u003ccode\u003e@​cfcromn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6166\"\u003ekotest/kotest#6166\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/kotest/kotest/compare/6.2.2...v6.2.3\"\u003ehttps://github.com/kotest/kotest/compare/6.2.2...v6.2.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.2.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocument instant-based ZonedDateTime \u003ccode\u003eplusOrMinus\u003c/code\u003e comparison by \u003ca href=\"https://github.com/AlexCue987\"\u003e\u003ccode\u003e@​AlexCue987\u003c/code\u003e\u003c/a\u003e with \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6159\"\u003ekotest/kotest#6159\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd documentation for OffsetDateTime tolerance matcher by \u003ca href=\"https://github.com/AlexCue987\"\u003e\u003ccode\u003e@​AlexCue987\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6161\"\u003ekotest/kotest#6161\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typo in proptest config docs by \u003ca href=\"https://github.com/axiom\"\u003e\u003ccode\u003e@​axiom\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6155\"\u003ekotest/kotest#6155\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edisable return-value-checker for releases by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6165\"\u003ekotest/kotest#6165\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(kotest-framework-engine): Use display-name rendering for ignored tests in TeamCity listener by \u003ca href=\"https://github.com/sksamuel\"\u003e\u003ccode\u003e@​sksamuel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6119\"\u003ekotest/kotest#6119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(kotest-assertions-core): Handle null map values in shouldBeEqualUsingFields by \u003ca href=\"https://github.com/sksamuel\"\u003e\u003ccode\u003e@​sksamuel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6112\"\u003ekotest/kotest#6112\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kotest/kotest/commit/736a47b8ab4305e8aef76237b7792fc499cf50a1\"\u003e\u003ccode\u003e736a47b\u003c/code\u003e\u003c/a\u003e Add module-factory support to KoinExtension (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6006\"\u003e#6006\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6138\"\u003e#6138\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kotest/kotest/commit/cb91c7e167f9184f23e0bec5941a7701560d2c99\"\u003e\u003ccode\u003ecb91c7e\u003c/code\u003e\u003c/a\u003e junit testFinished improvements (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6205\"\u003e#6205\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kotest/kotest/commit/5c898b4fbd3c9830972d03b4d67af9005c01f759\"\u003e\u003ccode\u003e5c898b4\u003c/code\u003e\u003c/a\u003e spec tags cache (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6206\"\u003e#6206\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kotest/kotest/commit/69fdc8dc9f3cbeadc18b40f6350758631c238d44\"\u003e\u003ccode\u003e69fdc8d\u003c/code\u003e\u003c/a\u003e make ai skill available to users via claude marketplace and tie versioning to...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kotest/kotest/commit/2403f4fbe36e0afe260f44577f9662d2ccab81db\"\u003e\u003ccode\u003e2403f4f\u003c/code\u003e\u003c/a\u003e fix kdoc on StrictThrowableHandling (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6212\"\u003e#6212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kotest/kotest/commit/f96cf2a6fcc3402570cc56588506ced6014651ef\"\u003e\u003ccode\u003ef96cf2a\u003c/code\u003e\u003c/a\u003e introduce a TeamCity renderer that allows tree view and force it for our IJ p...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kotest/kotest/commit/05792718cb028710e1e45c01c8543f1dc3067826\"\u003e\u003ccode\u003e0579271\u003c/code\u003e\u003c/a\u003e sourceRef improvements (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6203\"\u003e#6203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kotest/kotest/commit/da26f165abca6d049d0902be2d4f27d3597d9643\"\u003e\u003ccode\u003eda26f16\u003c/code\u003e\u003c/a\u003e spring extension improvements (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6204\"\u003e#6204\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kotest/kotest/commit/cc5cf2536ffd22792ba01a4d78b3d3b07ee2a3db\"\u003e\u003ccode\u003ecc5cf25\u003c/code\u003e\u003c/a\u003e update docs to clarify that \u003ccode\u003ecopies\u003c/code\u003e in shouldContainExactCopies must be 1 or...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kotest/kotest/commit/1d648f92ebe6a6c675ce3fa8a39f23108616a9d3\"\u003e\u003ccode\u003e1d648f9\u003c/code\u003e\u003c/a\u003e Update dependency io.github.classgraph:classgraph to v4.8.186 (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6201\"\u003e#6201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kotest/kotest/compare/6.2.1...6.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `io.kotest:kotest-assertions-core-jvm` from 6.2.1 to 6.2.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kotest/kotest/releases\"\u003eio.kotest:kotest-assertions-core-jvm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev6.2.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAlex/same time offset date time  (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6180\"\u003e#6180\u003c/a\u003e) by \u003ca href=\"https://github.com/AlexCue987\"\u003e\u003ccode\u003e@​AlexCue987\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6181\"\u003ekotest/kotest#6181\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlex/range intersect details  (\u003ca href=\"https://redirect.github.com/kotest/kotest/issues/6183\"\u003e#6183\u003c/a\u003e) by \u003ca href=\"https://github.com/AlexCue987\"\u003e\u003ccode\u003e@​AlexCue987\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6184\"\u003ekotest/kotest#6184\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eForce commons-beanutils to 1.11.0 (CVE-2025-48734) by \u003ca href=\"https://github.com/sksamuel\"\u003e\u003ccode\u003e@​sksamuel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6187\"\u003ekotest/kotest#6187\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate kotlinx-datetime to 0.8.0 by \u003ca href=\"https://github.com/sksamuel\"\u003e\u003ccode\u003e@​sksamuel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6186\"\u003ekotest/kotest#6186\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: route a few hardcoded dependency/plugin versions through the version catalog by \u003ca href=\"https://github.com/stlpine\"\u003e\u003ccode\u003e@​stlpine\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6189\"\u003ekotest/kotest#6189\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echeck gradle wrapper gh action by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6192\"\u003ekotest/kotest#6192\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(assertions): state the containExactCopies lower bound as at least 1 by \u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6193\"\u003ekotest/kotest#6193\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGeneral improvements - framework by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6190\"\u003ekotest/kotest#6190\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGeneral improvements - IJ plugin by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6191\"\u003ekotest/kotest#6191\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix jump to source by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6195\"\u003ekotest/kotest#6195\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependency net.bytebuddy:byte-buddy to v1.18.11 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6202\"\u003ekotest/kotest#6202\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependency io.github.classgraph:classgraph to v4.8.186 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6201\"\u003ekotest/kotest#6201\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupdate docs to clarify that \u003ccode\u003ecopies\u003c/code\u003e in shouldContainExactCopies must be 1 or higher by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6207\"\u003ekotest/kotest#6207\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003espring extension improvements by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6204\"\u003ekotest/kotest#6204\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003esourceRef improvements by \u003ca href=\"https://github.com/alfonsoristorato\"\u003e\u003ccode\u003e@​alfonsoristorato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kotest/kotest/pull/6203\"\u003ekotest/kotest#6203\u003c/a\u003e\u003c/l...\n\n_Description has been truncated_","html_url":"https://github.com/uakihir0/kmatrix/pull/32","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/uakihir0%2Fkmatrix/issues/32","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/32/packages"}},{"old_version":"2.4.10","new_version":"2.4.20","update_type":"patch","path":null,"pr_created_at":"2026-09-13T15:19:27.000Z","version_change":"2.4.10 → 2.4.20","issue":{"uuid":"5440899887","node_id":"PR_kwDOTN5Mws8AAAABDWAA4w","number":66,"state":"open","title":"Bump the deps group with 9 updates","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-13T15:19:27.000Z","updated_at":"2026-09-13T15:27:26.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"deps","update_count":9,"packages":[{"name":"com.diffplug.spotless","old_version":"8.10.1","new_version":"8.10.2"},{"name":"com.helger:parser-generator-cc","old_version":"1.1.4","new_version":"3.0.0","repository_url":"https://github.com/phax/ParserGeneratorCC"},{"name":"org.jetbrains.kotlin:kotlin-gradle-plugin","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.tinylog:tinylog-api-kotlin","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/tinylog-org/tinylog"},{"name":"org.tinylog:tinylog-impl","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/tinylog-org/tinylog"},{"name":"org.tinylog:tinylog-api","old_version":"2.8.0-M2","new_version":"2.8.0","repository_url":"https://github.com/tinylog-org/tinylog"},{"name":"org.jetbrains.kotlin.jvm","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.graalvm.buildtools.native","old_version":"1.1.11","new_version":"1.1.12","repository_url":"https://github.com/graalvm/native-build-tools"}],"path":null,"ecosystem":"maven"},"body":"Bumps the deps group with 9 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| com.diffplug.spotless | `8.10.1` | `8.10.2` |\n| [com.helger:parser-generator-cc](https://github.com/phax/ParserGeneratorCC) | `1.1.4` | `3.0.0` |\n| [org.jetbrains.kotlin:kotlin-gradle-plugin](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.tinylog:tinylog-api-kotlin](https://github.com/tinylog-org/tinylog) | `2.7.0` | `2.8.0` |\n| [org.tinylog:tinylog-impl](https://github.com/tinylog-org/tinylog) | `2.7.0` | `2.8.0` |\n| [org.tinylog:tinylog-api](https://github.com/tinylog-org/tinylog) | `2.8.0-M2` | `2.8.0` |\n| [org.jetbrains.kotlin.jvm](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.serialization](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.graalvm.buildtools.native](https://github.com/graalvm/native-build-tools) | `1.1.11` | `1.1.12` |\n\nUpdates `com.diffplug.spotless` from 8.10.1 to 8.10.2\n\nUpdates `com.helger:parser-generator-cc` from 1.1.4 to 3.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/phax/ParserGeneratorCC/releases\"\u003ecom.helger:parser-generator-cc's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBreaking API change\u003c/strong\u003e \u003ccode\u003eContainer\u003c/code\u003e is generic - \u003ccode\u003eContainer \u0026lt;T\u0026gt;\u003c/code\u003e with a typed \u003ccode\u003egetMember ()\u003c/code\u003e and \u003ccode\u003esetMember (T)\u003c/code\u003e instead of \u003ccode\u003eObject\u003c/code\u003e.\nThe grammar passes it as an out parameter through nine productions; they are typed \u003ccode\u003eContainer\u0026lt;Expansion\u0026gt;\u003c/code\u003e for the BNF and regular expression chain and \u003ccode\u003eContainer\u0026lt;ICCCharacter\u0026gt;\u003c/code\u003e for the character descriptors, which are an unrelated hierarchy.\n17 of the 37 casts on \u003ccode\u003egetMember ()\u003c/code\u003e in \u003ccode\u003eJavaCC.jj\u003c/code\u003e are gone, plus one in \u003ccode\u003emakeTryBlock\u003c/code\u003e.\nThe remaining 19 \u003ccode\u003eAbstractExpRegularExpression\u003c/code\u003e casts stay because \u003ccode\u003eexpansion_unit\u003c/code\u003e hands its \u003ccode\u003eContainer\u0026lt;Expansion\u0026gt;\u003c/code\u003e to \u003ccode\u003eregular_expression\u003c/code\u003e, and generics are invariant - that pins the whole regular expression chain to \u003ccode\u003eExpansion\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe code generators resolve \u003ccode\u003elexer ()\u003c/code\u003e, \u003ccode\u003egrammar ()\u003c/code\u003e, \u003ccode\u003etokenizerBuild ()\u003c/code\u003e and \u003ccode\u003eoptionValues ()\u003c/code\u003e into a local variable instead of calling them once per use.\nEach call is a \u003ccode\u003eThreadLocal\u003c/code\u003e lookup, and they sat in the innermost loops - \u003ccode\u003eLexGenJava.start\u003c/code\u003e alone made 184 of them, 175 inside loops, and \u003ccode\u003eLexGenCpp.start\u003c/code\u003e 157.\n1069 calls across 35 methods became 35 locals; generating \u003ccode\u003egrammars/JavaCC.jj\u003c/code\u003e drops from 13.3 ms to 11.3 ms and \u003ccode\u003egrammars/CobolParser.jj\u003c/code\u003e from 20.2 ms to 17.0 ms (best of 25 runs after 8 warm ups).\nGenerated output is unchanged\u003c/li\u003e\n\u003cli\u003eThe remaining \u003ccode\u003einstanceof\u003c/code\u003e tests that were followed by a cast use pattern matching now, in \u003ccode\u003eParseEngine\u003c/code\u003e, \u003ccode\u003eSemanticize\u003c/code\u003e, \u003ccode\u003eExpRCharacterList\u003c/code\u003e, \u003ccode\u003eExpRChoice\u003c/code\u003e, \u003ccode\u003eExpRStringLiteral\u003c/code\u003e, \u003ccode\u003eJJDoc\u003c/code\u003e, \u003ccode\u003eLexGenCpp\u003c/code\u003e and \u003ccode\u003eOptions\u003c/code\u003e.\n\u003ccode\u003eLexGenCpp\u003c/code\u003e had three casts of \u003ccode\u003elexer ().getCurRE ()\u003c/code\u003e in one condition where the Java backend already had one binding, so the two backends read alike again.\nThis also removes a latent \u003ccode\u003eClassCastException\u003c/code\u003e in \u003ccode\u003eOptions.setInputFileOption\u003c/code\u003e, which tested \u003ccode\u003eaObject instanceof Integer\u003c/code\u003e but cast \u003ccode\u003eaRealSrc\u003c/code\u003e; only \u003ccode\u003e\u0026amp;\u0026amp;\u003c/code\u003e short circuiting kept it unreachable, because the grammar can produce a \u003ccode\u003eList\u0026lt;String\u0026gt;\u003c/code\u003e but never a \u003ccode\u003eList\u0026lt;Integer\u0026gt;\u003c/code\u003e.\nThe action blocks in \u003ccode\u003eJavaCC.jj\u003c/code\u003e and \u003ccode\u003eConditionParser.jj\u003c/code\u003e keep their casts on purpose - the Java grammar the generator parses them with has no production for \u003ccode\u003einstanceof Type name\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe reworked classes declare their members in one consistent order: nested types, then the fields, then the constructor, then the instance methods, with the static factory methods last.\n\u003ccode\u003ePGCCContext.current ()\u003c/code\u003e, \u003ccode\u003ePGCCContext.reset ()\u003c/code\u003e and \u003ccode\u003eProcessState.getInstance ()\u003c/code\u003e moved to the end of their class, matching \u003ccode\u003eLookaheadState.current ()\u003c/code\u003e, and \u003ccode\u003eTokenizerData\u003c/code\u003e's three nested types moved above the fields whose types they are.\nPure reordering; no API and no behaviour change\u003c/li\u003e\n\u003cli\u003eGenerating a large lexer is around 3x faster.\nThe epsilon closure walked the whole state list twice per call purely to record which states a pass had visited, which is quadratic in the token count; the passes are numbered now and the walks are gone.\nOn a synthetic 1280 token grammar that loop ran 690 million times and was 70% of the run, and generation drops from 1344 ms to 413 ms.\nGenerated output is unchanged\u003c/li\u003e\n\u003cli\u003eEvery public and protected member of the generator carries javadoc now, and \u003ccode\u003emvn javadoc:javadoc\u003c/code\u003e reports no warnings.\nWriting it up turned up 16 members with no caller left and two option constants that were never registered, all removed.\n\u003ccode\u003eTOKEN_MANAGER_SUPERCLASS\u003c/code\u003e is documented as accepted and ignored - the option that works is \u003ccode\u003eTOKEN_MANAGER_SUPER_CLASS\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed the generated C++ token manager not compiling for a grammar with \u003ccode\u003e'\u003c/code\u003e or \u003ccode\u003e\\\u003c/code\u003e in a string literal.\nThe switch over the current character got \u003ccode\u003ecase ''':\u003c/code\u003e and \u003ccode\u003ecase '\\':\u003c/code\u003e, because only the Java backend escaped those two characters in a case label\u003c/li\u003e\n\u003cli\u003eFixed two token manager debug messages in the generated C++ running into the following line, and one being indented outside the \u003ccode\u003eif\u003c/code\u003e that guards it.\n\u003ccode\u003eDEBUG_TOKEN_MANAGER\u003c/code\u003e only\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBreaking API change\u003c/strong\u003e Replaced the internal \u003ccode\u003eEJDKVersion\u003c/code\u003e enum with \u003ccode\u003eEJavaVersion\u003c/code\u003e from ph-commons, so that \u003ccode\u003eJDK_VERSION\u003c/code\u003e values above 14 are supported.\n\u003ccode\u003eOptions.getJdkVersion ()\u003c/code\u003e returns \u003ccode\u003ecom.helger.base.system.EJavaVersion\u003c/code\u003e now\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePotentially breaking\u003c/strong\u003e The default value of \u003ccode\u003eJDK_VERSION\u003c/code\u003e moved from \u003ccode\u003e1.5\u003c/code\u003e to \u003ccode\u003e1.8\u003c/code\u003e, so that generated code uses the \u003ccode\u003eCharset\u003c/code\u003e based constructors and the diamond operator unless configured otherwise\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBreaking API change\u003c/strong\u003e \u003ccode\u003eLexGenJava\u003c/code\u003e, \u003ccode\u003eParseGenJava\u003c/code\u003e, \u003ccode\u003eLexGenCpp\u003c/code\u003e and \u003ccode\u003eParseGenCpp\u003c/code\u003e moved from \u003ccode\u003ecom.helger.pgcc.parser\u003c/code\u003e to \u003ccode\u003ecom.helger.pgcc.output.java\u003c/code\u003e and \u003ccode\u003ecom.helger.pgcc.output.cpp\u003c/code\u003e, so that the package says which target language a class writes.\n\u003ccode\u003ecom.helger.pgcc.parser\u003c/code\u003e no longer contains anything that writes a file\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBreaking API change\u003c/strong\u003e The generator state moved from static fields into \u003ccode\u003ecom.helger.pgcc.context.PGCCContext\u003c/code\u003e, one instance per run and per thread.\nThe old classes remain as facades, so \u003ccode\u003eOptions\u003c/code\u003e, \u003ccode\u003eJavaCCErrors\u003c/code\u003e and \u003ccode\u003eJavaCCGlobals\u003c/code\u003e are used exactly as before, but \u003ccode\u003eJavaCCGlobals\u003c/code\u003e exposes the grammar through \u003ccode\u003egrammar ()\u003c/code\u003e instead of public static fields.\nTwo generator runs can now happen at the same time in one JVM\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eJavaCCLauncher\u003c/code\u003e, \u003ccode\u003eJJTreeLauncher\u003c/code\u003e and \u003ccode\u003eJJDocLauncher\u003c/code\u003e as properly named command line entry points; the lower case \u003ccode\u003ejavacc\u003c/code\u003e, \u003ccode\u003ejjtree\u003c/code\u003e and \u003ccode\u003ejjdoc\u003c/code\u003e classes remain as deprecated aliases\u003c/li\u003e\n\u003cli\u003eFixed generated files never being rebuilt when regenerating into a directory that already contains them.\nThe checksum that decides this was computed before the writer had been flushed, so for anything but a very large file it was the checksum of nothing and never matched.\nHand edited files are still protected, as intended\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eJavaCCGlobals.getToolNames\u003c/code\u003e throwing a \u003ccode\u003eNullPointerException\u003c/code\u003e instead of returning an empty list when the file does not exist\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eJDK_VERSION\u003c/code\u003e values above 14 silently falling back to the default\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBreaking\u003c/strong\u003e Removed the undocumented and untested \u003ccode\u003eTOKEN_MANAGER_CODE_GENERATOR\u003c/code\u003e and \u003ccode\u003ePARSER_CODE_GENERATOR\u003c/code\u003e options together with the table driven token manager behind them\u003c/li\u003e\n\u003cli\u003eRemoved the dead \u003ccode\u003etest/\u003c/code\u003e (upstream Ant build) and \u003ccode\u003edocs/\u003c/code\u003e directories, and trimmed \u003ccode\u003ewww/doc/\u003c/code\u003e to the reference pages\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eOUTPUT_LANGUAGE\u003c/code\u003e (and every other option with an indirect effect) being ignored when set on the command line instead of in the grammar file\u003c/li\u003e\n\u003cli\u003eFixed the JJDoc \u003ccode\u003e-BNF\u003c/code\u003e output dropping every terminal from the productions, so that \u003ccode\u003e\u0026lt;NUMBER\u0026gt; ( \u0026lt;PLUS\u0026gt; \u0026lt;NUMBER\u0026gt; )* \u0026lt;EOF\u0026gt;\u003c/code\u003e was written as \u003ccode\u003e( )* \u0026lt;EOF\u0026gt;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed JJTree carrying node types from one run into the next when several grammars are processed in the same JVM, so that the second grammar's output contained the first grammar's node classes.\nThe C++ node files were affected most visibly\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eJavaCCInterpreter\u003c/code\u003e failing on the first character of any input for grammars with more than one character class token.\nThe composite state the tokenizer starts in had no entry in the \u003ccode\u003eTokenizerData\u003c/code\u003e, so the NFA was skipped entirely.\nOnly the interpreter is affected; generated code never used this path\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/phax/ParserGeneratorCC/commits/parser-generator-cc-3.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin:kotlin-gradle-plugin` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin:kotlin-gradle-plugin's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin:kotlin-gradle-plugin's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.tinylog:tinylog-api-kotlin` from 2.7.0 to 2.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tinylog-org/tinylog/releases\"\u003eorg.tinylog:tinylog-api-kotlin's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.8.0\u003c/h2\u003e\n\u003cp\u003eThe final release version 2.8.0 contains the same set of features as tinylog 2.8.0-M2 as no bugs were found.\u003c/p\u003e\n\u003ch2\u003eVersion 2.8.0-M2\u003c/h2\u003e\n\u003cp\u003eOutput suppressed exceptions when rendering throwables (\u003ca href=\"https://redirect.github.com/tinylog-org/tinylog/pull/910\"\u003etinylog-org/tinylog#910\u003c/a\u003e, thanks to \u003ca href=\"https://github.com/arimu1\"\u003e\u003ccode\u003e@​arimu1\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003eVersion 2.8.0-M1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd ability to output all keys and values in thread context (\u003ca href=\"https://redirect.github.com/tinylog-org/tinylog/pull/708\"\u003etinylog-org/tinylog#708\u003c/a\u003e, thanks to \u003ca href=\"https://github.com/rhanneken\"\u003e\u003ccode\u003e@​rhanneken\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSubstitute with isNullOrEmpty() call (\u003ca href=\"https://redirect.github.com/tinylog-org/tinylog/pull/678\"\u003etinylog-org/tinylog#678\u003c/a\u003e, thanks to \u003ca href=\"https://github.com/FourteenBrush\"\u003e\u003ccode\u003e@​FourteenBrush\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/a72fd10e54ad3e8c67fe25ca578faa5d81105417\"\u003e\u003ccode\u003ea72fd10\u003c/code\u003e\u003c/a\u003e Release version 2.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/41ec713b9508d47a8d4275d536c5eeac7615dee6\"\u003e\u003ccode\u003e41ec713\u003c/code\u003e\u003c/a\u003e Bump org.slf4j:slf4j-api from 2.0.18 to 2.0.19 (\u003ca href=\"https://redirect.github.com/tinylog-org/tinylog/issues/923\"\u003e#923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/cb8d0e7d25d2322c2c868407e0774302513800a7\"\u003e\u003ccode\u003ecb8d0e7\u003c/code\u003e\u003c/a\u003e Bump actions/setup-java from 5 to 6 (\u003ca href=\"https://redirect.github.com/tinylog-org/tinylog/issues/919\"\u003e#919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/832be3c457a01198760ac5421083fbf86bbdaf25\"\u003e\u003ccode\u003e832be3c\u003c/code\u003e\u003c/a\u003e Bump crazy-max/ghaction-import-gpg from 6 to 7 (\u003ca href=\"https://redirect.github.com/tinylog-org/tinylog/issues/913\"\u003e#913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/576d2dc8db633a3c6bf38160d25a37d005834ed6\"\u003e\u003ccode\u003e576d2dc\u003c/code\u003e\u003c/a\u003e Restore snapshot version 2.8-SNAPSHOT\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/17b903b205db18a57e73c11a3ed6136aa7152dfc\"\u003e\u003ccode\u003e17b903b\u003c/code\u003e\u003c/a\u003e Release version 2.8.0-M2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/183d67f1925ac50bad647f3ab2206bb63e21fbbe\"\u003e\u003ccode\u003e183d67f\u003c/code\u003e\u003c/a\u003e Downgrade p2-maven-plugin from 2.0.0 to 1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/29079a0fddecd25b162709ffbef977bc3a5cddae\"\u003e\u003ccode\u003e29079a0\u003c/code\u003e\u003c/a\u003e Migrate from nexus-staging-maven-plugin to central-publishing-maven-plugin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/7e5c9d8779e611feb40e53202d32b33a7afdff45\"\u003e\u003ccode\u003e7e5c9d8\u003c/code\u003e\u003c/a\u003e Fix Maven badge\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/117be3b76f0545f0d381770965bff9dfb4399cac\"\u003e\u003ccode\u003e117be3b\u003c/code\u003e\u003c/a\u003e Update copyright date\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tinylog-org/tinylog/compare/2.7.0...2.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.tinylog:tinylog-impl` from 2.7.0 to 2.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tinylog-org/tinylog/releases\"\u003eorg.tinylog:tinylog-impl's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.8.0\u003c/h2\u003e\n\u003cp\u003eThe final release version 2.8.0 contains the same set of features as tinylog 2.8.0-M2 as no bugs were found.\u003c/p\u003e\n\u003ch2\u003eVersion 2.8.0-M2\u003c/h2\u003e\n\u003cp\u003eOutput suppressed exceptions when rendering throwables (\u003ca href=\"https://redirect.github.com/tinylog-org/tinylog/pull/910\"\u003etinylog-org/tinylog#910\u003c/a\u003e, thanks to \u003ca href=\"https://github.com/arimu1\"\u003e\u003ccode\u003e@​arimu1\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003eVersion 2.8.0-M1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd ability to output all keys and values in thread context (\u003ca href=\"https://redirect.github.com/tinylog-org/tinylog/pull/708\"\u003etinylog-org/tinylog#708\u003c/a\u003e, thanks to \u003ca href=\"https://github.com/rhanneken\"\u003e\u003ccode\u003e@​rhanneken\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSubstitute with isNullOrEmpty() call (\u003ca href=\"https://redirect.github.com/tinylog-org/tinylog/pull/678\"\u003etinylog-org/tinylog#678\u003c/a\u003e, thanks to \u003ca href=\"https://github.com/FourteenBrush\"\u003e\u003ccode\u003e@​FourteenBrush\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/a72fd10e54ad3e8c67fe25ca578faa5d81105417\"\u003e\u003ccode\u003ea72fd10\u003c/code\u003e\u003c/a\u003e Release version 2.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/41ec713b9508d47a8d4275d536c5eeac7615dee6\"\u003e\u003ccode\u003e41ec713\u003c/code\u003e\u003c/a\u003e Bump org.slf4j:slf4j-api from 2.0.18 to 2.0.19 (\u003ca href=\"https://redirect.github.com/tinylog-org/tinylog/issues/923\"\u003e#923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/cb8d0e7d25d2322c2c868407e0774302513800a7\"\u003e\u003ccode\u003ecb8d0e7\u003c/code\u003e\u003c/a\u003e Bump actions/setup-java from 5 to 6 (\u003ca href=\"https://redirect.github.com/tinylog-org/tinylog/issues/919\"\u003e#919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/832be3c457a01198760ac5421083fbf86bbdaf25\"\u003e\u003ccode\u003e832be3c\u003c/code\u003e\u003c/a\u003e Bump crazy-max/ghaction-import-gpg from 6 to 7 (\u003ca href=\"https://redirect.github.com/tinylog-org/tinylog/issues/913\"\u003e#913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/576d2dc8db633a3c6bf38160d25a37d005834ed6\"\u003e\u003ccode\u003e576d2dc\u003c/code\u003e\u003c/a\u003e Restore snapshot version 2.8-SNAPSHOT\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/17b903b205db18a57e73c11a3ed6136aa7152dfc\"\u003e\u003ccode\u003e17b903b\u003c/code\u003e\u003c/a\u003e Release version 2.8.0-M2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/183d67f1925ac50bad647f3ab2206bb63e21fbbe\"\u003e\u003ccode\u003e183d67f\u003c/code\u003e\u003c/a\u003e Downgrade p2-maven-plugin from 2.0.0 to 1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/29079a0fddecd25b162709ffbef977bc3a5cddae\"\u003e\u003ccode\u003e29079a0\u003c/code\u003e\u003c/a\u003e Migrate from nexus-staging-maven-plugin to central-publishing-maven-plugin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/7e5c9d8779e611feb40e53202d32b33a7afdff45\"\u003e\u003ccode\u003e7e5c9d8\u003c/code\u003e\u003c/a\u003e Fix Maven badge\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/117be3b76f0545f0d381770965bff9dfb4399cac\"\u003e\u003ccode\u003e117be3b\u003c/code\u003e\u003c/a\u003e Update copyright date\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tinylog-org/tinylog/compare/2.7.0...2.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.tinylog:tinylog-api` from 2.8.0-M2 to 2.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tinylog-org/tinylog/releases\"\u003eorg.tinylog:tinylog-api's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.8.0\u003c/h2\u003e\n\u003cp\u003eThe final release version 2.8.0 contains the same set of features as tinylog 2.8.0-M2 as no bugs were found.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/a72fd10e54ad3e8c67fe25ca578faa5d81105417\"\u003e\u003ccode\u003ea72fd10\u003c/code\u003e\u003c/a\u003e Release version 2.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/41ec713b9508d47a8d4275d536c5eeac7615dee6\"\u003e\u003ccode\u003e41ec713\u003c/code\u003e\u003c/a\u003e Bump org.slf4j:slf4j-api from 2.0.18 to 2.0.19 (\u003ca href=\"https://redirect.github.com/tinylog-org/tinylog/issues/923\"\u003e#923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/cb8d0e7d25d2322c2c868407e0774302513800a7\"\u003e\u003ccode\u003ecb8d0e7\u003c/code\u003e\u003c/a\u003e Bump actions/setup-java from 5 to 6 (\u003ca href=\"https://redirect.github.com/tinylog-org/tinylog/issues/919\"\u003e#919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/832be3c457a01198760ac5421083fbf86bbdaf25\"\u003e\u003ccode\u003e832be3c\u003c/code\u003e\u003c/a\u003e Bump crazy-max/ghaction-import-gpg from 6 to 7 (\u003ca href=\"https://redirect.github.com/tinylog-org/tinylog/issues/913\"\u003e#913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/576d2dc8db633a3c6bf38160d25a37d005834ed6\"\u003e\u003ccode\u003e576d2dc\u003c/code\u003e\u003c/a\u003e Restore snapshot version 2.8-SNAPSHOT\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tinylog-org/tinylog/compare/2.8.0-M2...2.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.tinylog:tinylog-impl` from 2.7.0 to 2.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tinylog-org/tinylog/releases\"\u003eorg.tinylog:tinylog-impl's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.8.0\u003c/h2\u003e\n\u003cp\u003eThe final release version 2.8.0 contains the same set of features as tinylog 2.8.0-M2 as no bugs were found.\u003c/p\u003e\n\u003ch2\u003eVersion 2.8.0-M2\u003c/h2\u003e\n\u003cp\u003eOutput suppressed exceptions when rendering throwables (\u003ca href=\"https://redirect.github.com/tinylog-org/tinylog/pull/910\"\u003etinylog-org/tinylog#910\u003c/a\u003e, thanks to \u003ca href=\"https://github.com/arimu1\"\u003e\u003ccode\u003e@​arimu1\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003eVersion 2.8.0-M1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd ability to output all keys and values in thread context (\u003ca href=\"https://redirect.github.com/tinylog-org/tinylog/pull/708\"\u003etinylog-org/tinylog#708\u003c/a\u003e, thanks to \u003ca href=\"https://github.com/rhanneken\"\u003e\u003ccode\u003e@​rhanneken\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSubstitute with isNullOrEmpty() call (\u003ca href=\"https://redirect.github.com/tinylog-org/tinylog/pull/678\"\u003etinylog-org/tinylog#678\u003c/a\u003e, thanks to \u003ca href=\"https://github.com/FourteenBrush\"\u003e\u003ccode\u003e@​FourteenBrush\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/a72fd10e54ad3e8c67fe25ca578faa5d81105417\"\u003e\u003ccode\u003ea72fd10\u003c/code\u003e\u003c/a\u003e Release version 2.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/41ec713b9508d47a8d4275d536c5eeac7615dee6\"\u003e\u003ccode\u003e41ec713\u003c/code\u003e\u003c/a\u003e Bump org.slf4j:slf4j-api from 2.0.18 to 2.0.19 (\u003ca href=\"https://redirect.github.com/tinylog-org/tinylog/issues/923\"\u003e#923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/cb8d0e7d25d2322c2c868407e0774302513800a7\"\u003e\u003ccode\u003ecb8d0e7\u003c/code\u003e\u003c/a\u003e Bump actions/setup-java from 5 to 6 (\u003ca href=\"https://redirect.github.com/tinylog-org/tinylog/issues/919\"\u003e#919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/832be3c457a01198760ac5421083fbf86bbdaf25\"\u003e\u003ccode\u003e832be3c\u003c/code\u003e\u003c/a\u003e Bump crazy-max/ghaction-import-gpg from 6 to 7 (\u003ca href=\"https://redirect.github.com/tinylog-org/tinylog/issues/913\"\u003e#913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/576d2dc8db633a3c6bf38160d25a37d005834ed6\"\u003e\u003ccode\u003e576d2dc\u003c/code\u003e\u003c/a\u003e Restore snapshot version 2.8-SNAPSHOT\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/17b903b205db18a57e73c11a3ed6136aa7152dfc\"\u003e\u003ccode\u003e17b903b\u003c/code\u003e\u003c/a\u003e Release version 2.8.0-M2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/183d67f1925ac50bad647f3ab2206bb63e21fbbe\"\u003e\u003ccode\u003e183d67f\u003c/code\u003e\u003c/a\u003e Downgrade p2-maven-plugin from 2.0.0 to 1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/29079a0fddecd25b162709ffbef977bc3a5cddae\"\u003e\u003ccode\u003e29079a0\u003c/code\u003e\u003c/a\u003e Migrate from nexus-staging-maven-plugin to central-publishing-maven-plugin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/7e5c9d8779e611feb40e53202d32b33a7afdff45\"\u003e\u003ccode\u003e7e5c9d8\u003c/code\u003e\u003c/a\u003e Fix Maven badge\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tinylog-org/tinylog/commit/117be3b76f0545f0d381770965bff9dfb4399cac\"\u003e\u003ccode\u003e117be3b\u003c/code\u003e\u003c/a\u003e Update copyright date\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tinylog-org/tinylog/compare/2.7.0...2.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin:kotlin-gradle-plugin` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin:kotlin-gradle-plugin's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin:kotlin-gradle-plugin's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.jvm` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.jvm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.jvm's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.plugin.serialization` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.plugin.serialization's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light C...\n\n_Description has been truncated_","html_url":"https://github.com/jmltoolkit/jmltk/pull/66","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmltoolkit%2Fjmltk/issues/66","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/66/packages"}},{"old_version":"2.2.10","new_version":"2.4.20","update_type":"minor","path":"/android","pr_created_at":"2026-09-13T08:49:34.000Z","version_change":"2.2.10 → 2.4.20","issue":{"uuid":"5439146765","node_id":"PR_kwDORIzpkc8AAAABDUrjOg","number":308,"state":"open","title":"Android: Bump the android-dependencies group in /android with 20 updates","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-13T08:49:34.000Z","updated_at":"2026-09-13T09:11:21.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Android: Bump","group_name":"android-dependencies","update_count":20,"packages":[{"name":"gradle-wrapper","old_version":"9.4.1","new_version":"9.7.1","repository_url":"https://github.com/gradle/gradle"},{"name":"com.google.code.gson:gson","old_version":"2.11.0","new_version":"2.14.0","repository_url":"https://github.com/google/gson"},{"name":"androidx.core:core-ktx","old_version":"1.13.1","new_version":"1.19.0"},{"name":"androidx.test.ext:junit","old_version":"1.2.1","new_version":"1.3.0"},{"name":"androidx.test.espresso:espresso-core","old_version":"3.6.1","new_version":"3.7.0"},{"name":"androidx.compose:compose-bom","old_version":"2026.02.01","new_version":"2026.09.00"},{"name":"androidx.navigation:navigation-compose","old_version":"2.8.4","new_version":"2.10.1"},{"name":"androidx.security:security-crypto","old_version":"1.1.0-alpha06","new_version":"1.1.0"},{"name":"com.squareup.okhttp3:okhttp","old_version":"4.12.0","new_version":"5.5.0","repository_url":"https://github.com/lysine-dev/okhttp"},{"name":"org.jetbrains.kotlinx:kotlinx-serialization-json","old_version":"1.7.3","new_version":"1.11.0","repository_url":"https://github.com/Kotlin/kotlinx.serialization"},{"name":"org.jetbrains.kotlinx:kotlinx-coroutines-android","old_version":"1.9.0","new_version":"1.11.0","repository_url":"https://github.com/Kotlin/kotlinx.coroutines"},{"name":"org.jetbrains.kotlinx:kotlinx-coroutines-play-services","old_version":"1.9.0","new_version":"1.11.0","repository_url":"https://github.com/Kotlin/kotlinx.coroutines"},{"name":"com.google.android.gms:play-services-auth","old_version":"21.4.0","new_version":"22.0.0"},{"name":"com.patrykandpatrick.vico:compose-m3","old_version":"2.0.2","new_version":"3.3.1","repository_url":"https://github.com/patrykandpatrick/vico"},{"name":"androidx.core:core-splashscreen","old_version":"1.0.1","new_version":"1.2.0"},{"name":"androidx.browser:browser","old_version":"1.8.0","new_version":"1.10.0"},{"name":"com.google.ai.edge.litertlm:litertlm-android","old_version":"0.16.0","new_version":"0.17.0","repository_url":"https://github.com/google-ai-edge/LiteRT-LM"},{"name":"com.android.application","old_version":"9.2.0","new_version":"9.4.0"},{"name":"org.jetbrains.kotlin.plugin.compose","old_version":"2.2.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.2.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"}],"path":"/android","ecosystem":"maven"},"body":"Bumps the android-dependencies group in /android with 20 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [gradle-wrapper](https://github.com/gradle/gradle) | `9.4.1` | `9.7.1` |\n| [com.google.code.gson:gson](https://github.com/google/gson) | `2.11.0` | `2.14.0` |\n| androidx.core:core-ktx | `1.13.1` | `1.19.0` |\n| androidx.test.ext:junit | `1.2.1` | `1.3.0` |\n| androidx.test.espresso:espresso-core | `3.6.1` | `3.7.0` |\n| androidx.compose:compose-bom | `2026.02.01` | `2026.09.00` |\n| androidx.navigation:navigation-compose | `2.8.4` | `2.10.1` |\n| androidx.security:security-crypto | `1.1.0-alpha06` | `1.1.0` |\n| [com.squareup.okhttp3:okhttp](https://github.com/lysine-dev/okhttp) | `4.12.0` | `5.5.0` |\n| [org.jetbrains.kotlinx:kotlinx-serialization-json](https://github.com/Kotlin/kotlinx.serialization) | `1.7.3` | `1.11.0` |\n| [org.jetbrains.kotlinx:kotlinx-coroutines-android](https://github.com/Kotlin/kotlinx.coroutines) | `1.9.0` | `1.11.0` |\n| [org.jetbrains.kotlinx:kotlinx-coroutines-play-services](https://github.com/Kotlin/kotlinx.coroutines) | `1.9.0` | `1.11.0` |\n| com.google.android.gms:play-services-auth | `21.4.0` | `22.0.0` |\n| [com.patrykandpatrick.vico:compose-m3](https://github.com/patrykandpatrick/vico) | `2.0.2` | `3.3.1` |\n| androidx.core:core-splashscreen | `1.0.1` | `1.2.0` |\n| androidx.browser:browser | `1.8.0` | `1.10.0` |\n| [com.google.ai.edge.litertlm:litertlm-android](https://github.com/google-ai-edge/LiteRT-LM) | `0.16.0` | `0.17.0` |\n| com.android.application | `9.2.0` | `9.4.0` |\n| [org.jetbrains.kotlin.plugin.compose](https://github.com/JetBrains/kotlin) | `2.2.10` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.serialization](https://github.com/JetBrains/kotlin) | `2.2.10` | `2.4.20` |\n\nUpdates `gradle-wrapper` from 9.4.1 to 9.7.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gradle/gradle/releases\"\u003egradle-wrapper's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.7.1\u003c/h2\u003e\n\u003cp\u003eThe Gradle team is excited to announce Gradle 9.7.1.\u003c/p\u003e\n\u003cp\u003eThis is a patch release for 9.7.0. We recommend using 9.7.1 instead of 9.7.0.\u003c/p\u003e\n\u003cp\u003eHere are the highlights of 9.7.0 release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIsolated Projects graduates to incubating\u003c/li\u003e\n\u003cli\u003eBroader Configuration Cache compatibility\u003c/li\u003e\n\u003cli\u003eResilient Sync helps you fix broken builds\u003c/li\u003e\n\u003cli\u003eMore source locations in problem reports\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://docs.gradle.org/9.7.1/release-notes.html\"\u003eRead the Release Notes\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eWe would like to thank the following community members for their contributions to this release of Gradle:\n\u003ca href=\"https://github.com/aSemy\"\u003eAdam\u003c/a\u003e,\n\u003ca href=\"https://github.com/Gautam-aman\"\u003eAman Gautam\u003c/a\u003e,\n\u003ca href=\"https://github.com/YukiCodepth\"\u003eAman Kumar\u003c/a\u003e,\n\u003ca href=\"https://github.com/adubrouski\"\u003eAnton Dubrouski\u003c/a\u003e,\n\u003ca href=\"https://github.com/liutikas\"\u003eAurimas\u003c/a\u003e,\n\u003ca href=\"https://github.com/gbhavya07\"\u003egbhavya07\u003c/a\u003e,\n\u003ca href=\"https://github.com/joshfriend\"\u003eJosh Friend\u003c/a\u003e,\n\u003ca href=\"https://github.com/nicklauslittle-gov\"\u003enicklauslittle-gov\u003c/a\u003e,\n\u003ca href=\"https://github.com/psoni674\"\u003ePragati\u003c/a\u003e,\n\u003ca href=\"https://github.com/Project516\"\u003eproject516\u003c/a\u003e,\n\u003ca href=\"https://github.com/Uomocapra\"\u003eQin Mi\u003c/a\u003e,\n\u003ca href=\"https://github.com/rkdfx\"\u003eRavi\u003c/a\u003e,\n\u003ca href=\"https://github.com/sk-reddy17\"\u003esk-reddy17\u003c/a\u003e,\n\u003ca href=\"https://github.com/Suvrat1629\"\u003eSuvrat Acharya\u003c/a\u003e,\n\u003ca href=\"https://github.com/ShreckYe\"\u003eYongshun Ye\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eUpgrade instructions\u003c/h2\u003e\n\u003cp\u003eSwitch your build to use Gradle 9.7.1 by updating your wrapper:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e./gradlew :wrapper --gradle-version=9.7.1 \u0026amp;\u0026amp; ./gradlew :wrapper\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eSee the Gradle \u003ca href=\"https://docs.gradle.org/9.7.1/userguide/upgrading_version_9.html\"\u003e9.x upgrade guide\u003c/a\u003e to learn about deprecations, breaking changes and other considerations when upgrading.\u003c/p\u003e\n\u003cp\u003eFor Java, Groovy, Kotlin and Android compatibility, see the \u003ca href=\"https://docs.gradle.org/9.7.1/userguide/compatibility.html\"\u003efull compatibility notes\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eReporting problems\u003c/h2\u003e\n\u003cp\u003eIf you find a problem with this release, please file a bug on \u003ca href=\"https://github.com/gradle/gradle/issues\"\u003eGitHub Issues\u003c/a\u003e adhering to our issue guidelines.\nIf you're not sure you're encountering a bug, please use the \u003ca href=\"https://discuss.gradle.org/c/help-discuss\"\u003eforum\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eWe hope you will build happiness with Gradle, and we look forward to your feedback via \u003ca href=\"https://twitter.com/gradle\"\u003eTwitter\u003c/a\u003e or on \u003ca href=\"https://github.com/gradle\"\u003eGitHub\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003e9.7.0\u003c/h2\u003e\n\u003cp\u003eThe Gradle team is excited to announce Gradle 9.7.0.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/92f0512e7f06d84621afba191f75e265363890cf\"\u003e\u003ccode\u003e92f0512\u003c/code\u003e\u003c/a\u003e update fixed issues for 9.7.1 (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/38892\"\u003e#38892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/820ee75a99a179bbffa41bcedc6477b685fabb9f\"\u003e\u003ccode\u003e820ee75\u003c/code\u003e\u003c/a\u003e update fixed issues for 9.7.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/82c23f9bd2a89b4cc644e1f90a28a8668feb3dee\"\u003e\u003ccode\u003e82c23f9\u003c/code\u003e\u003c/a\u003e Fix annotation parameter ordering problem in KTS (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/38878\"\u003e#38878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/ef11a7268fe8cc8d6ab849ec911aa11220180553\"\u003e\u003ccode\u003eef11a72\u003c/code\u003e\u003c/a\u003e Fix annotation parameter ordering issue\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/bb0d8a974a71b1003efea41e4046e98855cd5ff8\"\u003e\u003ccode\u003ebb0d8a9\u003c/code\u003e\u003c/a\u003e Make relevant tests polyglot (run for multiple DSLs)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/336e129d7f95c03486acafc97abf59734acfed48\"\u003e\u003ccode\u003e336e129\u003c/code\u003e\u003c/a\u003e Update signing configuration (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/38874\"\u003e#38874\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/4bdf0da2dad9884d089a6062a45ea7183e7d735d\"\u003e\u003ccode\u003e4bdf0da\u003c/code\u003e\u003c/a\u003e Update signing configuration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/cd9b92c1b82856248cf1dc58b50378238bec7b52\"\u003e\u003ccode\u003ecd9b92c\u003c/code\u003e\u003c/a\u003e List issues resolved in 9.7.1 (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/38839\"\u003e#38839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/5f4e381964897ad8d6b99e5a7c77f26dba3259fb\"\u003e\u003ccode\u003e5f4e381\u003c/code\u003e\u003c/a\u003e List issues resolved in 9.7.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/1e08ab551367aeb5fb48b26e72807e1d2b27c939\"\u003e\u003ccode\u003e1e08ab5\u003c/code\u003e\u003c/a\u003e Keep type-use annotations in extracted ABI classes (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/38810\"\u003e#38810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gradle/gradle/compare/v9.4.1...v9.7.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.google.code.gson:gson` from 2.11.0 to 2.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/gson/releases\"\u003ecom.google.code.gson:gson's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eGson 2.14.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type adapters for \u003ccode\u003ejava.time\u003c/code\u003e classes by \u003ca href=\"https://github.com/eamonnmcmanus\"\u003e\u003ccode\u003e@​eamonnmcmanus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/google/gson/pull/2948\"\u003egoogle/gson#2948\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eWhen the \u003ccode\u003ejava.time\u003c/code\u003e API is available, Gson automatically can read and write instances of classes like \u003ccode\u003eInstant\u003c/code\u003e and \u003ccode\u003eDuration\u003c/code\u003e. The format it uses essentially freezes the JSON representation that \u003ccode\u003eReflectiveTypeAdapterFactory\u003c/code\u003e established by default, based on the private fields of \u003ccode\u003ejava.time\u003c/code\u003e classes. That's not a great representation, but it is understandable. Changing it to anything else would break compatibility with systems that are expecting the current format.\u003c/p\u003e\n\u003cp\u003eWith this change, Gson no longer tries to access private fields of these classes using reflection. So it is no longer necessary to run with \u003ccode\u003e--add-opens\u003c/code\u003e for these classes on recent JDKs.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove \u003ccode\u003ecom.google.gson.graph\u003c/code\u003e by \u003ca href=\"https://github.com/eamonnmcmanus\"\u003e\u003ccode\u003e@​eamonnmcmanus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/google/gson/pull/2990\"\u003egoogle/gson#2990\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis package was not part of any released artifact and depended on Gson internals in potentially problematic ways.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eValidate that strings being parsed as integers consist of ASCII characters by \u003ca href=\"https://github.com/eamonnmcmanus\"\u003e\u003ccode\u003e@​eamonnmcmanus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/google/gson/pull/2995\"\u003egoogle/gson#2995\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePreviously, strings could contain non-ASCII Unicode digits and still be parsed as integers. That's inconsistent with how JSON numbers are treated.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix duplicate key detection when first value is null by \u003ca href=\"https://github.com/andrewstellman\"\u003e\u003ccode\u003e@​andrewstellman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/google/gson/pull/3006\"\u003egoogle/gson#3006\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis could potentially break code that was relying on the incorrect behaviour. For example, this JSON string was previously accepted but will no longer be: \u003ccode\u003e{\u0026quot;foo\u0026quot;: null, \u0026quot;foo\u0026quot;: bar}\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove \u003ccode\u003eSerializable\u003c/code\u003e from internal \u003ccode\u003eType\u003c/code\u003e implementation classes. by \u003ca href=\"https://github.com/eamonnmcmanus\"\u003e\u003ccode\u003e@​eamonnmcmanus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/google/gson/pull/3011\"\u003egoogle/gson#3011\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe nested classes \u003ccode\u003eParameterizedTypeImpl\u003c/code\u003e, \u003ccode\u003eGenericArrayTypeImpl\u003c/code\u003e, and \u003ccode\u003eWildcardTypeImpl\u003c/code\u003e in \u003ccode\u003eGsonTypes\u003c/code\u003e are implementations of the corresponding types (without \u003ccode\u003eImpl\u003c/code\u003e) in \u003ccode\u003ejava.lang.reflect\u003c/code\u003e. For some reason, they were serializable, even though the \u003ccode\u003ejava.lang.reflect\u003c/code\u003e implementations are not. Having unnecessarily serializable classes could \u003cem\u003econceivably\u003c/em\u003e have been a security problem if they were part of a larger exploit using serialization. (We do not consider this a likely scenario and do not suggest that you need to update Gson just to get this change.)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eLegacyProtoTypeAdapterFactory\u003c/code\u003e. by \u003ca href=\"https://github.com/eamonnmcmanus\"\u003e\u003ccode\u003e@​eamonnmcmanus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/google/gson/pull/3014\"\u003egoogle/gson#3014\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is not part of any released artifact, but may be of use when trying to fix code that is currently accessing the internals of protobuf classes via reflection.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake AppendableWriter do flush and close if delegation object supports by \u003ca href=\"https://github.com/MukjepScarlet\"\u003e\u003ccode\u003e@​MukjepScarlet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/google/gson/pull/2925\"\u003egoogle/gson#2925\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther less visible changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd default capacity to EnumTypeAdapter maps by \u003ca href=\"https://github.com/MukjepScarlet\"\u003e\u003ccode\u003e@​MukjepScarlet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/google/gson/pull/2959\"\u003egoogle/gson#2959\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: move derived adapters from Gson to TypeAdapters by \u003ca href=\"https://github.com/MukjepScarlet\"\u003e\u003ccode\u003e@​MukjepScarlet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/google/gson/pull/2951\"\u003egoogle/gson#2951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003enew Gson()\u003c/code\u003e by \u003ca href=\"https://github.com/MukjepScarlet\"\u003e\u003ccode\u003e@​MukjepScarlet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/google/gson/pull/2864\"\u003egoogle/gson#2864\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ThirdGoddess\"\u003e\u003ccode\u003e@​ThirdGoddess\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/google/gson/pull/2944\"\u003egoogle/gson#2944\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lmj798\"\u003e\u003ccode\u003e@​lmj798\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/google/gson/pull/2988\"\u003egoogle/gson#2988\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Eng-YasminKotb\"\u003e\u003ccode\u003e@​Eng-YasminKotb\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/google/gson/pull/3005\"\u003egoogle/gson#3005\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/andrewstellman\"\u003e\u003ccode\u003e@​andrewstellman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/google/gson/pull/3006\"\u003egoogle/gson#3006\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/google/gson/compare/gson-parent-2.13.2...gson-parent-2.14.0\"\u003ehttps://github.com/google/gson/compare/gson-parent-2.13.2...gson-parent-2.14.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eGson 2.13.2\u003c/h2\u003e\n\u003cp\u003eThe main changes in this release are just newer dependencies.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/gson/commit/3ff35d6269894901ab8006258395aafc4b9765cd\"\u003e\u003ccode\u003e3ff35d6\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release gson-parent-2.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/gson/commit/a3024fde2a5c12b9a9a0b6b914ae4899aa574d81\"\u003e\u003ccode\u003ea3024fd\u003c/code\u003e\u003c/a\u003e Bump the maven group with 13 updates (\u003ca href=\"https://redirect.github.com/google/gson/issues/3002\"\u003e#3002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/gson/commit/5689ffe44952ca6ed44c595886b9043286311b23\"\u003e\u003ccode\u003e5689ffe\u003c/code\u003e\u003c/a\u003e Bump the github-actions group across 1 directory with 3 updates (\u003ca href=\"https://redirect.github.com/google/gson/issues/3018\"\u003e#3018\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/gson/commit/48db33cbf93af6b2f5b117dfdfd826de47f7229c\"\u003e\u003ccode\u003e48db33c\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eLegacyProtoTypeAdapterFactory\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/google/gson/issues/3014\"\u003e#3014\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/gson/commit/53d703ee76ca3e951fa4a727307c1f28dbcaf3aa\"\u003e\u003ccode\u003e53d703e\u003c/code\u003e\u003c/a\u003e Update outdated comment regarding serializable types (\u003ca href=\"https://redirect.github.com/google/gson/issues/3012\"\u003e#3012\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/gson/commit/0189b727761f31596d1a27b7c60b42478dc9f331\"\u003e\u003ccode\u003e0189b72\u003c/code\u003e\u003c/a\u003e Remove \u003ccode\u003eSerializable\u003c/code\u003e from internal \u003ccode\u003eType\u003c/code\u003e implementation classes. (\u003ca href=\"https://redirect.github.com/google/gson/issues/3011\"\u003e#3011\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/gson/commit/f4d371d29c04066dbe7fdb31f642831f9c7f40cd\"\u003e\u003ccode\u003ef4d371d\u003c/code\u003e\u003c/a\u003e Fix duplicate key detection when first value is null (\u003ca href=\"https://redirect.github.com/google/gson/issues/3006\"\u003e#3006\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/gson/commit/27d9ba1eeeeb156540cf5397504a4f9f256e911f\"\u003e\u003ccode\u003e27d9ba1\u003c/code\u003e\u003c/a\u003e Fix typo in README (JPMS dependencies section) (\u003ca href=\"https://redirect.github.com/google/gson/issues/3005\"\u003e#3005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/gson/commit/1fa9b7a0a994b006b3be00e2df9de778e71e6807\"\u003e\u003ccode\u003e1fa9b7a\u003c/code\u003e\u003c/a\u003e Validate that strings being parsed as integers consist of ASCII characters (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/gson/commit/b7d59549188867deb42e46073fb38735a5beda1c\"\u003e\u003ccode\u003eb7d5954\u003c/code\u003e\u003c/a\u003e Add iterator fail-fast tests for LinkedTreeMap.clear() (\u003ca href=\"https://redirect.github.com/google/gson/issues/2992\"\u003e#2992\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/gson/compare/gson-parent-2.11.0...gson-parent-2.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `androidx.core:core-ktx` from 1.13.1 to 1.19.0\n\nUpdates `androidx.test.ext:junit` from 1.2.1 to 1.3.0\n\nUpdates `androidx.test.espresso:espresso-core` from 3.6.1 to 3.7.0\n\nUpdates `androidx.compose:compose-bom` from 2026.02.01 to 2026.09.00\n\nUpdates `androidx.navigation:navigation-compose` from 2.8.4 to 2.10.1\n\nUpdates `androidx.security:security-crypto` from 1.1.0-alpha06 to 1.1.0\n\nUpdates `com.squareup.okhttp3:okhttp` from 4.12.0 to 5.5.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lysine-dev/okhttp/blob/main/CHANGELOG.md\"\u003ecom.squareup.okhttp3:okhttp's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 5.5.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2026-08-16\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eThis release introduces \u003cstrong\u003eopt-in\u003c/strong\u003e support for [Encrypted Client Hello (ECH)]. This new feature\nimproves user privacy by encrypting domain names in transit. With regular TLS, your coffee shop’s\nWi-Fi router can see that you’re visiting \u003cem\u003ewikipedia.com\u003c/em\u003e, but it cannot see which page you’re\nlooking at. With ECH, the router observes only the IP address. This additional privacy is most\neffective on sites hosted by big CDNs because the IP address doesn’t imply a particular website.\u003c/p\u003e\n\u003cp\u003eThis requires ECH support in the platform’s TLS stack. Today this is only Android 17 (API 37,\nreleased June 2026). When other TLS stacks add ECH support, we'll integrate them.\u003c/p\u003e\n\u003cp\u003eECH took a lot of work to implement because the encryption keys are published over DNS in the\n[HTTPS resource record], and we needed to write new code to fetch these records. This release\nincludes a major update to OkHttp’s DNS API: it now supports multiple resource record types (not\njust IP addresses!), asynchronous streaming results, and in-memory caching.\u003c/p\u003e\n\u003cp\u003eTo opt in, you can use \u003ccode\u003eDnsOverHttps\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"kotlin\"\u003e\u003ccode\u003e// DnsOverHttps itself uses OkHttpClient. Build both clients upon the\n// same bootstrap client so they share a connection pool and dispatcher.\nval bootstrapClient = OkHttpClient()\n\u003cp\u003e// This sample uses Cloudflare's 1.1.1.1 DnsOverHttps service.\nval client = bootstrapClient.newBuilder()\n.dns(DnsOverHttps.Builder()\n.client(bootstrapClient)\n.url(\u0026quot;\u003ca href=\"https://1.1.1.1/dns-query\u0026amp;quot;.toHttpUrl()\"\u003ehttps://1.1.1.1/dns-query\u0026amp;quot;.toHttpUrl()\u003c/a\u003e)\n.build())\n.build()\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eYou could also opt in with our new \u003ccode\u003eAndroidDns\u003c/code\u003e API. Unfortunately, the privacy benefits of ECH are\nthwarted because its DNS queries are not encrypted by default.\u003c/p\u003e\n\u003cpre lang=\"kotlin\"\u003e\u003ccode\u003e// AndroidDns fetches the HTTPS DNS resource records necessary for ECH.\nval client = OkHttpClient.Builder()\n  .dns(AndroidDns())\n  .build()\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003eNew: OkHttp artifacts are now signed with our [new signing key]. This project and three sibling\nprojects ([Retrofit], [Okio], and [SQLDelight]) recently joined [the Commonhaus Foundation].\u003c/li\u003e\n\u003cli\u003eFix: MockWebServer’s \u003ccode\u003e@StartStop\u003c/code\u003e annotation now supports \u003ccode\u003e@Nested\u003c/code\u003e JUnit 5 tests.\u003c/li\u003e\n\u003cli\u003eFix: Our default TLS hostname verifier now reject hosts that fail IP canonicalization.\u003c/li\u003e\n\u003cli\u003eFix: Closing a multipart part's sink no longer closes the entire request body.\u003c/li\u003e\n\u003cli\u003eFix: Flush HTTP/1 request bodies before detaching the timeout. We had a bug where timeouts\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysine-dev/okhttp/commit/a94bdf152084d11acecd44dcd09ffef203f4f0aa\"\u003e\u003ccode\u003ea94bdf1\u003c/code\u003e\u003c/a\u003e Prepare for release 5.5.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysine-dev/okhttp/commit/ecc3b05adfe6b2607b8ec251562c2cccf7c1923a\"\u003e\u003ccode\u003eecc3b05\u003c/code\u003e\u003c/a\u003e Use a fixed size for DoH request body (\u003ca href=\"https://redirect.github.com/lysine-dev/okhttp/issues/9687\"\u003e#9687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysine-dev/okhttp/commit/9926082660dfa6f1cc848c6f465cf5ccb998e415\"\u003e\u003ccode\u003e9926082\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Use a fixed size for DoH request body\u0026quot; (\u003ca href=\"https://redirect.github.com/lysine-dev/okhttp/issues/9686\"\u003e#9686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysine-dev/okhttp/commit/0070c2e7b4c162ee03abf1c88fd94083e94697f4\"\u003e\u003ccode\u003e0070c2e\u003c/code\u003e\u003c/a\u003e Use a fixed size for DoH request body\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysine-dev/okhttp/commit/15764539c69842dad607462f102a2507223dbfe7\"\u003e\u003ccode\u003e1576453\u003c/code\u003e\u003c/a\u003e Order ServiceMetadata records per the spec (\u003ca href=\"https://redirect.github.com/lysine-dev/okhttp/issues/9683\"\u003e#9683\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysine-dev/okhttp/commit/fb582e976a9a82d691342a4d57b3c72208ce416c\"\u003e\u003ccode\u003efb582e9\u003c/code\u003e\u003c/a\u003e Flip wiring of Dns.SYSTEM (\u003ca href=\"https://redirect.github.com/lysine-dev/okhttp/issues/9682\"\u003e#9682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysine-dev/okhttp/commit/4e884abb1a207c321acffb070c476acb4b89fa3f\"\u003e\u003ccode\u003e4e884ab\u003c/code\u003e\u003c/a\u003e retryOnConnectionFailure doesn't impact ECH retries (\u003ca href=\"https://redirect.github.com/lysine-dev/okhttp/issues/9681\"\u003e#9681\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysine-dev/okhttp/commit/0433cee8131b63fa2c0634fa2f9b3a01f9a8b1f3\"\u003e\u003ccode\u003e0433cee\u003c/code\u003e\u003c/a\u003e Only one contributing.md doc (\u003ca href=\"https://redirect.github.com/lysine-dev/okhttp/issues/9678\"\u003e#9678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysine-dev/okhttp/commit/a2cf5aa9f8711dabe514871e9dc4a9336a0e403f\"\u003e\u003ccode\u003ea2cf5aa\u003c/code\u003e\u003c/a\u003e Don't recover after an ECH public_name fails to verify (\u003ca href=\"https://redirect.github.com/lysine-dev/okhttp/issues/9680\"\u003e#9680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysine-dev/okhttp/commit/5410de9760bce8719129c3d08eb19e5bace75f6e\"\u003e\u003ccode\u003e5410de9\u003c/code\u003e\u003c/a\u003e Test ECH + HTTP proxy (\u003ca href=\"https://redirect.github.com/lysine-dev/okhttp/issues/9671\"\u003e#9671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lysine-dev/okhttp/compare/parent-4.12.0...parent-5.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlinx:kotlinx-serialization-json` from 1.7.3 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/releases\"\u003eorg.jetbrains.kotlinx:kotlinx-serialization-json's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.11.0\u003c/h2\u003e\n\u003cp\u003eThis release is based on Kotlin 2.3.20 and provides a new Json exceptions API and some bugfixes and improvements.\u003c/p\u003e\n\u003ch2\u003eExpose Json exceptions structure\u003c/h2\u003e\n\u003cp\u003eTo make working with exceptions easier and providing proper error codes in e.g., REST APIs,\nclasses \u003ccode\u003eJsonException\u003c/code\u003e, \u003ccode\u003eJsonDecodingException\u003c/code\u003e, and \u003ccode\u003eJsonEncodingException\u003c/code\u003e are now public.\nThey have relevant public properties, such as \u003ccode\u003eshortMessage\u003c/code\u003e, \u003ccode\u003epath\u003c/code\u003e, \u003ccode\u003eoffset\u003c/code\u003e, and others.\nThis API is currently experimental, and we're going to improve it further in the subsequent releases.\nSee the linked issues for the details: \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/1930\"\u003e#1930\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/1877\"\u003e#1877\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eAbility to hide user input from exception messages for security/privacy reasons.\u003c/h2\u003e\n\u003cp\u003eHistorically, exception messages in kotlinx.serialization often included the input Json itself for debuggability reason.\nSuch behavior may pose additional challenges for logging, analytics, and other systems, since\na system is not always allowed to store user data due to privacy/security reasons, which imposes additional sanitation logic.\nTo address this issue, a new property \u003ccode\u003eexceptionsWithDebugInfo\u003c/code\u003e is added to \u003ccode\u003eJsonConfiguration\u003c/code\u003e.\nDisable it to hide user input from exception messages.\nIMPORTANT: This behavior will be enabled by default when this property becomes stable.\nSee \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/2590\"\u003e#2590\u003c/a\u003e for more details.\u003c/p\u003e\n\u003ch2\u003eBugfixes and improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCBOR: Relax value range check when decoding numbers (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3167\"\u003e#3167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse a specialized writeDecimalLong method for IO stream integrations in Json (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3152\"\u003e#3152\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.10.0\u003c/h2\u003e\n\u003cp\u003eThis release is based on Kotlin 2.3.0 and contains all of the changes from 1.10.0-RC.\nThe only additional change is a fix for ProtoBuf packing of Kotlin unsigned types (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3079\"\u003e#3079\u003c/a\u003e).\nBig thanks to \u003ca href=\"https://github.com/KosmX\"\u003eKosmX\u003c/a\u003e for contributing the fix.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eFor your convenience, the changelog for 1.10.0-RC is duplicated below:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eStabilization of APIs\u003c/h2\u003e\n\u003cp\u003ekotlinx-serialization 1.10 and subsequent releases will be focused on stabilization of existing APIs.\nThe following APIs and configuration options are no longer experimental because they're widely used without any known major issues:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eJson\u003c/code\u003e configuration options: \u003ccode\u003edecodeEnumsCaseInsensitive\u003c/code\u003e, \u003ccode\u003eallowTrailingComma\u003c/code\u003e, \u003ccode\u003eallowComments\u003c/code\u003e, and \u003ccode\u003eprettyPrintIndent\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3100\"\u003e#3100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@EncodeDefault\u003c/code\u003e annotation and its modes. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3106\"\u003e#3106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eJsonUnquotedLiteral\u003c/code\u003e constructor function (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/2900\"\u003e#2900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eJsonPrimitive\u003c/code\u003e constructor function overloads that accept unsigned types. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3117\"\u003e#3117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eJSON DSL functions on \u003ccode\u003eJsonElement\u003c/code\u003e with \u003ccode\u003eNothing?\u003c/code\u003e overloads. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3117\"\u003e#3117\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eReadiness for return value checker\u003c/h2\u003e\n\u003cp\u003eKotlin 2.3.0 \u003ca href=\"https://kotlinlang.org/docs/whatsnew23.html#unused-return-value-checker\"\u003eintroduces a new feature\u003c/a\u003e aimed at helping you to catch bugs related to the accidentally ignored return value of the function.\nkotlinx-serialization 1.10.0-RC code is fully marked for this feature, meaning that you can get warnings for unused function calls like \u003ccode\u003eJson.encodeToString(...)\u003c/code\u003e. To get the warnings, the feature has to be enabled in your project as \u003ca href=\"https://kotlinlang.org/docs/unused-return-value-checker.html#configure-the-unused-return-value-checker\"\u003edescribed here\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003ePolymorphism improvements\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/blob/master/CHANGELOG.md\"\u003eorg.jetbrains.kotlinx:kotlinx-serialization-json's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.11.0 / 2026-04-10\u003c/h1\u003e\n\u003cp\u003eThis release is based on Kotlin 2.3.20 and provides new Json exceptions API and some bugfixes and improvements.\u003c/p\u003e\n\u003ch2\u003eExpose Json exceptions structure\u003c/h2\u003e\n\u003cp\u003eTo make working with exceptions easier and providing proper error codes in e.g., REST APIs,\nclasses \u003ccode\u003eJsonException\u003c/code\u003e, \u003ccode\u003eJsonDecodingException\u003c/code\u003e, and \u003ccode\u003eJsonEncodingException\u003c/code\u003e are now public.\nThey have relevant public properties, such as \u003ccode\u003eshortMessage\u003c/code\u003e, \u003ccode\u003epath\u003c/code\u003e, \u003ccode\u003eoffset\u003c/code\u003e, and others.\nThis API is currently experimental, and we're going to improve it further in the subsequent releases.\nSee the linked issues for the details: \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/1930\"\u003e#1930\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/1877\"\u003e#1877\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eAbility to hide user input from exception messages for security/privacy reasons.\u003c/h2\u003e\n\u003cp\u003eHistorically, exception messages in kotlinx.serialization often included the input Json itself for debuggability reason.\nSuch behavior may pose additional challenges for logging, analytics, and other systems, since\na system is not always allowed to store user data due to privacy/security reasons, which imposes additional sanitation logic.\nTo address this issue, a new property \u003ccode\u003eexceptionsWithDebugInfo\u003c/code\u003e is added to \u003ccode\u003eJsonConfiguration\u003c/code\u003e.\nDisable it to hide user input from exception messages.\nIMPORTANT: This behavior will be enabled by default when this property becomes stable.\nSee \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/2590\"\u003e#2590\u003c/a\u003e for more details.\u003c/p\u003e\n\u003ch2\u003eBugfixes and improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCBOR: Relax value range check when decoding numbers (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3167\"\u003e#3167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse a specialized writeDecimalLong method for IO stream integrations in Json (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3152\"\u003e#3152\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.10.0 / 2026-01-21\u003c/h1\u003e\n\u003cp\u003eThis release is based on Kotlin 2.3.0 and contains all of the changes from 1.10.0-RC.\nThe only additional change is a fix for ProtoBuf packing of Kotlin unsigned types (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3079\"\u003e#3079\u003c/a\u003e).\nBig thanks to \u003ca href=\"https://github.com/KosmX\"\u003eKosmX\u003c/a\u003e for contributing the fix.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eFor your convenience, the changelog for 1.10.0-RC is duplicated below:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eStabilization of APIs\u003c/h2\u003e\n\u003cp\u003ekotlinx-serialization 1.10 and subsequent releases will be focused on stabilization of existing APIs.\nThe following APIs and configuration options are no longer experimental because they're widely used without any known major issues:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eJson\u003c/code\u003e configuration options: \u003ccode\u003edecodeEnumsCaseInsensitive\u003c/code\u003e, \u003ccode\u003eallowTrailingComma\u003c/code\u003e, \u003ccode\u003eallowComments\u003c/code\u003e, and \u003ccode\u003eprettyPrintIndent\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3100\"\u003e#3100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@EncodeDefault\u003c/code\u003e annotation and its modes. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3106\"\u003e#3106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eJsonUnquotedLiteral\u003c/code\u003e constructor function (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/2900\"\u003e#2900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eJsonPrimitive\u003c/code\u003e constructor function overloads that accept unsigned types. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3117\"\u003e#3117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eJSON DSL functions on \u003ccode\u003eJsonElement\u003c/code\u003e with \u003ccode\u003eNothing?\u003c/code\u003e overloads. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3117\"\u003e#3117\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eReadiness for return value checker\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/6956af2e6073347c7832c3c5b374fa3b5a345956\"\u003e\u003ccode\u003e6956af2\u003c/code\u003e\u003c/a\u003e Prepare 1.11 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/390d84c68a19cbf7fa453dec22a333648bde49b4\"\u003e\u003ccode\u003e390d84c\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into dev\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/431fe2dc0a144300b33038820d24fc30302c8abc\"\u003e\u003ccode\u003e431fe2d\u003c/code\u003e\u003c/a\u003e Use local repo for publishing (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3171\"\u003e#3171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/05c12b60a6717b99053fb82e1f94d2f859727374\"\u003e\u003ccode\u003e05c12b6\u003c/code\u003e\u003c/a\u003e Add usage attribute to \u0026quot;testRepositories\u0026quot; configuration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/a4e1f082ef2e72caa139b474c05657de6015da20\"\u003e\u003ccode\u003ea4e1f08\u003c/code\u003e\u003c/a\u003e Bump Kover version to 0.9.8 release (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3174\"\u003e#3174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/304e858ccc7066854637d86ab80056f5f2bcc094\"\u003e\u003ccode\u003e304e858\u003c/code\u003e\u003c/a\u003e Expose Json exceptions structure (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3145\"\u003e#3145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/4a0338ef5093d765138151bc30282e909ca459e4\"\u003e\u003ccode\u003e4a0338e\u003c/code\u003e\u003c/a\u003e Included G Play SDK verification file for core-jvm (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3169\"\u003e#3169\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/421f64c74f0ea6d4a3cdc8dd483505366e3f6c8f\"\u003e\u003ccode\u003e421f64c\u003c/code\u003e\u003c/a\u003e CBOR: Relax value range check when decoding numbers (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3167\"\u003e#3167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/85a4f126ec491c77e2b3686cc22c1bae27a20783\"\u003e\u003ccode\u003e85a4f12\u003c/code\u003e\u003c/a\u003e KT-84955: mark apple x64 tagets as deprecated error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/commit/bd38b0e49bce38d1a55576e89856bc63990167ed\"\u003e\u003ccode\u003ebd38b0e\u003c/code\u003e\u003c/a\u003e Remove dead code\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kotlin/kotlinx.serialization/compare/v1.7.3...v1.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlinx:kotlinx-coroutines-android` from 1.9.0 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/releases\"\u003eorg.jetbrains.kotlinx:kotlinx-coroutines-android's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.11.0\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003ePromise\u003c/code\u003e-related functions from JS and Wasm/JS to the new \u003ccode\u003eweb\u003c/code\u003e target. On Wasm/JS, this is a breaking change. Before the change, \u003ccode\u003ePromise\u003c/code\u003e on Wasm/JS could work with arbitrary Kotlin types, but now, only \u003ccode\u003eJsAny\u003c/code\u003e subtypes are accepted (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4563\"\u003e#4563\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eChanged handling of coroutine exceptions that can't be propagated on JS and Wasm/JS. B\nefore, exceptions were logged, but now, they are reported to the JS runtime (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4451\"\u003e#4451\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4631\"\u003e#4631\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeprecated using \u003ccode\u003eCoroutineDispatcher\u003c/code\u003e as the coroutine context key; now, \u003ccode\u003eContinuationInterceptor\u003c/code\u003e has to be used instead (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4333\"\u003e#4333\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdvanced the deprecation levels on \u003ccode\u003ekotlinx-coroutines-test\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4604\"\u003e#4604\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded lint functions that mark passing a \u003ccode\u003eJob\u003c/code\u003e to coroutine builders as deprecated (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4435\"\u003e#4435\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003erunBlocking\u003c/code\u003e in code shared between JVM and Native (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4368\"\u003e#4368\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003esuspendCancellableCoroutine\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4574\"\u003e#4574\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eflowOn\u003c/code\u003e incorrectly handling \u003ccode\u003eThreadContextElement\u003c/code\u003e updates (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4403\"\u003e#4403\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed exceptions in user-supplied \u003ccode\u003eThread.UncaughtExceptionHandler\u003c/code\u003e instances causing the internal coroutines machinery to fail (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4516\"\u003e#4516\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCoroutineDispatcher.asScheduler\u003c/code\u003e in the RxJava integration not cancelling outstanding work when a \u003ccode\u003eWorker\u003c/code\u003e gets cancelled, which led to memory leaks in some scenarios (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4615\"\u003e#4615\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSharedFlow\u003c/code\u003e entering an invalid state when a subscriber and an emitter are cancelled simultaneously (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4583\"\u003e#4583\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed an R8 optimization leading to \u003ccode\u003eshareIn\u003c/code\u003e/\u003ccode\u003estateIn\u003c/code\u003e coroutines getting garbage-collected (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4646\"\u003e#4646\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/solevic\"\u003e\u003ccode\u003e@​solevic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSmall additions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eCompletableDeferred.asDeferred\u003c/code\u003e for obtaining a read-only \u003ccode\u003eDeferred\u003c/code\u003e view (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4408\"\u003e#4408\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSharedFlow.asFlow\u003c/code\u003e for obtaining a \u003ccode\u003eFlow\u003c/code\u003e view with hidden hot flow semantics (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4530\"\u003e#4530\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/g000sha256\"\u003e\u003ccode\u003e@​g000sha256\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow.collectLatest\u003c/code\u003e overload returning \u003ccode\u003eNothing\u003c/code\u003e to assist with finding unreachable code (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4454\"\u003e#4454\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eReceiveChannel.consumeTo\u003c/code\u003e for consuming a \u003ccode\u003eReceiveChannel\u003c/code\u003e into a \u003ccode\u003eMutableCollection\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4520\"\u003e#4520\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e overload returning a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;\u003c/code\u003e, similar to \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e returning \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4275\"\u003e#4275\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/xit0c\"\u003e\u003ccode\u003e@​xit0c\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded terminal \u003ccode\u003eFlow\u003c/code\u003e operators for collecting a \u003ccode\u003eFlow\u003c/code\u003e to a \u003ccode\u003eMap\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/1541\"\u003e#1541\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog relative to version 1.11.0\u003c/h3\u003e\n\u003cp\u003eNo changes, only the version is increased.\u003c/p\u003e\n\u003ch2\u003e1.11.0-rc02\u003c/h2\u003e\n\u003cp\u003eRestored binary compatibility with 1.10.2 and older versions on Wasm/JS for usages of \u003ccode\u003ePromise\u003c/code\u003e-related functions (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003e1.11.0-rc01\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/blob/master/CHANGES.md\"\u003eorg.jetbrains.kotlinx:kotlinx-coroutines-android's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.11.0\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003ePromise\u003c/code\u003e-related functions from JS and Wasm/JS to the new \u003ccode\u003eweb\u003c/code\u003e target. On Wasm/JS, this is a breaking change. Before the change, \u003ccode\u003ePromise\u003c/code\u003e on Wasm/JS could work with arbitrary Kotlin types, but now, only \u003ccode\u003eJsAny\u003c/code\u003e subtypes are accepted (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4563\"\u003e#4563\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eChanged handling of coroutine exceptions that can't be propagated on JS and Wasm/JS. Before, exceptions were logged, but now, they are reported to the JS runtime (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4451\"\u003e#4451\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4631\"\u003e#4631\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeprecated using \u003ccode\u003eCoroutineDispatcher\u003c/code\u003e as the coroutine context key; now, \u003ccode\u003eContinuationInterceptor\u003c/code\u003e has to be used instead (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4333\"\u003e#4333\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdvanced the deprecation levels on \u003ccode\u003ekotlinx-coroutines-test\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4604\"\u003e#4604\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded lint functions that mark passing a \u003ccode\u003eJob\u003c/code\u003e to coroutine builders as deprecated (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4435\"\u003e#4435\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003erunBlocking\u003c/code\u003e in code shared between JVM and Native (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4368\"\u003e#4368\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003esuspendCancellableCoroutine\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4574\"\u003e#4574\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eflowOn\u003c/code\u003e incorrectly handling \u003ccode\u003eThreadContextElement\u003c/code\u003e updates (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4403\"\u003e#4403\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed exceptions in user-supplied \u003ccode\u003eThread.UncaughtExceptionHandler\u003c/code\u003e instances causing the internal coroutines machinery to fail (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4516\"\u003e#4516\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCoroutineDispatcher.asScheduler\u003c/code\u003e in the RxJava integration not cancelling outstanding work when a \u003ccode\u003eWorker\u003c/code\u003e gets cancelled, which led to memory leaks in some scenarios (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4615\"\u003e#4615\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSharedFlow\u003c/code\u003e entering an invalid state when a subscriber and an emitter are cancelled simultaneously (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4583\"\u003e#4583\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed an R8 optimization leading to \u003ccode\u003eshareIn\u003c/code\u003e/\u003ccode\u003estateIn\u003c/code\u003e coroutines getting garbage-collected (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4646\"\u003e#4646\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/solevic\"\u003e\u003ccode\u003e@​solevic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSmall additions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eCompletableDeferred.asDeferred\u003c/code\u003e for obtaining a read-only \u003ccode\u003eDeferred\u003c/code\u003e view (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4408\"\u003e#4408\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSharedFlow.asFlow\u003c/code\u003e for obtaining a \u003ccode\u003eFlow\u003c/code\u003e view with hidden hot flow semantics (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4530\"\u003e#4530\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/g000sha256\"\u003e\u003ccode\u003e@​g000sha256\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow.collectLatest\u003c/code\u003e overload returning \u003ccode\u003eNothing\u003c/code\u003e to assist with finding unreachable code (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4454\"\u003e#4454\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eReceiveChannel.consumeTo\u003c/code\u003e for consuming a \u003ccode\u003eReceiveChannel\u003c/code\u003e into a \u003ccode\u003eMutableCollection\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4520\"\u003e#4520\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e overload returning a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;\u003c/code\u003e, similar to \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e returning \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4275\"\u003e#4275\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/xit0c\"\u003e\u003ccode\u003e@​xit0c\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded terminal \u003ccode\u003eFlow\u003c/code\u003e operators for collecting a \u003ccode\u003eFlow\u003c/code\u003e to a \u003ccode\u003eMap\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/1541\"\u003e#1541\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog relative to version 1.11.0\u003c/h3\u003e\n\u003cp\u003eNo changes, only the version is increased.\u003c/p\u003e\n\u003ch2\u003eVersion 1.11.0-rc02\u003c/h2\u003e\n\u003cp\u003eRestored binary compatibility with 1.10.2 and older versions on Wasm/JS for usages of \u003ccode\u003ePromise\u003c/code\u003e-related functions (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eVersion 1.11.0-rc01\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/8564f65764d3d05893cec026c6e94250e2b23874\"\u003e\u003ccode\u003e8564f65\u003c/code\u003e\u003c/a\u003e Version 1.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/a4c6af96c15fe30f5d4e8b810ea74f8babd5805c\"\u003e\u003ccode\u003ea4c6af9\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/ef917b460aa741691fbf991ee1b813049cae18c9\"\u003e\u003ccode\u003eef917b4\u003c/code\u003e\u003c/a\u003e KT-84955: mark apple x64 tagets as deprecated error (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/5ebc421e341bf2ddce734d369da87df1985e80bd\"\u003e\u003ccode\u003e5ebc421\u003c/code\u003e\u003c/a\u003e Update the release procedure description (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4670\"\u003e#4670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/95f46a073bc4a1230352108cea1835fd22219a80\"\u003e\u003ccode\u003e95f46a0\u003c/code\u003e\u003c/a\u003e Remove old maven repository settings (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4672\"\u003e#4672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/b4f4f0aa6acb692f3fbcadd70e4958e3e9d370fc\"\u003e\u003ccode\u003eb4f4f0a\u003c/code\u003e\u003c/a\u003e Fix package name of \u003ccode\u003eToMapCollectionSamplesTest\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4674\"\u003e#4674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/86738dca7dc9ac82249abc8206263fa0065ee631\"\u003e\u003ccode\u003e86738dc\u003c/code\u003e\u003c/a\u003e Added templates to the issue creation wizard (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4654\"\u003e#4654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/330fcc221fb583f0b119f34191f735a73b827378\"\u003e\u003ccode\u003e330fcc2\u003c/code\u003e\u003c/a\u003e Version 1.11.0-rc02\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/e31cef6e9f2d26794be7d75ecbf3033b6432d582\"\u003e\u003ccode\u003ee31cef6\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/dc6e9f61eaf3a67f4bf474a7987aedc3f16cef37\"\u003e\u003ccode\u003edc6e9f6\u003c/code\u003e\u003c/a\u003e Restore Promise-related functions on Wasm/JS as HIDDEN (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/compare/1.9.0...1.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlinx:kotlinx-coroutines-play-services` from 1.9.0 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/releases\"\u003eorg.jetbrains.kotlinx:kotlinx-coroutines-play-services's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.11.0\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003ePromise\u003c/code\u003e-related functions from JS and Wasm/JS to the new \u003ccode\u003eweb\u003c/code\u003e target. On Wasm/JS, this is a breaking change. Before the change, \u003ccode\u003ePromise\u003c/code\u003e on Wasm/JS could work with arbitrary Kotlin types, but now, only \u003ccode\u003eJsAny\u003c/code\u003e subtypes are accepted (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4563\"\u003e#4563\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eChanged handling of coroutine exceptions that can't be propagated on JS and Wasm/JS. B\nefore, exceptions were logged, but now, they are reported to the JS runtime (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4451\"\u003e#4451\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4631\"\u003e#4631\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeprecated using \u003ccode\u003eCoroutineDispatcher\u003c/code\u003e as the coroutine context key; now, \u003ccode\u003eContinuationInterceptor\u003c/code\u003e has to be used instead (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4333\"\u003e#4333\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdvanced the deprecation levels on \u003ccode\u003ekotlinx-coroutines-test\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4604\"\u003e#4604\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded lint functions that mark passing a \u003ccode\u003eJob\u003c/code\u003e to coroutine builders as deprecated (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4435\"\u003e#4435\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003erunBlocking\u003c/code\u003e in code shared between JVM and Native (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4368\"\u003e#4368\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003esuspendCancellableCoroutine\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4574\"\u003e#4574\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eflowOn\u003c/code\u003e incorrectly handling \u003ccode\u003eThreadContextElement\u003c/code\u003e updates (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4403\"\u003e#4403\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed exceptions in user-supplied \u003ccode\u003eThread.UncaughtExceptionHandler\u003c/code\u003e instances causing the internal coroutines machinery to fail (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4516\"\u003e#4516\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCoroutineDispatcher.asScheduler\u003c/code\u003e in the RxJava integration not cancelling outstanding work when a \u003ccode\u003eWorker\u003c/code\u003e gets cancelled, which led to memory leaks in some scenarios (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4615\"\u003e#4615\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSharedFlow\u003c/code\u003e entering an invalid state when a subscriber and an emitter are cancelled simultaneously (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4583\"\u003e#4583\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed an R8 optimization leading to \u003ccode\u003eshareIn\u003c/code\u003e/\u003ccode\u003estateIn\u003c/code\u003e coroutines getting garbage-collected (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4646\"\u003e#4646\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/solevic\"\u003e\u003ccode\u003e@​solevic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSmall additions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eCompletableDeferred.asDeferred\u003c/code\u003e for obtaining a read-only \u003ccode\u003eDeferred\u003c/code\u003e view (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4408\"\u003e#4408\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSharedFlow.asFlow\u003c/code\u003e for obtaining a \u003ccode\u003eFlow\u003c/code\u003e view with hidden hot flow semantics (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4530\"\u003e#4530\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/g000sha256\"\u003e\u003ccode\u003e@​g000sha256\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow.collectLatest\u003c/code\u003e overload returning \u003ccode\u003eNothing\u003c/code\u003e to assist with finding unreachable code (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4454\"\u003e#4454\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eReceiveChannel.consumeTo\u003c/code\u003e for consuming a \u003ccode\u003eReceiveChannel\u003c/code\u003e into a \u003ccode\u003eMutableCollection\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4520\"\u003e#4520\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e overload returning a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;\u003c/code\u003e, similar to \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e returning \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4275\"\u003e#4275\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/xit0c\"\u003e\u003ccode\u003e@​xit0c\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded terminal \u003ccode\u003eFlow\u003c/code\u003e operators for collecting a \u003ccode\u003eFlow\u003c/code\u003e to a \u003ccode\u003eMap\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/1541\"\u003e#1541\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog relative to version 1.11.0\u003c/h3\u003e\n\u003cp\u003eNo changes, only the version is increased.\u003c/p\u003e\n\u003ch2\u003e1.11.0-rc02\u003c/h2\u003e\n\u003cp\u003eRestored binary compatibility with 1.10.2 and older versions on Wasm/JS for usages of \u003ccode\u003ePromise\u003c/code\u003e-related functions (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003e1.11.0-rc01\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/blob/master/CHANGES.md\"\u003eorg.jetbrains.kotlinx:kotlinx-coroutines-play-services's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.11.0\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003ePromise\u003c/code\u003e-related functions from JS and Wasm/JS to the new \u003ccode\u003eweb\u003c/code\u003e target. On Wasm/JS, this is a breaking change. Before the change, \u003ccode\u003ePromise\u003c/code\u003e on Wasm/JS could work with arbitrary Kotlin types, but now, only \u003ccode\u003eJsAny\u003c/code\u003e subtypes are accepted (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4563\"\u003e#4563\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eChanged handling of coroutine exceptions that can't be propagated on JS and Wasm/JS. Before, exceptions were logged, but now, they are reported to the JS runtime (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4451\"\u003e#4451\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4631\"\u003e#4631\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeprecated using \u003ccode\u003eCoroutineDispatcher\u003c/code\u003e as the coroutine context key; now, \u003ccode\u003eContinuationInterceptor\u003c/code\u003e has to be used instead (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4333\"\u003e#4333\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdvanced the deprecation levels on \u003ccode\u003ekotlinx-coroutines-test\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4604\"\u003e#4604\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded lint functions that mark passing a \u003ccode\u003eJob\u003c/code\u003e to coroutine builders as deprecated (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4435\"\u003e#4435\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003erunBlocking\u003c/code\u003e in code shared between JVM and Native (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4368\"\u003e#4368\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003esuspendCancellableCoroutine\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4574\"\u003e#4574\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eflowOn\u003c/code\u003e incorrectly handling \u003ccode\u003eThreadContextElement\u003c/code\u003e updates (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4403\"\u003e#4403\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed exceptions in user-supplied \u003ccode\u003eThread.UncaughtExceptionHandler\u003c/code\u003e instances causing the internal coroutines machinery to fail (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4516\"\u003e#4516\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCoroutineDispatcher.asScheduler\u003c/code\u003e in the RxJava integration not cancelling outstanding work when a \u003ccode\u003eWorker\u003c/code\u003e gets cancelled, which led to memory leaks in some scenarios (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4615\"\u003e#4615\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSharedFlow\u003c/code\u003e entering an invalid state when a subscriber and an emitter are cancelled simultaneously (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4583\"\u003e#4583\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed an R8 optimization leading to \u003ccode\u003eshareIn\u003c/code\u003e/\u003ccode\u003estateIn\u003c/code\u003e coroutines getting garbage-collected (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4646\"\u003e#4646\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/solevic\"\u003e\u003ccode\u003e@​solevic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSmall additions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eCompletableDeferred.asDeferred\u003c/code\u003e for obtaining a read-only \u003ccode\u003eDeferred\u003c/code\u003e view (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4408\"\u003e#4408\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSharedFlow.asFlow\u003c/code\u003e for obtaining a \u003ccode\u003eFlow\u003c/code\u003e view with hidden hot flow semantics (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4530\"\u003e#4530\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/g000sha256\"\u003e\u003ccode\u003e@​g000sha256\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow.collectLatest\u003c/code\u003e overload returning \u003ccode\u003eNothing\u003c/code\u003e to assist with finding unreachable code (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4454\"\u003e#4454\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eReceiveChannel.consumeTo\u003c/code\u003e for consuming a \u003ccode\u003eReceiveChannel\u003c/code\u003e into a \u003ccode\u003eMutableCollection\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4520\"\u003e#4520\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e overload returning a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;\u003c/code\u003e, similar to \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e returning \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4275\"\u003e#4275\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/xit0c\"\u003e\u003ccode\u003e@​xit0c\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded terminal \u003ccode\u003eFlow\u003c/code\u003e operators for collecting a \u003ccode\u003eFlow\u003c/code\u003e to a \u003ccode\u003eMap\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/1541\"\u003e#1541\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog relative to version 1.11.0\u003c/h3\u003e\n\u003cp\u003eNo changes, only the version is increased.\u003c/p\u003e\n\u003ch2\u003eVersion 1.11.0-rc02\u003c/h2\u003e\n\u003cp\u003eRestored binary compatibility with 1.10.2 and older versions on Wasm/JS for usages of \u003ccode\u003ePromise\u003c/code\u003e-related functions (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eVersion 1.11.0-rc01\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/8564f65764d3d05893cec026c6e94250e2b23874\"\u003e\u003ccode\u003e8564f65\u003c/code\u003e\u003c/a\u003e Version 1.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/a4c6af96c15fe30f5d4e8b810ea74f8babd5805c\"\u003e\u003ccode\u003ea4c6af9\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/ef917b460aa741691fbf991ee1b813049cae18c9\"\u003e\u003ccode\u003eef917b4\u003c/code\u003e\u003c/a\u003e KT-84955: mark apple x64 tagets as deprecated error (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/5ebc421e341bf2ddce734d369da87df1985e80bd\"\u003e\u003ccode\u003e5ebc421\u003c/code\u003e\u003c/a\u003e Update the release procedure description (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4670\"\u003e#4670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/95f46a073bc4a1230352108cea1835fd22219a80\"\u003e\u003ccode\u003e95f46a0\u003c/code\u003e\u003c/a\u003e Remove old maven repository settings (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4672\"\u003e#4672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/b4f4f0aa6acb692f3fbcadd70e4958e3e9d370fc\"\u003e\u003ccode\u003eb4f4f0a\u003c/code\u003e\u003c/a\u003e Fix package name of \u003ccode\u003eToMapCollectionSamplesTest\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4674\"\u003e#4674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/86738dca7dc9ac82249abc8206263fa0065ee631\"\u003e\u003ccode\u003e86738dc\u003c/code\u003e\u003c/a\u003e Added templates to the issue creation wizard (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4654\"\u003e#4654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/330fcc221fb583f0b119f34191f735a73b827378\"\u003e\u003ccode\u003e330fcc2\u003c/code\u003e\u003c/a\u003e Version 1.11.0-rc02\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/e31cef6e9f2d26794be7d75ecbf3033b6432d582\"\u003e\u003ccode\u003ee31cef6\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/dc6e9f61eaf3a67f4bf474a7987aedc3f16cef37\"\u003e\u003ccode\u003edc6e9f6\u003c/code\u003e\u003c/a\u003e Restore Promise-related functions on Wasm/JS as HIDDEN (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/compare/1.9.0...1.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlinx:kotlinx-coroutines-play-services` from 1.9.0 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/releases\"\u003eorg.jetbrains.kotlinx:kotlinx-coroutines-play-services's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.11.0\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including co...\n\n_Description has been truncated_","html_url":"https://github.com/apoorvdarshan/fud-ai/pull/308","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/apoorvdarshan%2Ffud-ai/issues/308","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/308/packages"}},{"old_version":"2.4.10","new_version":"2.4.20","update_type":"patch","path":null,"pr_created_at":"2026-09-13T07:28:01.000Z","version_change":"2.4.10 → 2.4.20","issue":{"uuid":"5438773588","node_id":"PR_kwDOTcuPbs8AAAABDUZMSA","number":340,"state":"open","title":"chore(deps): bump the kotlin group with 6 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-13T07:28:01.000Z","updated_at":"2026-09-13T07:28:15.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"kotlin","update_count":6,"packages":[{"name":"org.jetbrains.kotlin:kotlin-metadata-jvm","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.jvm","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.multiplatform","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.android","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.parcelize","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"}],"path":null,"ecosystem":"maven"},"body":"Bumps the kotlin group with 6 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [org.jetbrains.kotlin:kotlin-metadata-jvm](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.serialization](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.jvm](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.multiplatform](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.parcelize](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n\nUpdates `org.jetbrains.kotlin:kotlin-metadata-jvm` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin:kotlin-metadata-jvm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin:kotlin-metadata-jvm's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.plugin.serialization` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.plugin.serialization's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.plugin.serialization's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.jvm` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.jvm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.jvm's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.multiplatform` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.multiplatform's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.multiplatform's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.android` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.android's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.android's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive in...\n\n_Description has been truncated_","html_url":"https://github.com/HereLiesAz/Graffux/pull/340","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/HereLiesAz%2FGraffux/issues/340","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/340/packages"}},{"old_version":"2.4.10","new_version":"2.4.20","update_type":"patch","path":null,"pr_created_at":"2026-09-13T06:23:31.000Z","version_change":"2.4.10 → 2.4.20","issue":{"uuid":"5438484766","node_id":"PR_kwDOGdyx8M8AAAABDUKvVQ","number":260,"state":"closed","title":"chore(deps): bump the kotlin-and-coroutines group with 4 updates","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-13T06:24:26.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-13T06:23:31.000Z","updated_at":"2026-09-13T06:24:27.000Z","time_to_close":55,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"kotlin-and-coroutines","update_count":4,"packages":[{"name":"org.jetbrains.kotlin.android","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.compose","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.parcelize","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.compose","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.parcelize","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"}],"path":null,"ecosystem":"maven"},"body":"Bumps the kotlin-and-coroutines group with 4 updates: [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin), [org.jetbrains.kotlin.plugin.compose](https://github.com/JetBrains/kotlin), [org.jetbrains.kotlin.plugin.parcelize](https://github.com/JetBrains/kotlin) and [org.jetbrains.kotlin.plugin.serialization](https://github.com/JetBrains/kotlin).\n\nUpdates `org.jetbrains.kotlin.android` from 2.4.10 to 2.4.20\nUpdates `org.jetbrains.kotlin.plugin.compose` from 2.4.10 to 2.4.20\nUpdates `org.jetbrains.kotlin.plugin.parcelize` from 2.4.10 to 2.4.20\nUpdates `org.jetbrains.kotlin.plugin.serialization` from 2.4.10 to 2.4.20\nUpdates `org.jetbrains.kotlin.plugin.compose` from 2.4.10 to 2.4.20\nUpdates `org.jetbrains.kotlin.plugin.parcelize` from 2.4.10 to 2.4.20\nUpdates `org.jetbrains.kotlin.plugin.serialization` from 2.4.10 to 2.4.20\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/Tarek-Bohdima/AsteroidRadar/pull/260","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tarek-Bohdima%2FAsteroidRadar/issues/260","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/260/packages"}},{"old_version":"2.4.10","new_version":"2.4.20","update_type":"patch","path":null,"pr_created_at":"2026-09-12T19:43:17.000Z","version_change":"2.4.10 → 2.4.20","issue":{"uuid":"5435593425","node_id":"PR_kwDOUKG7WM8AAAABDR66wQ","number":171,"state":"open","title":"deps: bump the gradle-minor-patch group with 5 updates","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-12T19:43:17.000Z","updated_at":"2026-09-12T19:44:16.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"gradle-minor-patch","update_count":5,"packages":[{"name":"androidx.compose:compose-bom","old_version":"2026.08.00","new_version":"2026.09.00"},{"name":"androidx.navigation:navigation-compose","old_version":"2.10.0","new_version":"2.10.1"},{"name":"org.jetbrains.kotlin.multiplatform","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.compose","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"}],"path":null,"ecosystem":"maven"},"body":"Bumps the gradle-minor-patch group with 5 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| androidx.compose:compose-bom | `2026.08.00` | `2026.09.00` |\n| androidx.navigation:navigation-compose | `2.10.0` | `2.10.1` |\n| [org.jetbrains.kotlin.multiplatform](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.compose](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.serialization](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n\nUpdates `androidx.compose:compose-bom` from 2026.08.00 to 2026.09.00\n\nUpdates `androidx.navigation:navigation-compose` from 2.10.0 to 2.10.1\n\nUpdates `org.jetbrains.kotlin.multiplatform` from 2.4.10 to 2.4.20\nUpdates `org.jetbrains.kotlin.plugin.compose` from 2.4.10 to 2.4.20\nUpdates `org.jetbrains.kotlin.plugin.serialization` from 2.4.10 to 2.4.20\nUpdates `org.jetbrains.kotlin.plugin.compose` from 2.4.10 to 2.4.20\nUpdates `org.jetbrains.kotlin.plugin.serialization` from 2.4.10 to 2.4.20\n\nYou can trigger a rebase of this PR by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/twojstar/llmbench/pull/171","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/twojstar%2Fllmbench/issues/171","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/171/packages"}},{"old_version":"2.4.10","new_version":"2.4.20","update_type":"patch","path":"/manager","pr_created_at":"2026-09-12T12:08:59.000Z","version_change":"2.4.10 → 2.4.20","issue":{"uuid":"5433188263","node_id":"PR_kwDOUX6iiM8AAAABDQFmfw","number":4,"state":"closed","title":"build(deps): bump the maven group in /manager with 7 updates","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-13T03:42:13.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-12T12:08:59.000Z","updated_at":"2026-09-13T03:42:14.000Z","time_to_close":55994,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"maven","update_count":7,"packages":[{"name":"com.materialkolor:material-kolor","old_version":"5.0.0","new_version":"5.0.1","repository_url":"https://github.com/jordond/materialkolor"},{"name":"com.google.protobuf:protobuf-kotlin-lite","old_version":"4.36.0","new_version":"4.36.1"},{"name":"com.google.protobuf:protoc","old_version":"4.36.0","new_version":"4.36.1","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"com.android.application","old_version":"9.3.2","new_version":"9.4.0"},{"name":"org.jetbrains.kotlin.android","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.compose","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"}],"path":"/manager","ecosystem":"maven"},"body":"Bumps the maven group in /manager with 7 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [com.materialkolor:material-kolor](https://github.com/jordond/materialkolor) | `5.0.0` | `5.0.1` |\n| com.google.protobuf:protobuf-kotlin-lite | `4.36.0` | `4.36.1` |\n| [com.google.protobuf:protoc](https://github.com/protocolbuffers/protobuf) | `4.36.0` | `4.36.1` |\n| com.android.application | `9.3.2` | `9.4.0` |\n| [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.compose](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n| [org.jetbrains.kotlin.plugin.serialization](https://github.com/JetBrains/kotlin) | `2.4.10` | `2.4.20` |\n\nUpdates `com.materialkolor:material-kolor` from 5.0.0 to 5.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jordond/materialkolor/releases\"\u003ecom.materialkolor:material-kolor's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eStop overriding consumer Material3 version on Android by \u003ca href=\"https://github.com/jordond\"\u003e\u003ccode\u003e@​jordond\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jordond/MaterialKolor/pull/529\"\u003ejordond/MaterialKolor#529\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): update gradle to v9.7.1 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jordond/MaterialKolor/pull/514\"\u003ejordond/MaterialKolor#514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update kotlin to v2.4.10 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jordond/MaterialKolor/pull/505\"\u003ejordond/MaterialKolor#505\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(deps): update compose.multiplatform to v1.12.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://github.com/jordond\"\u003ehttps://github.com/jordond\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jordond/MaterialKolor/compare/5.0.0...5.0.1\"\u003ehttps://github.com/jordond/MaterialKolor/compare/5.0.0...5.0.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jordond/MaterialKolor/commit/cc4d2cb931ba0a45995abe988717a2cea9ed478e\"\u003e\u003ccode\u003ecc4d2cb\u003c/code\u003e\u003c/a\u003e fix: stop overriding consumer material3 on Android (\u003ca href=\"https://redirect.github.com/jordond/materialkolor/issues/529\"\u003e#529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jordond/MaterialKolor/commit/d52e22f7e2632dc59d25fb3d35f8169efddb4278\"\u003e\u003ccode\u003ed52e22f\u003c/code\u003e\u003c/a\u003e chore(deps): update actions/checkout action to v7 (\u003ca href=\"https://redirect.github.com/jordond/materialkolor/issues/528\"\u003e#528\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jordond/MaterialKolor/commit/5fa870202a1c5eda899c622a17e6161b462f3dd3\"\u003e\u003ccode\u003e5fa8702\u003c/code\u003e\u003c/a\u003e clean up gradle files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jordond/MaterialKolor/commit/21e912997580a5f525c1cee792273ce637b3f86c\"\u003e\u003ccode\u003e21e9129\u003c/code\u003e\u003c/a\u003e chore(deps): update actions/setup-java action to v6 (\u003ca href=\"https://redirect.github.com/jordond/materialkolor/issues/518\"\u003e#518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jordond/MaterialKolor/commit/10183323edddc5fc25599d7c8018bd0c8859c98c\"\u003e\u003ccode\u003e1018332\u003c/code\u003e\u003c/a\u003e fix(deps): update builder dependencies (\u003ca href=\"https://redirect.github.com/jordond/materialkolor/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jordond/MaterialKolor/commit/3f97fa237181c621dd4f6e82bce783c063b9e44c\"\u003e\u003ccode\u003e3f97fa2\u003c/code\u003e\u003c/a\u003e Migrate MaterialKolorBuilder (\u003ca href=\"https://redirect.github.com/jordond/materialkolor/issues/500\"\u003e#500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jordond/MaterialKolor/commit/7154b685e98dd9e9e7cfffc22cfda3d1355cd106\"\u003e\u003ccode\u003e7154b68\u003c/code\u003e\u003c/a\u003e switch to temurin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jordond/MaterialKolor/commit/78279e8a457a971d4701efb5db3686ee7f89d91c\"\u003e\u003ccode\u003e78279e8\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency com.diffplug.spotless to v8.10.1 (\u003ca href=\"https://redirect.github.com/jordond/materialkolor/issues/519\"\u003e#519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jordond/MaterialKolor/commit/632f1ee2fcb111f6bfa3f0a6dcbe3b4b4b927c66\"\u003e\u003ccode\u003e632f1ee\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency com.android.kotlin.multiplatform.library to v9...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jordond/MaterialKolor/commit/213e6f26074689ee3527bab3b9ad8c980ec13b2c\"\u003e\u003ccode\u003e213e6f2\u003c/code\u003e\u003c/a\u003e fix(deps): update compose.multiplatform to v1.12.0 (\u003ca href=\"https://redirect.github.com/jordond/materialkolor/issues/517\"\u003e#517\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jordond/materialkolor/compare/5.0.0...5.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.google.protobuf:protobuf-kotlin-lite` from 4.36.0 to 4.36.1\n\nUpdates `com.google.protobuf:protoc` from 4.36.0 to 4.36.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/protocolbuffers/protobuf/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.google.protobuf:protoc` from 4.36.0 to 4.36.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/protocolbuffers/protobuf/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.android.application` from 9.3.2 to 9.4.0\n\nUpdates `org.jetbrains.kotlin.android` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.android's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.android's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.plugin.compose` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.plugin.compose's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.plugin.compose's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.plugin.serialization` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.plugin.serialization's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.plugin.serialization's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.plugin.compose` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.plugin.compose's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.plugin.compose's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.plugin.serialization` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.plugin.serialization's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.plugin.serialization's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbra...\n\n_Description has been truncated_","html_url":"https://github.com/wutong7891/WutongSU/pull/4","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/wutong7891%2FWutongSU/issues/4","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4/packages"}},{"old_version":"1.9.24","new_version":"2.4.20","update_type":"major","path":null,"pr_created_at":"2026-09-12T08:56:10.000Z","version_change":"1.9.24 → 2.4.20","issue":{"uuid":"5432322785","node_id":"PR_kwDOS_Qw188AAAABDPb_LA","number":14,"state":"open","title":"deps: bump org.jetbrains.kotlin.plugin.serialization from 1.9.24 to 2.4.20","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-12T08:56:10.000Z","updated_at":"2026-09-12T08:56:11.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps","packages":[{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"1.9.24","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"}],"path":null,"ecosystem":"maven"},"body":"Bumps [org.jetbrains.kotlin.plugin.serialization](https://github.com/JetBrains/kotlin) from 1.9.24 to 2.4.20.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.plugin.serialization's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.plugin.serialization's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v1.9.24...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=org.jetbrains.kotlin.plugin.serialization\u0026package-manager=gradle\u0026previous-version=1.9.24\u0026new-version=2.4.20)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/JoexBlaze89/TacoCasaOS-/pull/14","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/JoexBlaze89%2FTacoCasaOS-/issues/14","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/14/packages"}},{"old_version":"2.4.10","new_version":"2.4.20","update_type":"patch","path":null,"pr_created_at":"2026-09-12T06:42:56.000Z","version_change":"2.4.10 → 2.4.20","issue":{"uuid":"5431779324","node_id":"PR_kwDOUXlW3s8AAAABDPB9iw","number":7,"state":"open","title":"Bump the kotlin group with 2 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-12T06:42:56.000Z","updated_at":"2026-09-12T06:42:57.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"kotlin","update_count":2,"packages":[{"name":"org.jetbrains.kotlin.plugin.compose","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.4.10","new_version":"2.4.20","repository_url":"https://github.com/JetBrains/kotlin"}],"path":null,"ecosystem":"maven"},"body":"Bumps the kotlin group with 2 updates: [org.jetbrains.kotlin.plugin.compose](https://github.com/JetBrains/kotlin) and [org.jetbrains.kotlin.plugin.serialization](https://github.com/JetBrains/kotlin).\n\nUpdates `org.jetbrains.kotlin.plugin.compose` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.plugin.compose's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.plugin.compose's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.plugin.serialization` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.plugin.serialization's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.plugin.serialization's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin.plugin.serialization` from 2.4.10 to 2.4.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin.plugin.serialization's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.4.20\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin.plugin.serialization's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.20\u003c/h2\u003e\n\u003ch3\u003eAnalysis API\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86546\"\u003e\u003ccode\u003eKT-86546\u003c/code\u003e\u003c/a\u003e Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85418\"\u003e\u003ccode\u003eKT-85418\u003c/code\u003e\u003c/a\u003e Implement an API for accessing deserialized file annotations in Analysis API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-74448\"\u003e\u003ccode\u003eKT-74448\u003c/code\u003e\u003c/a\u003e K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85856\"\u003e\u003ccode\u003eKT-85856\u003c/code\u003e\u003c/a\u003e containingSymbol of constructor property differs for local and non-local classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-65417\"\u003e\u003ccode\u003eKT-65417\u003c/code\u003e\u003c/a\u003e K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Code Compilation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-76457\"\u003e\u003ccode\u003eKT-76457\u003c/code\u003e\u003c/a\u003e K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. FIR\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70552\"\u003e\u003ccode\u003eKT-70552\u003c/code\u003e\u003c/a\u003e No expects for actual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69727\"\u003e\u003ccode\u003eKT-69727\u003c/code\u003e\u003c/a\u003e K2 IDE. Wrong error in the editor on calling \u003ccode\u003eclone\u003c/code\u003e function of actual enum instance in non-jvm platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-69726\"\u003e\u003ccode\u003eKT-69726\u003c/code\u003e\u003c/a\u003e FP errors on declaring \u003ccode\u003efun clone()\u003c/code\u003e in actual enum in not-jvm source-set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86014\"\u003e\u003ccode\u003eKT-86014\u003c/code\u003e\u003c/a\u003e Types are broken after remove parameter through change signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86363\"\u003e\u003ccode\u003eKT-86363\u003c/code\u003e\u003c/a\u003e KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86147\"\u003e\u003ccode\u003eKT-86147\u003c/code\u003e\u003c/a\u003e Drop \u003ccode\u003ekotlin.parallel.resolve.under.global.lock\u003c/code\u003e registry key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85543\"\u003e\u003ccode\u003eKT-85543\u003c/code\u003e\u003c/a\u003e Avoid lazy resolve for the contracts phase if no constracts might be resolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Infrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84914\"\u003e\u003ccode\u003eKT-84914\u003c/code\u003e\u003c/a\u003e Do not publish analysis-api-test-framework\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86986\"\u003e\u003ccode\u003eKT-86986\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ekotlin-compiler-common-for-ide\u003c/code\u003e bundles unrelated Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-86186\"\u003e\u003ccode\u003eKT-86186\u003c/code\u003e\u003c/a\u003e Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85360\"\u003e\u003ccode\u003eKT-85360\u003c/code\u003e\u003c/a\u003e Drop kotlin-compiler-testdata-for-ide artifact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85585\"\u003e\u003ccode\u003eKT-85585\u003c/code\u003e\u003c/a\u003e Simplify the dependencies graph for the Analysis API modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85381\"\u003e\u003ccode\u003eKT-85381\u003c/code\u003e\u003c/a\u003e Remove tests for the FE10 implementation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAnalysis API. Light Classes\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84645\"\u003e\u003ccode\u003eKT-84645\u003c/code\u003e\u003c/a\u003e Support resolving to companion block members \u0026amp; extensions from Java (light classes)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-80775\"\u003e\u003ccode\u003eKT-80775\u003c/code\u003e\u003c/a\u003e Support PsiClass#getRecordComponents in light classes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-57537\"\u003e\u003ccode\u003eKT-57537\u003c/code\u003e\u003c/a\u003e SLC: propagate default parameter value from (\u003ccode\u003e@JvmOverloads\u003c/code\u003e) \u003ccode\u003eexpect\u003c/code\u003e declarations to \u003ccode\u003eactual\u003c/code\u003e declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85040\"\u003e\u003ccode\u003eKT-85040\u003c/code\u003e\u003c/a\u003e [Analysis API] Improve Java / Kotlin interop in KMP projects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87301\"\u003e\u003ccode\u003eKT-87301\u003c/code\u003e\u003c/a\u003e SymbolLightAccessorMethod#isValid returns false for delegated properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87171\"\u003e\u003ccode\u003eKT-87171\u003c/code\u003e\u003c/a\u003e SLC: non-mapped Kotlin collection supertype is dropped from supertype list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-87250\"\u003e\u003ccode\u003eKT-87250\u003c/code\u003e\u003c/a\u003e JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-70428\"\u003e\u003ccode\u003eKT-70428\u003c/code\u003e\u003c/a\u003e AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-63568\"\u003e\u003ccode\u003eKT-63568\u003c/code\u003e\u003c/a\u003e Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-36740\"\u003e\u003ccode\u003eKT-36740\u003c/code\u003e\u003c/a\u003e MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/890ac1d94fdb80eb85f0eeb5be5e4352df987b2f\"\u003e\u003ccode\u003e890ac1d\u003c/code\u003e\u003c/a\u003e Add Changelog for 2.4.20-RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8860aed4ae4541301f24147d6785c764fa2bef89\"\u003e\u003ccode\u003e8860aed\u003c/code\u003e\u003c/a\u003e 🍒 [FIR] Fix suspend conversion when expected type is nullable (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7769\"\u003e#7769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/ab5bcd94281c167d5b55887b78bd04ee13abdf35\"\u003e\u003ccode\u003eab5bcd9\u003c/code\u003e\u003c/a\u003e Edit ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9464edc097f4490b304f8a6d43ded010f6c8746e\"\u003e\u003ccode\u003e9464edc\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.4.20-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0261e43b78e4db832fb347bb5a055eeba293d742\"\u003e\u003ccode\u003e0261e43\u003c/code\u003e\u003c/a\u003e Cherry-pick \u0026quot;Fix \u003ccode\u003easBodyAndResultVar\u003c/code\u003e call in `visitInlinedLambdaInComposable...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0763513670c55c40532e4ed84ac7c1e01bf6a772\"\u003e\u003ccode\u003e0763513\u003c/code\u003e\u003c/a\u003e [box-tests] Workaround for klib compatibility tests (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7626\"\u003e#7626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/045aec6647e3f4e82d91d51d255c77d51f980c7c\"\u003e\u003ccode\u003e045aec6\u003c/code\u003e\u003c/a\u003e [Wasm] Append scripts from webpack.config.d in the end of the file (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7615\"\u003e#7615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/cd7173bf0b61eb5a831d6425fbb7f05dea19b312\"\u003e\u003ccode\u003ecd7173b\u003c/code\u003e\u003c/a\u003e 🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance survives...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/d36a2ffbccc4247c4d9fd18f62f369cca9b0054b\"\u003e\u003ccode\u003ed36a2ff\u003c/code\u003e\u003c/a\u003e CastsOptimizationPass: break aliases cycles (\u003ca href=\"https://redirect.github.com/JetBrains/kotlin/issues/7578\"\u003e#7578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/8664983b34dca6193996f745d441f8edf6da0031\"\u003e\u003ccode\u003e8664983\u003c/code\u003e\u003c/a\u003e [CLI] Restore custom IC search scope creation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/chafis1221-oss/Background-/pull/7","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/chafis1221-oss%2FBackground-/issues/7","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/7/packages"}}]}