)]}'
{
  "log": [
    {
      "commit": "082d830e9251b99f0fe9678bbe04f6293d83eb87",
      "tree": "60f6d0bcd50f8196391306c0250ad12c7b8536a8",
      "parents": [
        "5287c7b42cc0ae7313beb659aa58641499b2bb89"
      ],
      "author": {
        "name": "Filipp Zhinkin",
        "email": "filipp.zhinkin@jetbrains.com",
        "time": "Thu Oct 22 16:22:46 2026 +0000"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Fri Oct 23 00:45:34 2026 +0200"
      },
      "message": "KT-80664: Correctly check codepoint\u0027s category\n\n^KT-80664 Fixed"
    },
    {
      "commit": "5287c7b42cc0ae7313beb659aa58641499b2bb89",
      "tree": "4cfb894d43c487cf1372db74dfd9e92640f2676c",
      "parents": [
        "124e733e1600aac0f3d0bf6baf2690650fd61a08"
      ],
      "author": {
        "name": "Filipp Zhinkin",
        "email": "filipp.zhinkin@jetbrains.com",
        "time": "Thu Oct 22 16:22:45 2026 +0000"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Fri Oct 23 00:45:34 2026 +0200"
      },
      "message": "KT-80664: Update tests to cover multi-byte code points"
    },
    {
      "commit": "124e733e1600aac0f3d0bf6baf2690650fd61a08",
      "tree": "f239449e1836358f1f85483a2e5a7d78b9b14c94",
      "parents": [
        "0bda2cb276aa1a565cfec3b526e540c960c4052d"
      ],
      "author": {
        "name": "Dmitrii Gridin",
        "email": "dmitry.gridin@jetbrains.com",
        "time": "Thu Oct 22 14:59:23 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 23:49:18 2026 +0200"
      },
      "message": "[PSI] Turn KtCompanionBlock into an interface\n\nKeep only the API surface in psi-api and move the implementation to the\ninternal `KtCompanionBlockImpl` in psi-impl, as `KtUnionType` already\ndoes. The `getDeclarations` override stays in the interface to keep\nits elements non-flexible for Kotlin callers.\n\nThe decompiler builds `KotlinPlaceHolderStubImpl\u003cKtCompanionBlock\u003e`\nand cannot see the internal implementation, so the type parameters of\n`KotlinStubBaseImpl` and `KotlinPlaceHolderStubImpl` are relaxed from\n`KtElementImplStub\u003c*\u003e` to `KtElement`, matching `KotlinStubElement`.\n\nThe resolver goldens print the runtime PSI class name, hence the\n`KtCompanionBlockImpl` there.\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "0bda2cb276aa1a565cfec3b526e540c960c4052d",
      "tree": "876a5f52cf4f6a15e14398239981d280bf2fb64f",
      "parents": [
        "c003827adcafb48fa52f187aa5f6b14917589283"
      ],
      "author": {
        "name": "Aleksandr Shefer",
        "email": "aleksandr.shefer@jetbrains.com",
        "time": "Thu Oct 22 08:53:43 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 23:45:12 2026 +0200"
      },
      "message": "[Wasm] add missing wasmtime-configuration plugin (parcelize, power-assert)\nFixes ^KT-90542\n"
    },
    {
      "commit": "c003827adcafb48fa52f187aa5f6b14917589283",
      "tree": "c96316ca45c89e064ee3dc02982d7fd41f8144b3",
      "parents": [
        "54feba91f2e0f2ef5c13c64de22373ec0210d1e0"
      ],
      "author": {
        "name": "Alexey Belkov",
        "email": "alexey.belkov@jetbrains.com",
        "time": "Thu Oct 22 13:48:11 2026 +0400"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 20:32:07 2026 +0200"
      },
      "message": "[SLC] Generate the static copies of @JvmStatic companion members in annotation classes\n\nThe JVM backend copies the `@JvmStatic` members of the companion object\nof an annotation class into the annotation interface as static methods,\nas it does for interfaces. Symbol light classes didn\u0027t create them, so\nJava code couldn\u0027t call, e.g., `KtAnnotation.staticFun()`.\n\nAdd them as `SymbolLightClassForInterface` does. These are the first\nmethods of an annotation light class that aren\u0027t annotation members, so\ndecide by the class of the property rather than by the light class\nwhether an accessor is abstract, has a default value, and has a setter.\nApply nullability annotations to their parameters, too, as annotation\nmembers have none.\n\nThe copies keep mapping `KClass` to `java.lang.Class` in return types\nlike annotation members. This matches the bytecode, although the JVM\nbackend shouldn\u0027t do it, see KT-90563 (this bug should likely be fixed\nin the backend first, and then SLC should be adapted).\n\n^KT-90561 Fixed\n"
    },
    {
      "commit": "54feba91f2e0f2ef5c13c64de22373ec0210d1e0",
      "tree": "1c97830229df48e540e5e477000149a0a296fedc",
      "parents": [
        "c1b410b93783107c47114de854b98702a41450b2"
      ],
      "author": {
        "name": "Alexey Belkov",
        "email": "alexey.belkov@jetbrains.com",
        "time": "Thu Oct 22 13:37:56 2026 +0400"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 20:32:07 2026 +0200"
      },
      "message": "[SLC] Add tests for @JvmStatic companion members of annotation classes\n\nRecord the current behavior of symbol light classes, which the next\ncommit fixes: the light class of an annotation class has no static\ncopies of the `@JvmStatic` members of its companion object, such as\n`staticFun()` and `getStaticProperty()`.\n\n^KT-90561\n"
    },
    {
      "commit": "c1b410b93783107c47114de854b98702a41450b2",
      "tree": "17be04da64525492d82f4966fbe9dc472b11b749",
      "parents": [
        "2840765751159d35b2ba4d08145daff2c28200a6"
      ],
      "author": {
        "name": "Alexey Belkov",
        "email": "alexey.belkov@jetbrains.com",
        "time": "Thu Oct 22 12:54:37 2026 +0400"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 20:32:07 2026 +0200"
      },
      "message": "[SLC] Keep the get/set prefix of @JvmExposeBoxed static accessors copied into records\n\nThe JVM backend drops the `get`/`set` prefix only when the property\nitself belongs to an annotation class or a `@JvmRecord` class, see\n`MethodSignatureMapper.mapFunctionName`, so the static accessors that\n`@JvmStatic` copies from the companion object into a record keep it.\nSymbol light classes checked the light class that receives the accessor\ninstead. The `javaMethodName` endpoint already gives the right name for\nregular accessors, but `@JvmExposeBoxed` ones fall back to this default\nname, so they became `baz()` instead of `getBaz()`.\n\nCompute the default name with `hasPrefixlessAccessorNames`, which\nchecks the class of the property.\n\n^KT-90555 Fixed\n"
    },
    {
      "commit": "2840765751159d35b2ba4d08145daff2c28200a6",
      "tree": "4d598e2a4459ae6ca26d5f0294c3a08d57aa4118",
      "parents": [
        "7e4f040e8e3c2c99c95696c2d0abb24976260032"
      ],
      "author": {
        "name": "Alexey Belkov",
        "email": "alexey.belkov@jetbrains.com",
        "time": "Thu Oct 22 12:54:37 2026 +0400"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 20:32:07 2026 +0200"
      },
      "message": "[SLC] Don\u0027t append the module name to accessors of internal properties of records\n\nThe JVM backend names the accessors of properties of annotation classes\nand `@JvmRecord` classes after the property and returns that name\nbefore any mangling, see `MethodSignatureMapper.mapFunctionName`, so\nan `internal` property of a record gets no module name suffix either:\n`internal val i: Int` becomes `int i()`. Symbol light classes appended\nthe suffix, so Java code saw `i$module()` instead of the accessor of\nthe record component.\n\nThe JVM records KEEP requires this naming: the accessors of a record\nhave the same names as its properties, see\nhttps://github.com/Kotlin/KEEP/blob/main/proposals/KEEP-0233-jvm-records.md#property-accessor-method-names\n\nReturn the property name right after the `JvmName` check, which the\nbackend also performs first. The `javaMethodName` endpoint shares the\ncode and is fixed as well. The early return also skips the inline class\nmangling, so drop the same check from `hasMangledNameDueToInlineClasses`.\nAnnotation classes are unaffected in practice, as their properties\ncan\u0027t be `internal`.\n\n^KT-90554 Fixed\n"
    },
    {
      "commit": "7e4f040e8e3c2c99c95696c2d0abb24976260032",
      "tree": "8b3418dd1a8994eb589d07673d616ab3d4ab220a",
      "parents": [
        "2e2e218a7a7ec739c5197764bc193c48366dd904"
      ],
      "author": {
        "name": "Alexey Belkov",
        "email": "alexey.belkov@jetbrains.com",
        "time": "Thu Oct 22 12:33:01 2026 +0400"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 20:32:07 2026 +0200"
      },
      "message": "[SLC] Add tests for the names of internal and @JvmExposeBoxed static accessors in records\n\nRecord the current behavior of symbol light classes, which the next\ncommits fix:\n- Accessors of `internal` properties of records get the module name\n  suffix, e.g., `i$light_idea_test_case()` instead of `i()`. The\n  `javaMethodName` endpoint returns the suffixed name as well, see the\n  Analysis API symbol test.\n- `@JvmExposeBoxed` static accessors that `@JvmStatic` copies from the\n  companion object into a record lose the `get`/`set` prefix: `baz()`\n  instead of `getBaz()`.\n\n^KT-90554\n^KT-90555\n"
    },
    {
      "commit": "2e2e218a7a7ec739c5197764bc193c48366dd904",
      "tree": "6637fa3c4fc5c51bc68766e46516eb9278a18160",
      "parents": [
        "d9c76da56364b97fb444a9742b1b9bdae80cc0c1"
      ],
      "author": {
        "name": "Nikolay Lunyak",
        "email": "nikolay.lunyak@jetbrains.com",
        "time": "Thu Oct 22 15:42:53 2026 +0300"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 19:07:35 2026 +0200"
      },
      "message": "[FIR] Account for smart casts when building IR for postfix\n\n^KT-90470 Fix\n"
    },
    {
      "commit": "d9c76da56364b97fb444a9742b1b9bdae80cc0c1",
      "tree": "4ffb8a2e7df19765b740e6af65769b820338cdce",
      "parents": [
        "4b2cc4ac3a4b2d79db9594dc7ad6fb3a60d0a773"
      ],
      "author": {
        "name": "Nikolay Lunyak",
        "email": "nikolay.lunyak@jetbrains.com",
        "time": "Thu Oct 22 15:34:29 2026 +0300"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 19:07:35 2026 +0200"
      },
      "message": "[FIR] Reproduce ^KT-90470\n"
    },
    {
      "commit": "4b2cc4ac3a4b2d79db9594dc7ad6fb3a60d0a773",
      "tree": "5e403758e69861f7de9ac76b781dfa9382d9917e",
      "parents": [
        "86db38cad810c5c7009deabf37ced218c2a7e9d8"
      ],
      "author": {
        "name": "Yury Kabargin",
        "email": "yury.kabargin@jetbrains.com",
        "time": "Wed Oct 21 14:11:07 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 18:14:47 2026 +0200"
      },
      "message": "Remove org.jetbrains.intellij.deps:jdom from trusted artifacts\n\n^KTI-3284 Fixed\n"
    },
    {
      "commit": "86db38cad810c5c7009deabf37ced218c2a7e9d8",
      "tree": "4c899623e269e6d5fdf102bc092b361909e3ba37",
      "parents": [
        "fc12bccbebd87b5265e0b9aee17f29c6474a15ad"
      ],
      "author": {
        "name": "Yury Kabargin",
        "email": "yury.kabargin@jetbrains.com",
        "time": "Wed Oct 21 14:06:06 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 18:14:47 2026 +0200"
      },
      "message": "Add a test that no new trusted artifacts appear in verification metadata\n\nKTI-3284\n"
    },
    {
      "commit": "fc12bccbebd87b5265e0b9aee17f29c6474a15ad",
      "tree": "1222ccb87ab15df0fb2cfd1aa00adff260112efe",
      "parents": [
        "aeada85ee152abbb276b07c43f352cb1c44b0e3f"
      ],
      "author": {
        "name": "Andrey Yastrebov",
        "email": "andrey.yastrebov@jetbrains.com",
        "time": "Wed Oct 21 10:22:21 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 17:33:23 2026 +0200"
      },
      "message": "[Gradle] Test reading project structure metadata published since 1.8.20\n\nLibraries keep the metadata they were published with, so the plugin\nhas to read what every release since 1.8.20 wrote. Add one unchanged\nfile per Kotlin feature release, taken from kotlinx and ktor jars on\nMaven Central, read each through the metadata jar extractor and check\nthe result against the raw JSON tree. Also check that writing each\nfile back reproduces it byte for byte, since older plugins read what\nthe current one publishes.\n\n^KT-86830\n"
    },
    {
      "commit": "aeada85ee152abbb276b07c43f352cb1c44b0e3f",
      "tree": "97f7f6e6b3c139a05006d74ed5357cf7d3a21979",
      "parents": [
        "32dd3c35b5b7b2bfaf5b7aad25b66ab92a4c5c0e"
      ],
      "author": {
        "name": "Andrey Yastrebov",
        "email": "andrey.yastrebov@jetbrains.com",
        "time": "Fri Aug 14 17:59:43 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 17:33:23 2026 +0200"
      },
      "message": "[Gradle] Restore Gson\u0027s leniency when reading project structure metadata\n\nAfter the switch to kotlinx-serialization the reader got stricter than\nGson was, so some existing files would fail metadata dependency\nresolution with a serialization exception. This restores the old\nbehavior:\n\n- A missing isPublishedAsRoot defaults to false again. Producers older\n  than format 0.3.1 omit it.\n- isPublishedAsRoot and hostSpecific accept unquoted booleans, as Gson\u0027s\n  asString did. Encoding still writes the quoted form.\n- isLenient is on and a leading UTF-8 BOM is stripped, matching Gson\u0027s\n  JsonParser.parseReader.\n\nGson also accepted single-quoted strings. Nothing is known to write\nthem, so they stay unsupported.\n\nThe Json instance now sets every option itself instead of starting from\nKgpJson.prettyPrinted, so a change there can\u0027t alter the published\nformat.\n\n^KT-86830\n"
    },
    {
      "commit": "32dd3c35b5b7b2bfaf5b7aad25b66ab92a4c5c0e",
      "tree": "aaec168a4b65a888c8803a7a8b6a650993f22bb2",
      "parents": [
        "b65084b82a277f53751cfdebec47c1cac7f164fc"
      ],
      "author": {
        "name": "Andrey Yastrebov",
        "email": "andrey.yastrebov@jetbrains.com",
        "time": "Fri Jul 31 16:27:31 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 17:33:23 2026 +0200"
      },
      "message": "[Gradle] Move project structure metadata JSON to kotlinx-serialization\n\nReplace the Gson JsonWriter/JsonParser code behind toJson() and\nparseKotlinSourceSetMetadataFromJson() with @Serializable DTOs. They\nlive in a separate KotlinProjectStructureMetadataJson.kt, so the\ninternal model can change without touching the wire format.\n\nThe output has to stay byte for byte the same. The file is published in\nmetadata jars, and the stdlib and kotlin.test builds compare it with\nchecked-in expectations using exact string equality. So the encoder\nkeeps Gson\u0027s two-space indent. The DTO fields are typed, and small\nserializers produce the string forms the format uses: isPublishedAsRoot\nand hostSpecific are Booleans written as quoted strings, with\nhostSpecific left out when false, and module dependencies are\nModuleDependencyIdentifier values written as \"groupId:moduleId\". A\ngolden-text test, with the expected file generated by the old Gson code,\nnow guards the exact bytes. Before, only the round trip was tested.\n\nGson\u0027s default HTML escaping of \u003c, \u003e, \u0026, \u003d and \u0027 is not reproduced.\nThose characters don\u0027t show up in variant or source set names.\n\nParsing \"groupId:moduleId\" moves to parseModuleDependencyIdentifier(),\nso a JSON entry without a separator fails with a message naming it,\ninstead of an IndexOutOfBoundsException. The XML fallback is left as it\nis.\n\n^KT-86830 Fixed\n"
    },
    {
      "commit": "b65084b82a277f53751cfdebec47c1cac7f164fc",
      "tree": "08f0aa457781bd886221fa218ed3cc8cf70e18c5",
      "parents": [
        "b6fd76aa0b3d2bb15f42b1ae4ef408785cb9dfb7"
      ],
      "author": {
        "name": "Martin Zimen",
        "email": "martin.zimen@jetbrains.com",
        "time": "Wed Oct 14 16:46:14 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 16:36:56 2026 +0200"
      },
      "message": "[Benchmarks] Name cleanup after module split\n\nBecause the benchmarks shared a single Gradle module up until\nrecently, separation needed to be done through benchmark configurations.\n\nNow, separate benchmark configurations are no longer needed and using\n`main` configuration is simpler and cleaner. Furthermore, this allows\nrunning all benchmarks through `gradle benchmark`. This could be useful\nfor smoke testing benchmarks etc.\n\nThe downside is renaming of the tasks that might be used in TC\nconfigurations. We believe it\u0027s beneficial to do this now as the names\nof tasks have changed anyway since the Gradle module structure changed.\n\nThis also reverts renaming of FE compilation parameters from\n`56ece362913da [Tests] KT-86450 JVM Benchmarks setup` as the\n`compilation` prefix is no longer needed since the parameter names no\nlonger share Gradle module. The original names were cleaner.\n"
    },
    {
      "commit": "b6fd76aa0b3d2bb15f42b1ae4ef408785cb9dfb7",
      "tree": "b29fcf7493e6269c06c69a184e57c6129c48a9b9",
      "parents": [
        "20bfaeba6ff23417cac5d7ba051e78a242f55d93"
      ],
      "author": {
        "name": "Martin Zimen",
        "email": "martin.zimen@jetbrains.com",
        "time": "Wed Oct 14 13:35:33 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 16:36:56 2026 +0200"
      },
      "message": "[Benchmarks] Partition :benchmarks module\n\nThe `:benchmarks` module consisted of one Gradle module that combined\nthings that shouldn\u0027t be combined in a single module -- there were\ndifferent benchmark execution methods (JMH and JUnit) and dependencies\nof different domains were all mixed in one `build.gradle.kts`.\nFurthermore, the ownership wasn\u0027t clear. The whole module was assigned\nto the FE team even though it contained other benchmarks.\n\nNow, migration of KAPT benchmarks from separate repo is planned\n(#KQA-3399). It logically belongs into the benchmarks directory but it\ncan\u0027t be cleanly added there. Therefore, the structure of benchmarks\nneeds and should be revisited.\n\nThis commit splits the big module into 4 logical modules. It respects\nthe build logic (JMH, JUnit, `kotlinx.benchmark`), content and\nownership. This should lead to more maintainable code where dependencies\nare clearly specified for each module and not dumped into one common\n`build.gradle.kts`.\n\nThis also prepares space for KAPT benchmarks migration.\n"
    },
    {
      "commit": "20bfaeba6ff23417cac5d7ba051e78a242f55d93",
      "tree": "e881949a2f6994d4ff5de006e7a8f443bee2a58d",
      "parents": [
        "981d7d4f2bf67dccde831a9378396001bfe20466"
      ],
      "author": {
        "name": "Adam Semenenko",
        "email": "adam.semenenko@jetbrains.com",
        "time": "Wed Oct 21 10:56:50 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 16:32:09 2026 +0200"
      },
      "message": "Fix title in file-leak-detector-downloader README\n"
    },
    {
      "commit": "981d7d4f2bf67dccde831a9378396001bfe20466",
      "tree": "6b31ae19e73cc56a9db9516fefd23b63493a2bcf",
      "parents": [
        "3f9a4164bf6ab609a84699d381432f7bbdf13926"
      ],
      "author": {
        "name": "Adam Semenenko",
        "email": "adam.semenenko@jetbrains.com",
        "time": "Tue Oct 20 23:34:05 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 16:32:09 2026 +0200"
      },
      "message": "[Gradle] Skip JS tooling mode lookup on the root project\n\nThe root project\u0027s tooling project is always itself, so return early without reading any properties. This avoids subprojects calling `PropertiesProvider(rootProject)` - which is not project-iso safe.\n\n^KT-89532\n"
    },
    {
      "commit": "3f9a4164bf6ab609a84699d381432f7bbdf13926",
      "tree": "52585e0e05220ca2296d198af45b5489dd5c1374",
      "parents": [
        "f36fd6de4eb5c251b4ed26bf69b9c7e768701cc6"
      ],
      "author": {
        "name": "Adam Semenenko",
        "email": "adam.semenenko@jetbrains.com",
        "time": "Mon Oct 12 12:40:51 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 16:32:09 2026 +0200"
      },
      "message": "[Gradle] Add ArchUnit test forbidding new `Project.rootProject` usages\n\nIntroduce ArchUnit tests to enforce coding patterns.\n\nAdd an initial test to check for `Project.rootProject`, which is incompatible with Isolated Projects.\n\nMore rules can be added without requiring the code is updated to be conformant.\nThe current state can be frozen in `src/archTest/archunit-store`, and gradually migrated.\nAdditions or removals will fail the test.\n\nAfter fixing a usage or adding a rule, update the store with `-ParchunitRefreeze`.\n\nThe implementation in this commit extends the default ArchUnit behaviour to improve error messages, formatting, and determinism.\n\nIntroduce a new kgp-build-utils project for the configureArchUnit util function.\n(It\u0027s nicer to use a util function to stop the KGP buildscript getting bigger and less legible, and we want to avoid cramming single-use utils into buildsrc-compat to help with cache-hits)\n"
    },
    {
      "commit": "f36fd6de4eb5c251b4ed26bf69b9c7e768701cc6",
      "tree": "8e9d29d270323fa1a0da763392627d4056af46a3",
      "parents": [
        "5a661b0bdb1cc1f21476acca65831ae8a48b9b8b"
      ],
      "author": {
        "name": "Adam Semenenko",
        "email": "adam.semenenko@jetbrains.com",
        "time": "Mon Oct 12 11:45:36 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 16:32:09 2026 +0200"
      },
      "message": "[Gradle] Resolve root project directory via isolated project view\n\n`Project.rootProject` is incompatible with Isolated Projects.\n"
    },
    {
      "commit": "5a661b0bdb1cc1f21476acca65831ae8a48b9b8b",
      "tree": "d7a2516ccabc4b6cb5d6a1a3da28c0ed1f9a4813",
      "parents": [
        "ebf9a1f0140a7164796b7418b89c73d0adc6552e"
      ],
      "author": {
        "name": "Adam Semenenko",
        "email": "adam.semenenko@jetbrains.com",
        "time": "Mon Oct 12 11:41:38 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 16:32:09 2026 +0200"
      },
      "message": "[Gradle] Get root project name via `rootProjectName()`\n\n`Project.rootProject` is incompatible with Isolated Projects.\n"
    },
    {
      "commit": "ebf9a1f0140a7164796b7418b89c73d0adc6552e",
      "tree": "1221ea04bc5f6b8a4cd63b7996efa7f2443724df",
      "parents": [
        "b3510503f71ddd750d14b8d099863617285e4c9d"
      ],
      "author": {
        "name": "Adam Semenenko",
        "email": "adam.semenenko@jetbrains.com",
        "time": "Mon Oct 12 11:41:29 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 16:32:09 2026 +0200"
      },
      "message": "[Gradle] Use `jsToolingProject()` for remaining JS/Wasm root accesses\n\nD8Plugin, NoBundleConfigurator, WasmNpmResolverPlugin and BaseNodeJsRootExtension accessed rootProject directly, breaking Isolated Projects in PER-PROJECT mode.\n\nAdd JS, WasmJS and WasmWASI smoke tests.\n\n^KT-89478\n^KT-89517\n"
    },
    {
      "commit": "b3510503f71ddd750d14b8d099863617285e4c9d",
      "tree": "95145f4374e6dec60a1efaa75a4c739a102b029b",
      "parents": [
        "8ba8368f347d992d257257e567dc1fe01f2767bb"
      ],
      "author": {
        "name": "Miłosz Piekutowski",
        "email": "milosz.piekutowski@jetbrains.com",
        "time": "Thu Oct 22 11:07:58 2026 +0000"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 16:22:43 2026 +0200"
      },
      "message": "[Klib] Test KDoc of type aliases, enum entries and accessors\n\nCover the new `KlibMetadataProtoBuf` extensions in\n`NativeKlibCliArgumentsTest` with and without `-Xexport-kdoc`, in a new\nAnalysis API `kdocProvider` test, in the `ExportedKdoc` stub tests and\nin the ObjC export `kdocExport` test.\n\nKT-85123"
    },
    {
      "commit": "8ba8368f347d992d257257e567dc1fe01f2767bb",
      "tree": "7db8cf88e3b2a4aac2518471c01ee9ec4ac9d3ee",
      "parents": [
        "0a189c5dc67d524e6e336c58be5d1c9fa0779b11"
      ],
      "author": {
        "name": "Miłosz Piekutowski",
        "email": "milosz.piekutowski@jetbrains.com",
        "time": "Thu Oct 22 11:07:57 2026 +0000"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 16:22:43 2026 +0200"
      },
      "message": "[stubs] Deserialize KDoc of type aliases, enum entries and accessors\n\nAdd `kdocText` to `KotlinTypeAliasStub` and\n`KotlinPropertyAccessorStub`, and fill the existing\n`KotlinEnumEntryStubImpl.kdocText`\n\nKT-85123"
    },
    {
      "commit": "0a189c5dc67d524e6e336c58be5d1c9fa0779b11",
      "tree": "45374371b1a60f41e294efce789ebc6d9dc3f7f8",
      "parents": [
        "64cd73860209c8f57508964bc0dc73d74b6cd617"
      ],
      "author": {
        "name": "Miłosz Piekutowski",
        "email": "milosz.piekutowski@jetbrains.com",
        "time": "Thu Oct 22 11:07:55 2026 +0000"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 16:22:43 2026 +0200"
      },
      "message": "[ObjCExport] Read serialized KDoc of enum entries and accessors\n\n`ObjCExportStubOrigin` treated only `DeserializedDescriptor`s as binary\norigins, but a deserialized enum entry is an\n`EnumEntrySyntheticClassDescriptor` and deserialized accessors are\n`PropertyAccessorDescriptor`s, so `extractSerializedKdocString` was\nnever reached for them and their KDoc stored in the KLIB was dropped\nfrom the header.\n\nKT-85123"
    },
    {
      "commit": "64cd73860209c8f57508964bc0dc73d74b6cd617",
      "tree": "633b12d26a5e3d29dc12fc2e4d6bec43af3366d1",
      "parents": [
        "59cbfad5dd5e2f67bbd630f1e64924f790d6f3ab"
      ],
      "author": {
        "name": "Miłosz Piekutowski",
        "email": "milosz.piekutowski@jetbrains.com",
        "time": "Thu Oct 22 11:07:52 2026 +0000"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 16:22:43 2026 +0200"
      },
      "message": "[Klib] Store KDoc of type aliases, enum entries and accessors\n\nAdd the `type_alias_kdoc`, `enum_entry_kdoc`, `property_getter_kdoc`\nand `property_setter_kdoc` extensions to `KlibMetadataProtoBuf`.\n\n^KT-85123 Fixed"
    },
    {
      "commit": "59cbfad5dd5e2f67bbd630f1e64924f790d6f3ab",
      "tree": "ad2f681687d00febe46a131837d3838e5839a5f2",
      "parents": [
        "b79d55dec01824249ac403ae049ef69a2410707e"
      ],
      "author": {
        "name": "Sergej Jaskiewicz",
        "email": "sergej.jaskiewicz@jetbrains.com",
        "time": "Mon Oct 05 17:34:59 2026 +0400"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 16:22:27 2026 +0200"
      },
      "message": "[JS] Use `QualityGate.Nightly` for the new JS lifecycle tasks\n\nKT-72720\n"
    },
    {
      "commit": "b79d55dec01824249ac403ae049ef69a2410707e",
      "tree": "2e5e38fd9f1b85b58261a15e6de572632d3b6f2b",
      "parents": [
        "d4502d000f5a63a2fe8a4ec19bafc6ab32f628d9"
      ],
      "author": {
        "name": "Simon Barinka",
        "email": "simon.barinka@jetbrains.com",
        "time": "Fri Oct 16 18:07:52 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 16:22:00 2026 +0200"
      },
      "message": "[K/N] Stabilize LLDB inline-lambda debug test\n\nLimit the ThrowException breakpoint to the generated test executable.\nLLDB otherwise sometimes resolves the ThrowException symbol from\nAudioToolboxCore only after the inferior launches, which makes the\nexpected breakpoint transcript depend on image-load timing.\n\nUnmute these tests:\n- testKt42208WithInlinedFunInKlib\n- testKt42208WithInlinedFunInKlibWithCache\n\n^KT-88349\n^KTI-3545\n"
    },
    {
      "commit": "d4502d000f5a63a2fe8a4ec19bafc6ab32f628d9",
      "tree": "313ed6e024bff32a54ea5354cbb73bdaeb52aa32",
      "parents": [
        "d094f0c03874e83eead512ac0e9d3a0012262f61"
      ],
      "author": {
        "name": "Dmitrii Gridin",
        "email": "dmitry.gridin@jetbrains.com",
        "time": "Thu Oct 22 11:34:05 2026 +0000"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 16:21:37 2026 +0200"
      },
      "message": "[Analysis API] Merge resolver call, candidates, and symbol tests\n\nThe `ResolveCall`, `ResolveCandidates`, and `ResolveSymbol` tests ran\non the same `singleByPsi` test data, and their `ByFile` variants on\n`allByPsi`, so each file was analyzed three times, and the library\nsource configuration compiled each test library three times. On CI,\nthese 15 classes took 49.4 min of the 5.88 h of summed test time.\n\n`AbstractResolveTest` now checks several resolve kinds at once: the\nelements are collected once, the output of each kind is compared with\nits own `\u003ckind\u003e.txt` file, and stability failures are suppressed per\nkind. The output generation of each kind is shared via\n`AbstractResolveByElementTest`, so the single-kind tests used by other\nsuites keep working. The 15 generated classes become 5.\n\nOn CI, the merged tests take 18% less summed time than the 15 classes\ndid (40.4 vs. 49.5 min): the `singleByPsi` ones are 24-29% faster,\nwhile the `allByPsi` ones are 14-19% slower, which may be noise.\nA merged test costs 1.5-2.2x the slowest of the three old ones, so the\nwork of each resolve kind outweighs the shared setup.\n\n^KT-90529\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "d094f0c03874e83eead512ac0e9d3a0012262f61",
      "tree": "59c4dfc16432ea44f045a937054a7e4eb93eb177",
      "parents": [
        "038cfaaa9445c03c8db540ed486b657f7d69cd6e"
      ],
      "author": {
        "name": "Dmitrii Gridin",
        "email": "dmitry.gridin@jetbrains.com",
        "time": "Thu Oct 22 11:34:04 2026 +0000"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 16:21:37 2026 +0200"
      },
      "message": "[Analysis API] Bind stubs of shared library files on demand in tests\n\nTo build the declaration index, each test project copied and bound the\ncached stubs of all library files, although a test needs only a few of\nthem. In `INDEX_STUBS` configurations, this took most of the time of a\ntest.\n\nIndex records now refer to the elements of a file by their ordinals in\na stable stub traversal, so the records of shared files don\u0027t depend\non the project and are cached in `KotlinStandaloneIndexCache`. Index\nvalues are `KotlinStandaloneIndexEntry`s, which bind the stub of their\nfile only when the PSI is requested. Names and virtual files are known\nwithout binding, so package and name queries don\u0027t bind files at all.\nBinding checks that the file has as many indexed elements as its cached\nrecords expect, so a mismatch fails instead of silently returning the\nPSI of another declaration. Source files and non-shared binary files\nare still indexed eagerly.\n\nCompared to the previous commit,\n`FirSourceLikeLazyDeclarationResolveTestGenerated` takes ~65% less\ntime, and `LLBlackBoxTestGenerated` ~67% less (the Gradle wall time\ngoes from ~140 s to ~68 s).\n\n^KT-90529\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "038cfaaa9445c03c8db540ed486b657f7d69cd6e",
      "tree": "cb845244da51c6014126634fb67dbeebef88e6e5",
      "parents": [
        "89952be905a51804fd586b9fb4dde24c199afc8d"
      ],
      "author": {
        "name": "Dmitrii Gridin",
        "email": "dmitry.gridin@jetbrains.com",
        "time": "Thu Oct 22 11:34:03 2026 +0000"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 16:21:37 2026 +0200"
      },
      "message": "[Analysis API] Merge type relation checker tests into one test\n\nAll eight `typeRelationChecker` tests ran on the same test data, each\nfile of which contains the directives for all of them, so every file\nwas analyzed eight times in each configuration.\n`AbstractTypeRelationCheckerTest` analyzes the file once and checks\nall relations, reporting every mismatch via `assertAll`. This replaces\n24 generated classes with 3.\n\n^KT-90529 Fixed\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "89952be905a51804fd586b9fb4dde24c199afc8d",
      "tree": "9ec1f0f6f9f174d859a66cc83c3c4120c02f5bb4",
      "parents": [
        "1ace6132a3808643b5542507f2c4fe1439560fce"
      ],
      "author": {
        "name": "Dmitrii Gridin",
        "email": "dmitry.gridin@jetbrains.com",
        "time": "Thu Oct 22 11:34:02 2026 +0000"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 16:21:37 2026 +0200"
      },
      "message": "[Analysis API] Cache package names of shared decompiled files in tests\n\nThe package provider is created before the postponed declaration index\nand read `packageFqName` of every decompiled builtin and library file.\nThis built each stub from scratch in every test project, bypassing\n`KotlinStandaloneIndexCache`, and the index then replaced these stubs\nwith copies of the cached ones.\n\n`KotlinStandaloneIndexCache` now also stores package names of shared\nfiles, and `KotlinStandalonePackageProviderFactory` takes them from\n`KotlinStandaloneDeclarationProviderFactory` instead of reading\ndecompiled `KtFile`s.\n\nThis stub building was the main cost of `INDEX_STUBS` tests that need\nfew library declarations: the source-like `typeRelationChecker` tests\ntake ~40% less time and\n`FirSourceLikeLazyDeclarationResolveTestGenerated` ~19% less. LL\nblack-box tests barely change (~4%): the package provider was already\ncheap there, and the cost is in copying cached stubs.\n\n^KT-90529\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "1ace6132a3808643b5542507f2c4fe1439560fce",
      "tree": "63fc61b6b591867f2a8ca9542fcfb1d75d2f4655",
      "parents": [
        "0551f613f9800e5ebd2c6f89b12b1a52cf515420"
      ],
      "author": {
        "name": "Gleb Lukianets",
        "email": "glukianets@users.noreply.github.com",
        "time": "Thu Oct 22 15:26:19 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 22 15:26:19 2026 +0200"
      },
      "message": "[Swift Export] KT-90382: fix kotlin object returned to Swift never being released. (#9152)\n\nMark the two +[KotlinBase _create*WrapperForExternalRCRef] methods with\nNS_RETURNS_RETAINED to reflect actual ownership convention.\n\n---------\n\nCo-authored-by: Gleb Lukianets \u003cgleb.lukianets@jetbrains.com\u003e"
    },
    {
      "commit": "0551f613f9800e5ebd2c6f89b12b1a52cf515420",
      "tree": "2b4ef9166a8e66ca791699cafd774beecc386c4a",
      "parents": [
        "46a6b9f4d051428996d399ed46ff5b8c8d3553c5"
      ],
      "author": {
        "name": "anton.mefodichev",
        "email": "anton.mefodichev@jetbrains.com",
        "time": "Wed Oct 21 12:50:02 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 13:26:35 2026 +0200"
      },
      "message": "[Gradle] Make static library test output assertions reliable\n\nPrint a unique result marker and check the exact output line in both\ntests to avoid matching unrelated digits in Gradle logs.\n\n^KT-89558\n"
    },
    {
      "commit": "46a6b9f4d051428996d399ed46ff5b8c8d3553c5",
      "tree": "89187a00485073f18001928338283a1a21a18163",
      "parents": [
        "57a1f14223c29117178be755390fefa549053228"
      ],
      "author": {
        "name": "anton.mefodichev",
        "email": "anton.mefodichev@jetbrains.com",
        "time": "Tue Oct 20 12:23:18 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 13:26:35 2026 +0200"
      },
      "message": "[Gradle] Assert unchanged static library keeps link task up-to-date\n\nCheck the link task outcome on the first build without changes to catch\nunnecessary relinking when the static library remains unchanged.\n\n^KT-89558\n"
    },
    {
      "commit": "57a1f14223c29117178be755390fefa549053228",
      "tree": "9b1c188c36419074a2ccfb312c3c0a5d21b347a7",
      "parents": [
        "fcc06d1a7150b4f912fb75c3f5973bd53b5fa160"
      ],
      "author": {
        "name": "anton.mefodichev",
        "email": "anton.mefodichev@jetbrains.com",
        "time": "Tue Oct 20 12:14:46 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 13:26:35 2026 +0200"
      },
      "message": "[Gradle] Add UTD tracking for linkerOpts with late-added static libraries\n\nEnsure static libraries created after link task initialization are properly tracked as link task inputs to support up-to-date checks and configuration cache reuse.\n"
    },
    {
      "commit": "fcc06d1a7150b4f912fb75c3f5973bd53b5fa160",
      "tree": "6965ac3312772b72110e3a64e2d076f742f39f36",
      "parents": [
        "21e44c7439bfe7f741894c89844b0e0871e802e8"
      ],
      "author": {
        "name": "anton.mefodichev",
        "email": "anton.mefodichev@jetbrains.com",
        "time": "Fri Sep 25 15:20:04 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 13:26:35 2026 +0200"
      },
      "message": "[Gradle] Skip KT-89558 test on Windows\n\nThe Windows CI agent cannot resolve cc and ar, so the test fails before checking the link task. Keep it enabled on Linux and macOS, and run it\nin CI on Linux.\n"
    },
    {
      "commit": "21e44c7439bfe7f741894c89844b0e0871e802e8",
      "tree": "e317bcbad59503c8b2beb3d654196925d8bf6564",
      "parents": [
        "e22a4dd049423919d726f466ad97bcf569e6ec80"
      ],
      "author": {
        "name": "anton.mefodichev",
        "email": "anton.mefodichev@jetbrains.com",
        "time": "Tue Sep 22 11:24:49 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 13:26:35 2026 +0200"
      },
      "message": "[Gradle] Add UTD checks for static libraries in linkerOpts\n\nTrack files passed directly through linkerOpts as link task inputs.\n\n^KT-89558\n"
    },
    {
      "commit": "e22a4dd049423919d726f466ad97bcf569e6ec80",
      "tree": "4b5d351b9ddde06344343259db95a9e115639174",
      "parents": [
        "628ee908e5eb86daf280060fa79dc816f6a04256"
      ],
      "author": {
        "name": "Xin Wang",
        "email": "scaventz@outlook.com",
        "time": "Tue Oct 13 17:30:27 2026 +0800"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 13:13:46 2026 +0200"
      },
      "message": "[K/N] Report an error when both -g and  -opt flags enabled\n\nReplace the existing warning with an error, since the combination of\n`-opt` and `-g` should be prohibited.\n\n^KT-88735 fixed\n"
    },
    {
      "commit": "628ee908e5eb86daf280060fa79dc816f6a04256",
      "tree": "67fc8dc8d15f76022ca9c94f41e2aefc4a0d7102",
      "parents": [
        "b95513971e39681078fe16e4355da7bebfc5a9b1"
      ],
      "author": {
        "name": "Mikhail Glukhikh",
        "email": "mikhail.glukhikh@jetbrains.com",
        "time": "Tue Oct 20 17:30:01 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 13:11:47 2026 +0200"
      },
      "message": "Tests (FE): confirm that previous commit makes also #KT-76140 Fixed\n"
    },
    {
      "commit": "b95513971e39681078fe16e4355da7bebfc5a9b1",
      "tree": "f6ba6a0b87042c580809f4bcf743751a580d5aa7",
      "parents": [
        "f99fdc870f0f68dcbca16acde70d8aae4f34c59f"
      ],
      "author": {
        "name": "Mikhail Glukhikh",
        "email": "mikhail.glukhikh@jetbrains.com",
        "time": "Tue Oct 20 17:00:21 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 13:11:47 2026 +0200"
      },
      "message": "FE: don\u0027t report INAPPLICABLE_CANDIDATE when some diagnostics are available\n\nMore precisely, a contradiction which appeared before the arguments are\nchecked on CheckArguments resolution stage, has already been reported\nby an earlier stage with a more precise diagnostic. In this commit\nwe drop INAPPLICABLE_CANDIDATE reporting in such situations thus\nreducing too much noise in cases like KT-76718.\nThe commit shouldn\u0027t make some red code completely green,\nit\u0027s an expected red-to-red conversion.\n\nAfter this commit, most remaining reporting of INAPPLICABLE_CANDIDATE\noccurs on callable references.\n\nThe fix is suggested by Claude code.\n\n#KT-76718 Fixed\n"
    },
    {
      "commit": "f99fdc870f0f68dcbca16acde70d8aae4f34c59f",
      "tree": "5539ca0842e26d1213b795828cfb1c5841feec60",
      "parents": [
        "9a34516c2e1ec4f1904c33cd3a0492378cf2dd1f"
      ],
      "author": {
        "name": "Mikhail Glukhikh",
        "email": "mikhail.glukhikh@jetbrains.com",
        "time": "Tue Oct 20 17:09:59 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 13:11:47 2026 +0200"
      },
      "message": "Tests (FE): reproduce KT-76718\n\nThe test is authored by Claude Code\n"
    },
    {
      "commit": "9a34516c2e1ec4f1904c33cd3a0492378cf2dd1f",
      "tree": "777c977591cb30040fcdda2716682ac714c7f240",
      "parents": [
        "1b60a495eb11de82a8d4e768aba07d548bf5322f"
      ],
      "author": {
        "name": "Julien Dramaix",
        "email": "dramaix@google.com",
        "time": "Wed Oct 21 15:15:33 2026 +0000"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 13:04:43 2026 +0200"
      },
      "message": "[JKlib] Don\u0027t expose -Xcompile-ir as a command line argument\n\nThe IR compilation is only meant to be triggered by `K2JKlibCompiler.compileKlibAndDeserializeIr`, which returns the IR to its\ncaller. From the command line, `-Xcompile-ir` only changed the format of the output KLIB to a directory, as a side effect of the\nIR compilation reading it back.\n\nKeep `compileIr` in `K2JKlibCompilerArguments`, as the CLI pipelines are stateless and only get the arguments to build their\nphases, but drop its `@Argument` annotation so that it can\u0027t be passed on the command line.\n\nThe CLI tests used `-Xcompile-ir` to produce a non-header KLIB, which doesn\u0027t need it.\n"
    },
    {
      "commit": "1b60a495eb11de82a8d4e768aba07d548bf5322f",
      "tree": "f98d82642abd06ac4cba7317e934aaa6679b00c0",
      "parents": [
        "3c8ccbaf237913bcc30cafb5493a795308b407b9"
      ],
      "author": {
        "name": "Aleksandr Shefer",
        "email": "aleksandr.shefer@jetbrains.com",
        "time": "Wed Oct 21 16:29:33 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 13:00:13 2026 +0200"
      },
      "message": "[Wasm] Update wasmtime to 50.0.0\n\nFixes ^KT-90501\n^test: Wasm\n"
    },
    {
      "commit": "3c8ccbaf237913bcc30cafb5493a795308b407b9",
      "tree": "b8dc05a63df74ac5a579e8d25dc6fade853e4fd5",
      "parents": [
        "5224f2c48f18791111d153740461744a41813e4b"
      ],
      "author": {
        "name": "Yan Zhulanow",
        "email": "yan.zhulanow@jetbrains.com",
        "time": "Thu Sep 17 22:47:30 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 12:57:15 2026 +0200"
      },
      "message": "[Analysis API] Stabilize the function type family API\n\nThe KDoc now also documents the value-based equality of families and\nthat a non-null family does not imply a `KaFunctionType`.\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n\n^KT-88631 Fixed\n"
    },
    {
      "commit": "5224f2c48f18791111d153740461744a41813e4b",
      "tree": "2aa215da407ad7a82a2bfebf4a9162ac144ecc5e",
      "parents": [
        "3cbded30e8c583af0422ee1c421e0fcd46a25dd8"
      ],
      "author": {
        "name": "Kirill Rakhman",
        "email": "kirill.rakhman@jetbrains.com",
        "time": "Tue Oct 20 09:47:19 2026 +0200"
      },
      "committer": {
        "name": "Kirill Rakhman",
        "email": "kirill.rakhman@gmail.com",
        "time": "Thu Oct 22 13:41:46 2026 +0300"
      },
      "message": "[FIR] Exclude unions in collectUpperBounds\n\nThis is required to fix a false positive IMPOSSIBLE_IS_CHECK_ERROR.\nA parameter to opt into collecting union components is added\nspecifically for FirMissingDependencySupertypeInDeclarationsChecker.\n\n#KT-89098\n"
    },
    {
      "commit": "3cbded30e8c583af0422ee1c421e0fcd46a25dd8",
      "tree": "5c88c2441e5643bbb3039a1f5358a2ce0b6f9cce",
      "parents": [
        "e0b7fecdba234bebd5f06ed1a14c6a85f7e75d20"
      ],
      "author": {
        "name": "Kirill Rakhman",
        "email": "kirill.rakhman@jetbrains.com",
        "time": "Mon Oct 19 15:38:41 2026 +0200"
      },
      "committer": {
        "name": "Kirill Rakhman",
        "email": "kirill.rakhman@gmail.com",
        "time": "Thu Oct 22 13:41:46 2026 +0300"
      },
      "message": "[FIR] Report missing UNSAFE_CALL on type parameter with union bound\n\n#KT-89098\n"
    },
    {
      "commit": "e0b7fecdba234bebd5f06ed1a14c6a85f7e75d20",
      "tree": "b803729d65d24ecc990b6d25572e61409826dd7f",
      "parents": [
        "743d66c9c77a1d6e3baa299baee5d8e880c757a3"
      ],
      "author": {
        "name": "Kirill Rakhman",
        "email": "kirill.rakhman@jetbrains.com",
        "time": "Mon Oct 19 15:54:55 2026 +0200"
      },
      "committer": {
        "name": "Kirill Rakhman",
        "email": "kirill.rakhman@gmail.com",
        "time": "Thu Oct 22 13:41:46 2026 +0300"
      },
      "message": "[FIR] Adapt error-safe call resolution\n\nIf the receiver is not a union type, intersect it with NonError for the\nsafe receiver. In that case, the return type of the error-safe call\nis `X | RichError` instead of just `X`.\nUNNECESSARY_SAFE_CALL reporting is adapted to check for subtypes of\nNonError? instead of checking for union types.\n\n#KT-89098\n"
    },
    {
      "commit": "743d66c9c77a1d6e3baa299baee5d8e880c757a3",
      "tree": "6a3baf6d6feed89278e37a1da8cdbc18e583c934",
      "parents": [
        "37933ba4b81155833365c51fdd8586081c528f99"
      ],
      "author": {
        "name": "Kirill Rakhman",
        "email": "kirill.rakhman@jetbrains.com",
        "time": "Wed Oct 07 14:15:58 2026 +0200"
      },
      "committer": {
        "name": "Kirill Rakhman",
        "email": "kirill.rakhman@gmail.com",
        "time": "Thu Oct 22 13:41:46 2026 +0300"
      },
      "message": "[Parser] Bind annotation to first component of union type\n\n#KT-89096\n"
    },
    {
      "commit": "37933ba4b81155833365c51fdd8586081c528f99",
      "tree": "fba15276b2f0770fc445f3d79bbbb44151097f23",
      "parents": [
        "d0c63e7aef305b2d1f89cdfdcf0d3f240fc5caf2"
      ],
      "author": {
        "name": "Kirill Rakhman",
        "email": "kirill.rakhman@jetbrains.com",
        "time": "Tue Oct 20 14:06:52 2026 +0200"
      },
      "committer": {
        "name": "Kirill Rakhman",
        "email": "kirill.rakhman@gmail.com",
        "time": "Thu Oct 22 13:41:46 2026 +0300"
      },
      "message": "[Tests] Add parsing tests for union types with annotations\n\n#KT-89096\n"
    },
    {
      "commit": "d0c63e7aef305b2d1f89cdfdcf0d3f240fc5caf2",
      "tree": "deefc90f39cb812e571e3054d2a34fca549848ee",
      "parents": [
        "326f7e29ccddf07312ccf42c04cc838f0b4b18a7"
      ],
      "author": {
        "name": "Kirill Rakhman",
        "email": "kirill.rakhman@jetbrains.com",
        "time": "Tue Oct 06 16:36:59 2026 +0200"
      },
      "committer": {
        "name": "Kirill Rakhman",
        "email": "kirill.rakhman@gmail.com",
        "time": "Thu Oct 22 13:41:46 2026 +0300"
      },
      "message": "[FIR] Resolve type annotations on union types\n\n#KT-90021 Fixed\n"
    },
    {
      "commit": "326f7e29ccddf07312ccf42c04cc838f0b4b18a7",
      "tree": "1fa3ba5f305034bcab4c528b3fd7a58181eb24ce",
      "parents": [
        "d93e4bab14e39f6def4fdb5b3f4e4304241f431e"
      ],
      "author": {
        "name": "Kirill Rakhman",
        "email": "kirill.rakhman@jetbrains.com",
        "time": "Tue Oct 06 14:28:18 2026 +0200"
      },
      "committer": {
        "name": "Kirill Rakhman",
        "email": "kirill.rakhman@gmail.com",
        "time": "Thu Oct 22 13:41:46 2026 +0300"
      },
      "message": "[Tests] Add test for union type with annotation\n\n#KT-90021\n"
    },
    {
      "commit": "d93e4bab14e39f6def4fdb5b3f4e4304241f431e",
      "tree": "f7cf989f174e0c91c839debe7a7b9bf1e59b2672",
      "parents": [
        "fd4d196d9caa4c4cfd65fc58d56f8e03a051f631"
      ],
      "author": {
        "name": "Kirill Rakhman",
        "email": "kirill.rakhman@jetbrains.com",
        "time": "Thu Oct 22 09:52:11 2026 +0200"
      },
      "committer": {
        "name": "Kirill Rakhman",
        "email": "kirill.rakhman@gmail.com",
        "time": "Thu Oct 22 13:41:46 2026 +0300"
      },
      "message": "[Test Infra] Allow lazy resolution from handlers\n\nDiagnostic renderers can trigger lazy resolution.\n\nA test handler that renders diagnostics could previously cause an error\nin FirCompilerLazyDeclarationResolverWithPhaseChecking because it would\nhappen after BODY_RESOLVE phase is finished and currentTransformerPhase\nwould be null.\n\nAs a fix, keep currentTransformerPhase after the last phase.\nThis requires registering fresh instances for each source session,\nlibrary sessions need to be excluded because they never go through\nthe resolution phases.\n\nTwo workarounds for this exact issue are removed from FirDumpHandler\nand FirVFirDumpHandler.\n\n#KT-89110 Fixed\n"
    },
    {
      "commit": "fd4d196d9caa4c4cfd65fc58d56f8e03a051f631",
      "tree": "bf152d8980f6ad5bfa6372d9538a706913ecb148",
      "parents": [
        "6075d920a9f0ececf8b8afd14a9ebc68933aea54"
      ],
      "author": {
        "name": "Kirill Rakhman",
        "email": "kirill.rakhman@jetbrains.com",
        "time": "Tue Oct 06 12:04:33 2026 +0200"
      },
      "committer": {
        "name": "Kirill Rakhman",
        "email": "kirill.rakhman@gmail.com",
        "time": "Thu Oct 22 13:41:46 2026 +0300"
      },
      "message": "[Test Infra] Fix assertion message for LANGUAGE directive parsing\n"
    },
    {
      "commit": "6075d920a9f0ececf8b8afd14a9ebc68933aea54",
      "tree": "5de68823765887e7ba72dd15287e280dc9422729",
      "parents": [
        "48b3f6006ec9fdc63aed196e95e60bab78563a3a"
      ],
      "author": {
        "name": "Dmitrii Gridin",
        "email": "dmitry.gridin@jetbrains.com",
        "time": "Thu Oct 22 00:54:51 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 12:34:11 2026 +0200"
      },
      "message": "[Tests] Parse diagnostic markers of test data in a single pass\n\n`CodeMetaInfoParser.getCodeMetaInfoFromText` searched both the opening\nand the closing regex from the start of the text for every marker and\nthen copied the text without it, so parsing was quadratic in the file\nsize. Large test data files with many markers, like the spec tests,\nspent seconds there: ~14% of test-thread CPU in\n`FirPsiDiagnosticTestSpecGenerated`.\n\nThe markers are now found by a single pass of `openingOrClosingRegex`\nover the original text, and the offsets are shifted by the length of\nthe already found markers. The closing alternative goes first, so\na closing marker still wins over an opening one at the same offset.\n\nThe parser now takes \u003c1% of the CPU there. Heavy tests become seconds\nfaster, e.g. in `LLSpecTestGenerated`, `notLinked/dfa/pos/1.kt` goes\nfrom 10.0 to 3.0 s and `linked/overload-resolution/receivers/p-5/pos/\n5.1.kt` from 5.0 to 0.6 s. Whole suites change by up to ~10%, which is\nclose to the run-to-run noise.\n\n^KT-90535 Fixed\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "48b3f6006ec9fdc63aed196e95e60bab78563a3a",
      "tree": "cd6bb353c34e7cb56c822a9ec0cb730f5b84578f",
      "parents": [
        "f8d4a070a1635676790b84e643002951607e1ec1"
      ],
      "author": {
        "name": "Ilmir Usmanov",
        "email": "ilmir.usmanov@jetbrains.com",
        "time": "Wed Oct 21 18:19:11 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 12:26:11 2026 +0200"
      },
      "message": "KAPT: Make \u0027classpathChanges\u0027 CLI option repeatable\n\nJust like \u0027processors\u0027 option.\n #KT-89501 Fixed\n"
    },
    {
      "commit": "f8d4a070a1635676790b84e643002951607e1ec1",
      "tree": "fe00edd968c9a8204e73c4b418c1d1c3a8e07d32",
      "parents": [
        "a04c63d898c79dec407a027aba3104b58781c3ea"
      ],
      "author": {
        "name": "Anton Lakotka",
        "email": "anton.lakotka@jetbrains.com",
        "time": "Thu Oct 15 17:23:49 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 12:24:43 2026 +0200"
      },
      "message": "[Gradle, AI] Add code-rules.md\n\nAdd rule to avoid path resolve outside parent directory.\n"
    },
    {
      "commit": "a04c63d898c79dec407a027aba3104b58781c3ea",
      "tree": "56dc0ac516464e9c16e34f4b95f3f63af2a8664f",
      "parents": [
        "04a7e43438c2a0b82daeea72368acc7e60852cda"
      ],
      "author": {
        "name": "Anton Lakotka",
        "email": "anton.lakotka@jetbrains.com",
        "time": "Thu Oct 15 17:12:57 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 12:24:43 2026 +0200"
      },
      "message": "[Gradle] Enforce safe path strings when parsing metadata klibs with PSM\n\nPSM can contain malicious source set names that can be exploited with\npath traversal and arbitrary writes to FS of host machine.\n\nTwo safety checks are added:\n* when parsing PSM and uklib manifest require that source set names\ncontain only latin, numbers and symbols as dash, underscore and\nnon-leading dots.\n* additional \"resolveInside\" utility function to ensure that relative\npaths doesn\u0027t point outside of the function.\n\n^KT-89235 Verification Pending\n\n# Conflicts:\n#\tlibraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/swiftexport/tasks/GenerateSPMPackageFromSwiftExport.kt\n\n# Conflicts:\n#\tlibraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/swiftexport/tasks/GenerateSPMPackageFromSwiftExport.kt\n"
    },
    {
      "commit": "04a7e43438c2a0b82daeea72368acc7e60852cda",
      "tree": "170e33050df4afe5338eeaa45d67043a22b0e2f7",
      "parents": [
        "913196b248dd7a2857833f6abfab51075b70791c"
      ],
      "author": {
        "name": "Anton Lakotka",
        "email": "anton.lakotka@jetbrains.com",
        "time": "Thu Oct 15 14:29:08 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 12:24:43 2026 +0200"
      },
      "message": "[Gradle] Fix strict isParentOf returning true for the same directory\n\nThere was equals call between Path and File which is always false.\nmaking strict option to work always as non-strict.\n"
    },
    {
      "commit": "913196b248dd7a2857833f6abfab51075b70791c",
      "tree": "0b26d22fb802beb6fcdc977f35f513097d969589",
      "parents": [
        "0aaac70dda176211131874016c02abab463cab92"
      ],
      "author": {
        "name": "Iveta Kovalenko",
        "email": "iveta.kovalenko@jetbrains.com",
        "time": "Tue Oct 20 16:11:20 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 12:16:40 2026 +0200"
      },
      "message": "[BTA] Add missing test versions for compatibility tests\n"
    },
    {
      "commit": "0aaac70dda176211131874016c02abab463cab92",
      "tree": "119775457883eb0ee21814e1e5daeee931f12fd2",
      "parents": [
        "5ac9fe9e79fd2b2de65c3d4cf3c4a4c111afd6dd"
      ],
      "author": {
        "name": "Charles Zhang",
        "email": "charles.zhang@jetbrains.com",
        "time": "Fri Oct 02 15:08:53 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 12:08:10 2026 +0200"
      },
      "message": "[Wasm] Pass default values for omitted @JsExport arguments.\n\nWe need to actually have the JS export adapter evaluate the default\nvalue and pass in that as the argument, instead of just passing\nundefined.\n\n^KT-89484 Fixed\n"
    },
    {
      "commit": "5ac9fe9e79fd2b2de65c3d4cf3c4a4c111afd6dd",
      "tree": "e3ad69202e3c817988bf8743b00012308f5f6b67",
      "parents": [
        "3a0037709622411ebea9c04d21d6f2cc51ba4da9"
      ],
      "author": {
        "name": "Dmitrii Gridin",
        "email": "dmitry.gridin@jetbrains.com",
        "time": "Thu Oct 22 08:03:04 2026 +0000"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 11:56:54 2026 +0200"
      },
      "message": "[FIR] Merge the origins of destructuring declaration containers\n\n`ScriptTopLevelDestructuringDeclarationContainer` and\n`NonLocalDestructuringDeclarationContainer` marked the same thing: the\nsynthetic container of a destructuring declaration that is not a\nstatement of a body. The checks that need script containers only can\nalready tell them apart: a script container is a\n`FirLocalPropertySymbol` whose annotations are owned by the script,\nwhile a container outside of scripts is a `FirRegularPropertySymbol`. So\na single `DestructuringDeclarationContainer` origin is enough.\n\n- The conflict and variable initialization checks now skip script\n  containers too, which changes nothing: a script container always has\n  an initializer (an error expression if it is missing) and no name in\n  the code.\n- The callable index of `FirProviderImpl` checks script containers too,\n  which changes nothing: they are local, so they have no callable id.\n- `isLocalForLazyResolutionPurposes` still treats only script\n  containers as non-local, since a container in a local class is local,\n  as other members there.\n\n^KT-90199\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "3a0037709622411ebea9c04d21d6f2cc51ba4da9",
      "tree": "49ec0138d90f17af489249400053161ad8f68db6",
      "parents": [
        "928ac8fd58c4d28f02bdd5b1ed0a54f9be0fba4e"
      ],
      "author": {
        "name": "Dmitrii Gridin",
        "email": "dmitry.gridin@jetbrains.com",
        "time": "Thu Oct 22 08:03:03 2026 +0000"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 11:56:54 2026 +0200"
      },
      "message": "[PSI] Add `KtDestructuringDeclarationEntry.getDestructuringDeclaration`\n\nSeveral callers looked for the declaration of an entry and stepped over\nthe error element that wraps the entries of a non-local destructuring\ndeclaration (KT-58563) on their own. The new method does it once, also\non stubs, and replaces the private `getParentNode`.\n`containingClassOrObject`, `containingScript`, and LL use it instead of\ntheir own special cases.\n\n^KT-90199\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "928ac8fd58c4d28f02bdd5b1ed0a54f9be0fba4e",
      "tree": "28e009c02594f0c563c12297da5ebc7fc3944e41",
      "parents": [
        "c0d350824ab712f7eec8dcbc975835bf471dc50b"
      ],
      "author": {
        "name": "Dmitrii Gridin",
        "email": "dmitry.gridin@jetbrains.com",
        "time": "Thu Oct 22 08:03:02 2026 +0000"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 11:56:54 2026 +0200"
      },
      "message": "[FIR] Rename `configureScriptDestructuringDeclarationEntry`\n\nIt links an entry to its container for any non-local destructuring\ndeclaration now, not only for script ones.\n\n^KT-90199\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "c0d350824ab712f7eec8dcbc975835bf471dc50b",
      "tree": "d4b809003e4fc181b01bc62b74c8976a3a09ede5",
      "parents": [
        "e3e7f97ad6a777652b0b0db0368f8779c1e735ce"
      ],
      "author": {
        "name": "Dmitrii Gridin",
        "email": "dmitry.gridin@jetbrains.com",
        "time": "Thu Oct 22 08:03:01 2026 +0000"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 11:56:54 2026 +0200"
      },
      "message": "[LL] Find destructuring declarations in the file structure by name\n\nThe FIR of a non-local destructuring declaration is now always the\n`\u003cdestruct\u003e` container, both in scripts and outside of them, so\n`mappingNameByPsi` maps a `KtDestructuringDeclaration` to that name\ninstead of scanning all declarations of the container.\n\n^KT-90199\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "e3e7f97ad6a777652b0b0db0368f8779c1e735ce",
      "tree": "20a899d58ca8a072cfe5d2240d74bada6b8fd1e8",
      "parents": [
        "4b94e47989281d02bf4a4d0b3aaeda7195ad6149"
      ],
      "author": {
        "name": "Dmitrii Gridin",
        "email": "dmitry.gridin@jetbrains.com",
        "time": "Thu Oct 22 08:03:00 2026 +0000"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 11:56:54 2026 +0200"
      },
      "message": "[FIR] Name destructuring containers with `SpecialNames.DESTRUCT`\n\nThe builders spelled the `\u003cdestruct\u003e` name by hand in a few places.\nThe PSI helper that took a special name had only destructuring callers,\nso it becomes `generateDestructuringContainerVariable`.\n\n^KT-90199\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "4b94e47989281d02bf4a4d0b3aaeda7195ad6149",
      "tree": "dc849c97c79d1b22befdddbc138697ef4d3e602f",
      "parents": [
        "98d6fcbffb78892b284b18ca6aea0fd433b24dc4"
      ],
      "author": {
        "name": "Dmitrii Gridin",
        "email": "dmitry.gridin@jetbrains.com",
        "time": "Thu Oct 22 08:02:59 2026 +0000"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 11:56:54 2026 +0200"
      },
      "message": "[FIR] Desugar non-local destructuring declarations like script ones\n\nTop-level and member destructuring declarations are errors reported by\nthe parser (KT-58563). Raw FIR replaced each of them with one\n`FirErrorProperty`, so the entries had no FIR: types and annotations of\nentries threw `InvalidFirElementTypeException` in the Analysis API, and\nreferences to entries were unresolved.\n\nBoth builders now desugar them as in scripts: a private `\u003cdestruct\u003e`\ncontainer holds the initializer and the declaration annotations, and\neach entry is a regular property initialized from it. So entries\nresolve, get types and annotations, and conflict with other\ndeclarations.\n\n- The container has the new synthetic\n  `NonLocalDestructuringDeclarationContainer` origin, which keeps it out\n  of conflicts and of the callable index of `FirProviderImpl`, and\n  suppresses UNINITIALIZED_VARIABLE on its reads when the initializer is\n  missing. Declared member scopes skip synthetic properties, and now so\n  does `KaFirFileScope`, so the container is not found by name, as in LL.\n- The light tree finds the brackets and the entries inside the error\n  element, and converts the type and the annotations of an entry under\n  its symbol, as PSI does.\n- Entries remain class members in local contexts, such as enum entry\n  bodies and local classes, and become static members in companion\n  blocks, as other properties there.\n- `containingClassOrObject` and LL see entries inside the error element,\n  so they become non-local declarations of their own.\n  `LLContainingClassCalculator` handles the container.\n- In the latest language version the short form in parentheses is\n  name-based, so the affected diagnostic tests get `.latestLV.kt`.\n\nTop-level entries are not indexed yet (KT-90376), so the IDE neither\nfinds them from other files nor restores them by callable id. The tests\nrecord this as an LL divergence.\n\n^KT-90199 Fixed\n^KT-90376\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "98d6fcbffb78892b284b18ca6aea0fd433b24dc4",
      "tree": "52411fd67e1efeef51d6d9b2de92d713de7055df",
      "parents": [
        "7f17837f2d8a01ad28e21a45c5752eae9504339b"
      ],
      "author": {
        "name": "Dmitrii Gridin",
        "email": "dmitry.gridin@jetbrains.com",
        "time": "Thu Oct 22 08:02:59 2026 +0000"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 11:56:54 2026 +0200"
      },
      "message": "[PSI] Find square brackets of non-local destructuring declarations\n\nThe parser wraps the brackets of a top-level or member destructuring\ndeclaration in an error element together with the entries (KT-58563),\nso `hasSquareBrackets()` returned `false` for `val [a, b] \u003d ...` there.\nIt now looks into the error element, as `getEntries()` already does.\n\nThe stub stores this flag, so the source stub version is bumped.\n\n^KT-90199\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "7f17837f2d8a01ad28e21a45c5752eae9504339b",
      "tree": "8f89b389cc3d1799d09478f75619291a15f4e3e9",
      "parents": [
        "ee9e2873c8460532a33481b744f5e4957edcda89"
      ],
      "author": {
        "name": "Dmitrii Gridin",
        "email": "dmitry.gridin@jetbrains.com",
        "time": "Thu Oct 22 08:02:57 2026 +0000"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 11:56:54 2026 +0200"
      },
      "message": "[Tests] Add tests for non-local destructuring entries\n\nEntries of top-level and member destructuring declarations get no FIR,\nso the baselines record every reference to them as unresolved: from the\nsame class, from another file, and through a qualifier. An entry does\nnot conflict with a property of the same name either.\n\nThe LL tests record that such entries have no designation, no\nstructure element, and nothing to resolve lazily, including members of\nnested and local classes, companion blocks, enum entries, and object\nliterals.\n\nThe scope and light class tests record that file and member scopes list\nsuch a declaration as an `\u003cerror property\u003e`, and that light classes\nhave no accessors for its entries, unlike for script destructuring\ndeclarations.\n\n^KT-90199\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "ee9e2873c8460532a33481b744f5e4957edcda89",
      "tree": "f765230135ce7915c0ff363b21f682f811a8f1a3",
      "parents": [
        "acb562f401e64746badb343f42338432c6c27295"
      ],
      "author": {
        "name": "Kotlin Infrastructure Git Bot",
        "email": "kt-a@jetbrains.com",
        "time": "Thu Oct 22 08:28:58 2026 +0000"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 11:52:05 2026 +0200"
      },
      "message": "Update Kotlin version for compiler arguments\n\nCreated by TeamCity build https://buildserver.labs.intellij.net/build/1101044716"
    },
    {
      "commit": "acb562f401e64746badb343f42338432c6c27295",
      "tree": "4619333e6b5be072f325cb29ffe5ab91c7928e80",
      "parents": [
        "ccd37e7aa910d1e7c3d892df6fcd37bc2c8a2363"
      ],
      "author": {
        "name": "Julien Dramaix",
        "email": "dramaix@google.com",
        "time": "Wed Oct 21 12:36:22 2026 +0000"
      },
      "committer": {
        "name": "Julien Dramaix",
        "email": "jDramaix@users.noreply.github.com",
        "time": "Thu Oct 22 10:41:17 2026 +0200"
      },
      "message": "[JKlib] Inline functions before KLIB serialization\n\nJKlib runs no lowering before KLIB serialization, so inline functions are never inlined in the IR it serializes. This PR adds the first-phase inliner that JS, Wasm and Native already have.\n\n`jklibLoweringsOfTheFirstPhase()` is the JKlib variant of `loweringsOfTheFirstPhase()`, with the intra-module and cross-module inliners always enabled. It runs right after FIR2IR (`JKlibPreSerializationLoweringPhase`).\n\nOther backends are unchanged.\n"
    },
    {
      "commit": "ccd37e7aa910d1e7c3d892df6fcd37bc2c8a2363",
      "tree": "cf83343bab0b31e159a51cf12d17e38347cbb67a",
      "parents": [
        "37a5b33fa147b47095dee0ee0baa374c89409b67"
      ],
      "author": {
        "name": "Troels Bjerre Lund",
        "email": "troels@google.com",
        "time": "Thu Oct 22 10:26:49 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 22 10:26:49 2026 +0200"
      },
      "message": "[ObjCExport] Install extension methods from per-module category adapters (#8689)\n\nThis moves exported extension methods from the type adapter of their\nreceiver class into category adapters, one per receiver class and\ndeclaring module. When a Kotlin class is initialized, the runtime\ninstalls its category methods with class_addMethod, right after the\nclass\u0027s own adapter. So methods the class defines itself, and methods\nfrom Swift or Objective-C categories, still take precedence.\n\nThe header, the Swift and Objective-C API, and method resolution don\u0027t\nchange. Afterwards, a class\u0027s adapter no longer depends on which modules\nextend it.\n\n^KT-89960"
    },
    {
      "commit": "37a5b33fa147b47095dee0ee0baa374c89409b67",
      "tree": "733964e83ce01c2f749f57448d19211c56a960a9",
      "parents": [
        "f63b9f344c0a7e5d9d261480d1f81e5a4dad2981"
      ],
      "author": {
        "name": "Egor Andreevich",
        "email": "egor.andreevich@jetbrains.com",
        "time": "Thu Oct 22 05:27:39 2026 +0000"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 08:59:04 2026 +0200"
      },
      "message": "[Gradle] Make Swift Export module name validation CC-friendly\n\nfb03945c360cc153d2dc184456e22deec77558ae added validation for the\nexported module\u0027s moduleName, but in a way that broke\nconfiguration cache, as the code captures an instance of Project\ninside a provider.map {} block. The fix moves the validation into\nSwiftExportModuleNameChecker, which has already been used for the\nlegacy SwiftExportExtension.\n\nThe change also removes the validation inside the orElse {} block\nin registerSwiftExportRunAndBinary, as it\u0027s similarly problematic\n- an instance of Project gets captured. Instead, the name checker\nnow defaults the name to the one generated from the project name\nand validates each name version."
    },
    {
      "commit": "f63b9f344c0a7e5d9d261480d1f81e5a4dad2981",
      "tree": "b6bec83c6598fcc72da33cc342fd9ad9cffc9472",
      "parents": [
        "d99d40176322328c5a53acf682c004a1b1f49786"
      ],
      "author": {
        "name": "Alexey Belkov",
        "email": "alexey.belkov@jetbrains.com",
        "time": "Wed Oct 21 22:31:15 2026 +0000"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 01:38:53 2026 +0200"
      },
      "message": "[SLC] Keep members of inline class types in annotation classes and records\n\nThe JVM backend names the accessors of properties of annotation classes\nand `@JvmRecord` classes after the property, before any inline-class\nmangling, see `MethodSignatureMapper.mapFunctionName`: `val ui: UInt` of\nan annotation class becomes `int ui()`. Symbol light classes treated\nthese accessors as mangled because of the inline-class return type and\ndropped them, so Java code saw neither such annotation attributes nor\nsuch record accessors.\n\nSkip the mangling check for these accessors, both when deciding whether\nto create the light method and when computing its name, which the\n`javaMethodName` endpoint shares. As in the backend, the check uses the\nclass that contains the property rather than the destination light\nclass, so a `@JvmStatic` companion property copied into a record keeps\nits mangled name and stays hidden.\n\nDocument in `SymbolPsiLiteral.getText` that the text of a literal from\nsources stays as written in Kotlin, unlike its value, see KT-74733: the\nnew default value of `uis` is rendered as `{1u, -1}` from sources and as\n`{1, -1}` from libraries.\n\n^KT-90511 Fixed"
    },
    {
      "commit": "d99d40176322328c5a53acf682c004a1b1f49786",
      "tree": "030a699b65d7f7b79868bc53345b8c7a5cb9f622",
      "parents": [
        "9ecab4f76a0ccd0ddd0b3162e9073a2de25e3d26"
      ],
      "author": {
        "name": "Alexey Belkov",
        "email": "alexey.belkov@jetbrains.com",
        "time": "Wed Oct 21 22:31:15 2026 +0000"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 01:38:53 2026 +0200"
      },
      "message": "[SLC] Move `hasPrefixlessAccessorNames` to symbol light classes module\n\nIt will be used in SLC in the next commit, which names and mangles the\naccessors of properties of annotation classes and `@JvmRecord` classes\nlike the JVM backend. The `javaMethodName` endpoint now uses it through\n`KaInternalsLightClassBridge`. Turn it into an extension property of\n`KaPropertySymbol` on the way.\n\n^KT-90511"
    },
    {
      "commit": "9ecab4f76a0ccd0ddd0b3162e9073a2de25e3d26",
      "tree": "b57df2b998bbb871b00852d66938fb02441e093f",
      "parents": [
        "a3350fe5cc68e2a26972d46dbe0e3ac5abea4f34"
      ],
      "author": {
        "name": "Alexey Belkov",
        "email": "alexey.belkov@jetbrains.com",
        "time": "Wed Oct 21 22:31:14 2026 +0000"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 01:38:53 2026 +0200"
      },
      "message": "[SLC] Use the JVM representation of unsigned constant values\n\nThe JVM backend stores an unsigned constant as its signed counterpart of\nthe same width, e.g., `UInt.MAX_VALUE` as the `int` value `-1`. Symbol\nlight classes used the value of `KaConstantValue` as is, so\n`computeConstantValue` of a `const val` field returned a boxed Kotlin\nunsigned value such as `kotlin.UInt`. Java doesn\u0027t treat it as a\nconstant: for `case Consts.U:`, `TypeConversionUtil.computeCastTo`\nreturns `null`, and the switch checker reports \"Incompatible types.\nFound: \u0027int\u0027, required: \u0027int\u0027\". The field initializer was built from the\nunsigned value as well, e.g., the out-of-range `int` literal\n`4294967295`, or `4` instead of `4L` for a `ULong`.\n\nConvert unsigned values to their signed counterparts in `jvmValue`, and\nuse it for both the constant value and the initializer. Annotation\narguments and default values of annotation methods are built by the same\nfunction as the initializer, so their values get the JVM representation,\ntoo. The default values show up only in a later commit, which stops\ndropping annotation members of inline class types.\n\nTheir text doesn\u0027t always follow. A literal from sources keeps the text\nof its Kotlin argument, e.g., `1u` with the value `1`, see KT-74733. A\nnegative value such as `-2` is a prefix expression rather than a\nliteral, so it gets the Java text, as negative signed values already do.\nThis is why `ui \u003d UInt.MAX_VALUE - 1u` is now rendered as `ui \u003d -2`:\nbefore, the out-of-range `4294967294` was a literal and kept the Kotlin\ntext.\n\n^KT-90402 Fixed"
    },
    {
      "commit": "a3350fe5cc68e2a26972d46dbe0e3ac5abea4f34",
      "tree": "bf86f74eb92b8416e38eb4825aad2cd9b7effe15",
      "parents": [
        "4c9b3e0d8b7e0f87a3a8efe64839941dc19ae3f8"
      ],
      "author": {
        "name": "Alexey Belkov",
        "email": "alexey.belkov@jetbrains.com",
        "time": "Wed Oct 21 22:31:13 2026 +0000"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Thu Oct 22 01:38:53 2026 +0200"
      },
      "message": "[SLC] Add tests for unsigned constants and members of annotation classes and records\n\nRecord the current behavior of symbol light classes, which the next\ncommits fix:\n- Unsigned constants and annotation arguments keep their unsigned\n  values instead of the signed JVM representation, e.g., the\n  out-of-range `int` literal `4294967295` instead of `-1`, or `4`\n  instead of `4L`. `computeConstantValue` returns boxed Kotlin unsigned\n  values such as `kotlin.UInt`, which Java doesn\u0027t recognize as\n  constants. The rendered `constant value` comment prints `toString()`,\n  so the wrong type is visible only for values beyond the signed range.\n- Accessors of properties of annotation classes and `@JvmRecord`\n  classes are dropped when the property type is an inline class such\n  as `UInt`, as if their names were mangled. For the same reason, the\n  `javaMethodName` endpoint returns `null` for them, see the Analysis\n  API symbol tests.\n\n^KT-90402\n^KT-90511"
    },
    {
      "commit": "4c9b3e0d8b7e0f87a3a8efe64839941dc19ae3f8",
      "tree": "c2399805ff5e4f6ca0a1bb439592b61f5f1a3298",
      "parents": [
        "c1e8c125e730cd9bfd5073ad6af82e6932e1a865"
      ],
      "author": {
        "name": "Alexander.Likhachev",
        "email": "Alexander.Likhachev@jetbrains.com",
        "time": "Wed Oct 21 19:10:23 2026 +0000"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Wed Oct 21 22:51:29 2026 +0200"
      },
      "message": "[BTA] Add more tests for KT-89297"
    },
    {
      "commit": "c1e8c125e730cd9bfd5073ad6af82e6932e1a865",
      "tree": "ba8081001eb52d7403070f9d6de4fef1444f19aa",
      "parents": [
        "f942fe90e50c2a1b0e43979e8ba99aeff428a115"
      ],
      "author": {
        "name": "Alexander.Likhachev",
        "email": "Alexander.Likhachev@jetbrains.com",
        "time": "Wed Oct 21 19:10:22 2026 +0000"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Wed Oct 21 22:51:29 2026 +0200"
      },
      "message": "[IC] Delete empty class directories after removing stale outputs\n\nWe cleaned up stale outputs before the compilation round but not the directories. In corner cases like KT-89297 this could lead to treating such empty directories as empty packages failing the compilation.\n^KT-89297 Fixed"
    },
    {
      "commit": "f942fe90e50c2a1b0e43979e8ba99aeff428a115",
      "tree": "4ce4c089928781a6a6c4a55aa645e932230e3125",
      "parents": [
        "3ab229acc0a669ac5e082fe613a61a3434a321be"
      ],
      "author": {
        "name": "Vladimir Iakunin",
        "email": "vladimir.iakunin@jetbrains.com",
        "time": "Tue Oct 20 13:05:47 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Wed Oct 21 22:31:47 2026 +0200"
      },
      "message": "[Gradle] Annotate WasmConfigurationCacheIT for Gradle, Wasm\n\n^KT-87614\n"
    },
    {
      "commit": "3ab229acc0a669ac5e082fe613a61a3434a321be",
      "tree": "6177fa7d6d04b803a63761d457a3411e99ababfb",
      "parents": [
        "44d3546ef6352a3a77407b1e769c7d83aea75c4a"
      ],
      "author": {
        "name": "Vladimir Iakunin",
        "email": "vladimir.iakunin@jetbrains.com",
        "time": "Tue Oct 20 13:05:46 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Wed Oct 21 22:31:47 2026 +0200"
      },
      "message": "[Gradle] Annotate CompilationWithKlibsIT for Gradle, CommonBackend\n\n^KT-87614\n"
    },
    {
      "commit": "44d3546ef6352a3a77407b1e769c7d83aea75c4a",
      "tree": "f87b05ccdbd2c615b2fdba4957dbf88419f59d6a",
      "parents": [
        "243d79b26b32d08868437597f4980a6c5d3b26b1"
      ],
      "author": {
        "name": "Vladimir Iakunin",
        "email": "vladimir.iakunin@jetbrains.com",
        "time": "Tue Oct 20 13:05:46 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Wed Oct 21 22:31:47 2026 +0200"
      },
      "message": "[Gradle] Annotate custom K2 tests for Gradle, Frontend\n\n^KT-87614\n"
    },
    {
      "commit": "243d79b26b32d08868437597f4980a6c5d3b26b1",
      "tree": "8d783f0681654b9aca105c7edece2e27439c2c4f",
      "parents": [
        "6b1ba8a01c2ce28828cf58c085e76c3e01ea3a61"
      ],
      "author": {
        "name": "Vladimir Iakunin",
        "email": "vladimir.iakunin@jetbrains.com",
        "time": "Tue Oct 20 13:05:46 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Wed Oct 21 22:31:47 2026 +0200"
      },
      "message": "[Gradle] Annotate ExplicitApiIT for Gradle, Frontend\n\n^KT-87614\n"
    },
    {
      "commit": "6b1ba8a01c2ce28828cf58c085e76c3e01ea3a61",
      "tree": "5766c4fa34adf037765603dd1fccf09626b72005",
      "parents": [
        "8694c36c6cb67483df8da6d2dae556f7445daba6"
      ],
      "author": {
        "name": "Vladimir Iakunin",
        "email": "vladimir.iakunin@jetbrains.com",
        "time": "Tue Oct 20 13:05:46 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Wed Oct 21 22:31:47 2026 +0200"
      },
      "message": "[Gradle] Annotate K2KotlinxSerializationIT for Gradle, CompilerPlugins\n\n^KT-87614\n"
    },
    {
      "commit": "8694c36c6cb67483df8da6d2dae556f7445daba6",
      "tree": "04d0d3530e92f62f486f65bf55590612c1da4096",
      "parents": [
        "c018dccbce3cf2290ebe5edd268436ca4f9adf22"
      ],
      "author": {
        "name": "Vladimir Iakunin",
        "email": "vladimir.iakunin@jetbrains.com",
        "time": "Tue Oct 20 13:05:46 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Wed Oct 21 22:31:47 2026 +0200"
      },
      "message": "[Gradle] Annotate PowerAssertIT for Gradle, CompilerPlugins\n\n^KT-87614\n"
    },
    {
      "commit": "c018dccbce3cf2290ebe5edd268436ca4f9adf22",
      "tree": "a8cff040b0cb2cba5d868580f4b30fea2e1a1969",
      "parents": [
        "594a0e09d03534e7699fd0c156fd0353b898539a"
      ],
      "author": {
        "name": "Vladimir Iakunin",
        "email": "vladimir.iakunin@jetbrains.com",
        "time": "Tue Oct 20 13:05:46 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Wed Oct 21 22:31:47 2026 +0200"
      },
      "message": "[Gradle] Annotate Kotlin/JS IC tests for Gradle, BuildToolsApi\n\n^KT-87614\n"
    },
    {
      "commit": "594a0e09d03534e7699fd0c156fd0353b898539a",
      "tree": "830cbf7d49c8d642b863d4858489c48f1621dab3",
      "parents": [
        "11910d262ba77c1bc686519c3809eb96f2e3b4d6"
      ],
      "author": {
        "name": "Vladimir Iakunin",
        "email": "vladimir.iakunin@jetbrains.com",
        "time": "Tue Oct 20 13:05:46 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Wed Oct 21 22:31:47 2026 +0200"
      },
      "message": "[Gradle] Annotate KmpIncrementalCompilationMiscIT tests for Gradle\n\n^KT-87614\n"
    },
    {
      "commit": "11910d262ba77c1bc686519c3809eb96f2e3b4d6",
      "tree": "e6ea7d322ee4d5a534fcef77887f3a4453b52dd9",
      "parents": [
        "aeebc6064b8f30c4ce09e80d5c1bf6229bd5f073"
      ],
      "author": {
        "name": "Vladimir Iakunin",
        "email": "vladimir.iakunin@jetbrains.com",
        "time": "Tue Oct 20 13:05:45 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Wed Oct 21 22:31:47 2026 +0200"
      },
      "message": "[Gradle] Annotate KmpIncrementalITBase for Gradle\n\n^KT-87614\n"
    },
    {
      "commit": "aeebc6064b8f30c4ce09e80d5c1bf6229bd5f073",
      "tree": "3d977d07c528c89b7c3599d6d24c9e451d10dba6",
      "parents": [
        "388b52861828971b7d2640bc0cb06c220334cd96"
      ],
      "author": {
        "name": "Vladimir Iakunin",
        "email": "vladimir.iakunin@jetbrains.com",
        "time": "Tue Oct 20 13:05:45 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Wed Oct 21 22:31:47 2026 +0200"
      },
      "message": "[Gradle] Annotate CommonCodeWithPlatformSymbolsITBase for Gradle\n\n^KT-87614\n"
    },
    {
      "commit": "388b52861828971b7d2640bc0cb06c220334cd96",
      "tree": "50881c184b95d4a22c9e9983ef1ba6c351a372b7",
      "parents": [
        "860f944497c14edc8ec8397de35552acd58e3639"
      ],
      "author": {
        "name": "Vladimir Iakunin",
        "email": "vladimir.iakunin@jetbrains.com",
        "time": "Tue Oct 20 13:05:45 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Wed Oct 21 22:31:47 2026 +0200"
      },
      "message": "[Gradle] Annotate ApplePrivacyManifestIT for Gradle\n\n^KT-87614\n"
    },
    {
      "commit": "860f944497c14edc8ec8397de35552acd58e3639",
      "tree": "92ed64b4b9ac5273643fbaa7eb25d8fd66da8aa3",
      "parents": [
        "5f5af6ea2e3aaa6cb7579041c3f9f96efc71705f"
      ],
      "author": {
        "name": "Vladimir Iakunin",
        "email": "vladimir.iakunin@jetbrains.com",
        "time": "Tue Oct 20 13:05:45 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Wed Oct 21 22:31:47 2026 +0200"
      },
      "message": "[Gradle] Annotate JsSetupConfigurationCacheIT for Gradle\n\n^KT-87614\n"
    },
    {
      "commit": "5f5af6ea2e3aaa6cb7579041c3f9f96efc71705f",
      "tree": "b35dfcf62845e5bbc5c273e7c5358bec77f6d663",
      "parents": [
        "7b83979c833ca6d6a07304c9b685de9fe31455c4"
      ],
      "author": {
        "name": "Vladimir Iakunin",
        "email": "vladimir.iakunin@jetbrains.com",
        "time": "Tue Oct 20 13:05:45 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Wed Oct 21 22:31:47 2026 +0200"
      },
      "message": "[Gradle] Annotate KotlinJsDomApiDependencyIT for Gradle\n\n^KT-87614\n"
    },
    {
      "commit": "7b83979c833ca6d6a07304c9b685de9fe31455c4",
      "tree": "9fcb16ce8fcd6f660208b0ada5f712f45e7f9b68",
      "parents": [
        "e8e78dc6923c549800cad0627a88d454e173a6b2"
      ],
      "author": {
        "name": "Vladimir Iakunin",
        "email": "vladimir.iakunin@jetbrains.com",
        "time": "Tue Oct 20 13:05:45 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Wed Oct 21 22:31:47 2026 +0200"
      },
      "message": "[Gradle] Annotate JsPartialLinkageIT for Gradle\n\n^KT-87614\n"
    },
    {
      "commit": "e8e78dc6923c549800cad0627a88d454e173a6b2",
      "tree": "b4c1b27309afb3a84d577f2e995fb383a9f9bd92",
      "parents": [
        "1c3f1cddf051c7a30dd1ad3b877c7a1cb18b4b87"
      ],
      "author": {
        "name": "Vladimir Iakunin",
        "email": "vladimir.iakunin@jetbrains.com",
        "time": "Tue Oct 20 13:05:44 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Wed Oct 21 22:31:47 2026 +0200"
      },
      "message": "[Gradle] Annotate JsIrConfigurationCacheIT for Gradle\n\n^KT-87614\n"
    },
    {
      "commit": "1c3f1cddf051c7a30dd1ad3b877c7a1cb18b4b87",
      "tree": "ae2e254ddf828bb04ca9a63af4f9f8a86f977fac",
      "parents": [
        "204fe35a303316f32d6617509b146f2e19b6ba74"
      ],
      "author": {
        "name": "Vladimir Iakunin",
        "email": "vladimir.iakunin@jetbrains.com",
        "time": "Tue Oct 20 13:05:44 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Wed Oct 21 22:31:47 2026 +0200"
      },
      "message": "[Gradle] Annotate MppJvmRunIT for Gradle\n\n^KT-87614\n"
    },
    {
      "commit": "204fe35a303316f32d6617509b146f2e19b6ba74",
      "tree": "51b7688587c28c549a85711b8604d61190e582d7",
      "parents": [
        "a48daf3a100ee426b103d775cbf4b4c57fcfa16c"
      ],
      "author": {
        "name": "Vladimir Iakunin",
        "email": "vladimir.iakunin@jetbrains.com",
        "time": "Tue Oct 20 13:05:44 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Wed Oct 21 22:31:47 2026 +0200"
      },
      "message": "[Gradle] Annotate MppIncorrectCompileOnlyDependenciesValidationIT\n\n^KT-87614\n"
    },
    {
      "commit": "a48daf3a100ee426b103d775cbf4b4c57fcfa16c",
      "tree": "49cd5aa65753cf9e268f8cd380ab6695e52cfa23",
      "parents": [
        "f6be5c508f0087f036b44e278c24a253a850048f"
      ],
      "author": {
        "name": "Vladimir Iakunin",
        "email": "vladimir.iakunin@jetbrains.com",
        "time": "Tue Oct 20 13:05:44 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Wed Oct 21 22:31:47 2026 +0200"
      },
      "message": "[Gradle] Annotate MppDslAssociateCompilationsIT for Gradle\n\n^KT-87614\n"
    },
    {
      "commit": "f6be5c508f0087f036b44e278c24a253a850048f",
      "tree": "48a2a3542ac66ee102192c43786e5140e9c57ec1",
      "parents": [
        "9a2ed821202444826ee69dfb55878f897a727475"
      ],
      "author": {
        "name": "Vladimir Iakunin",
        "email": "vladimir.iakunin@jetbrains.com",
        "time": "Tue Oct 20 13:05:44 2026 +0200"
      },
      "committer": {
        "name": "Build Server",
        "email": "kotlin-build@jetbrains.com",
        "time": "Wed Oct 21 22:31:47 2026 +0200"
      },
      "message": "[Gradle] Annotate BrokenLazyConfigurationIT for Gradle\n\n^KT-87614\n"
    }
  ],
  "next": "9a2ed821202444826ee69dfb55878f897a727475"
}
