)]}'
{
  "log": [
    {
      "commit": "46b65143c2b2945b50a0b2e7b082e918108e1b98",
      "tree": "4a9e18f69774841fcf301cb904ce6ca12676d29d",
      "parents": [
        "35174606d8618071d5e0002c0cfe708c7baded3b"
      ],
      "author": {
        "name": "Matthias Kurz",
        "email": "m.kurz@irregular.at",
        "time": "Fri Jul 24 17:28:20 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 24 16:28:20 2026 +0100"
      },
      "message": "Document selective WebSocket compression behavior #61 (#1175)\n\nClarify selector invocation, fragmentation, failure, and streaming semantics across the Scala and Java APIs and directive documentation."
    },
    {
      "commit": "35174606d8618071d5e0002c0cfe708c7baded3b",
      "tree": "a6ea772783c7bb3640c89b8925b735f5d89a344f",
      "parents": [
        "6f5670fa9ab9f1f22879f8f9145612a267cc28ca"
      ],
      "author": {
        "name": "Matthias Kurz",
        "email": "m.kurz@irregular.at",
        "time": "Fri Jul 24 00:04:44 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 23:04:44 2026 +0100"
      },
      "message": "Add selective WebSocket message compression (#1172)\n\n* Add selective WebSocket message compression #61\n\n* Simplify selective WebSocket compression examples #61\n\n* Order WebSocket server spec imports #61"
    },
    {
      "commit": "6f5670fa9ab9f1f22879f8f9145612a267cc28ca",
      "tree": "ba7e8b3e2754de2b30175b5e90b58cadebc89778",
      "parents": [
        "2eb458663058687d6c0a753918c2868ed2ec1f66"
      ],
      "author": {
        "name": "Matthias Kurz",
        "email": "m.kurz@irregular.at",
        "time": "Thu Jul 23 23:14:45 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 22:14:45 2026 +0100"
      },
      "message": "Improve WebSocket compression internals and resource cleanup (#1173)\n\n* Address WebSocket compression review feedback #61\n\n* Reuse 8 KiB buffers in the inflater and deflater flows.\n* Accumulate split frame data without repeatedly copying earlier chunks.\n* Handle extension parameters and custom WebSocket settings defensively.\n* Simplify extension header handling and align disabled compression defaults.\n\n* Verify WebSocket compression resource cleanup #61\n\n* Inject inflater and deflater creation per materialized flow instead of using mutable global test hooks.\n* Verify cleanup after completion, failure, cancellation, protocol errors, and incomplete frame or message state.\n* Ensure every created compression resource is released exactly once.\n\n* Increase WebSocket decompression limit #61\n\nUse the 256 KiB default agreed during review of the initial WebSocket compression implementation. Keep the disabled settings baseline aligned with reference.conf."
    },
    {
      "commit": "2eb458663058687d6c0a753918c2868ed2ec1f66",
      "tree": "790b686168b188536240d6ce36a867c7f372bde7",
      "parents": [
        "892bf872539891095fe3021155625ff613743995"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 19:43:44 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 20 19:43:44 2026 +0100"
      },
      "message": "build(deps): Bump sbt/setup-sbt from 1.5.0 to 1.5.2 (#1170)\n\nBumps [sbt/setup-sbt](https://github.com/sbt/setup-sbt) from 1.5.0 to 1.5.2.\n- [Release notes](https://github.com/sbt/setup-sbt/releases)\n- [Commits](https://github.com/sbt/setup-sbt/compare/66fb4376e81982c7d92a4074170846fff88e2e30...6444f4c8111de4b9059c3975def104b03cfaa5f0)\n\n---\nupdated-dependencies:\n- dependency-name: sbt/setup-sbt\n  dependency-version: 1.5.2\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "892bf872539891095fe3021155625ff613743995",
      "tree": "935e0064de608b9283119daa5c0e56f3d7177a35",
      "parents": [
        "9490898af319a4081bbb07e8549a3aa8c6d4dcdc"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 11:18:49 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 20 11:18:49 2026 +0800"
      },
      "message": "build(deps): Bump actions/setup-java from 5.5.0 to 5.6.0 (#1171)\n\nBumps [actions/setup-java](https://github.com/actions/setup-java) from 5.5.0 to 5.6.0.\n- [Release notes](https://github.com/actions/setup-java/releases)\n- [Commits](https://github.com/actions/setup-java/compare/0f481fcb613427c0f801b606911222b5b6f3083a...03ad4de0992f5dab5e18fcb136590ce7c4a0ac95)\n\n---\nupdated-dependencies:\n- dependency-name: actions/setup-java\n  dependency-version: 5.6.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "9490898af319a4081bbb07e8549a3aa8c6d4dcdc",
      "tree": "156f3bdaa9d70adf52729309dbfa318315c2df59",
      "parents": [
        "aacecbd91520a83e11850dc2f893c191a96391f9"
      ],
      "author": {
        "name": "PJ Fanning",
        "email": "pjfanning@users.noreply.github.com",
        "time": "Sun Jul 19 00:47:01 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 19 00:47:01 2026 +0100"
      },
      "message": "Refactor global settings (#1169)"
    },
    {
      "commit": "aacecbd91520a83e11850dc2f893c191a96391f9",
      "tree": "75300211ec97e46695f681bc0f3125fcf1f56b07",
      "parents": [
        "c7fbe4390205bd460134569f24d5655d920798e3"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "43047562+scala-steward@users.noreply.github.com",
        "time": "Sat Jul 18 17:38:44 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 18 23:38:44 2026 +0800"
      },
      "message": "Update sbt, scripted-plugin to 1.12.14 (#1166)"
    },
    {
      "commit": "c7fbe4390205bd460134569f24d5655d920798e3",
      "tree": "51265397b0c8ae9a0f869563bf8e39de162df0bf",
      "parents": [
        "33675e16c86ac78d0466131c19049a0d8e63169e"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "43047562+scala-steward@users.noreply.github.com",
        "time": "Sat Jul 18 17:38:37 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 18 23:38:37 2026 +0800"
      },
      "message": "Update sbt-scalafmt to 2.6.2 (#1167)"
    },
    {
      "commit": "33675e16c86ac78d0466131c19049a0d8e63169e",
      "tree": "dc914f833fa63c3924445520b9b2a9504af3c536",
      "parents": [
        "d53065af9a39fbbb1a617ed871e17632beb71a02"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "43047562+scala-steward@users.noreply.github.com",
        "time": "Sat Jul 18 17:38:30 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 18 23:38:30 2026 +0800"
      },
      "message": "Update scalafmt-core to 3.11.4 (#1168)"
    },
    {
      "commit": "d53065af9a39fbbb1a617ed871e17632beb71a02",
      "tree": "94ba6630ee8044cec4210266d79a4c929cf14742",
      "parents": [
        "60d20213b67faad778d573f6de04d5dc92914855"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "43047562+scala-steward@users.noreply.github.com",
        "time": "Fri Jul 17 10:50:01 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 17 10:50:01 2026 +0200"
      },
      "message": "Update sbt-license-report to 1.10.0 (#1165)"
    },
    {
      "commit": "60d20213b67faad778d573f6de04d5dc92914855",
      "tree": "fdc1533374810ffc7df5692ccaa95617beb27ac3",
      "parents": [
        "fff51c17a2187d81aab7ceb64f7c2f3587a32136"
      ],
      "author": {
        "name": "Philippus Baalman",
        "email": "philippus@gmail.com",
        "time": "Tue Jul 14 09:46:33 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 14 08:46:33 2026 +0100"
      },
      "message": "Replace expressions with Single Abstract Methods (SAMs) (#1164)"
    },
    {
      "commit": "fff51c17a2187d81aab7ceb64f7c2f3587a32136",
      "tree": "3e0840f4dc3f8eaa67003929177517f647a58f0c",
      "parents": [
        "f0949217315b92122b419a9b78c5fcee92185b4f"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "43047562+scala-steward@users.noreply.github.com",
        "time": "Mon Jul 13 07:06:48 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 13 06:06:48 2026 +0100"
      },
      "message": "Update junit-platform-launcher to 6.1.2 (#1157)\n\nCo-authored-by: Philippus Baalman \u003cphilippus@gmail.com\u003e"
    },
    {
      "commit": "f0949217315b92122b419a9b78c5fcee92185b4f",
      "tree": "809b12b8d388d883559f56557a92dca4e1f98850",
      "parents": [
        "6074a8e338519a51d384362e2fb6bc63b2621c42"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "43047562+scala-steward@users.noreply.github.com",
        "time": "Mon Jul 13 07:06:06 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 13 06:06:06 2026 +0100"
      },
      "message": "Update jackson-databind to 3.2.1 (#1159)"
    },
    {
      "commit": "6074a8e338519a51d384362e2fb6bc63b2621c42",
      "tree": "b2a8d54db32583332bf267523edba967592e2721",
      "parents": [
        "9e241e54271b584e7585ac6b741b7209377c76a5"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Jul 13 11:06:20 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 13 11:06:20 2026 +0800"
      },
      "message": "build(deps): Bump actions/setup-java from 5.4.0 to 5.5.0 (#1160)\n\nBumps [actions/setup-java](https://github.com/actions/setup-java) from 5.4.0 to 5.5.0.\n- [Release notes](https://github.com/actions/setup-java/releases)\n- [Commits](https://github.com/actions/setup-java/compare/1bcf9fb12cf4aa7d266a90ae39939e61372fe520...0f481fcb613427c0f801b606911222b5b6f3083a)\n\n---\nupdated-dependencies:\n- dependency-name: actions/setup-java\n  dependency-version: 5.5.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "9e241e54271b584e7585ac6b741b7209377c76a5",
      "tree": "2f2efda36b6928b11edfec34cd840fbe43b623ce",
      "parents": [
        "04a8f3ae931c4d0a8e73fca4d457a4f471930474"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "43047562+scala-steward@users.noreply.github.com",
        "time": "Sun Jul 12 19:25:09 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 12 19:25:09 2026 +0200"
      },
      "message": "Update scalafmt-core to 3.11.3 (#1158)"
    },
    {
      "commit": "04a8f3ae931c4d0a8e73fca4d457a4f471930474",
      "tree": "e430179a556f15c441375bef040425e8253d8539",
      "parents": [
        "18796ca69492bcb84b98b52005161fe18c4a055c"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "43047562+scala-steward@users.noreply.github.com",
        "time": "Sun Jul 12 19:21:27 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 12 19:21:27 2026 +0200"
      },
      "message": "Update junit-jupiter-api, ... to 6.1.2 (#1156)"
    },
    {
      "commit": "18796ca69492bcb84b98b52005161fe18c4a055c",
      "tree": "56aae448d92180f6a86ef99b7d01e4b29966248b",
      "parents": [
        "e5a05ac774b71aaf65600dc5f99f206978aff650"
      ],
      "author": {
        "name": "He-Pin(kerr)",
        "email": "hepin1989@gmail.com",
        "time": "Sat Jul 11 04:20:30 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 11 04:20:30 2026 +0800"
      },
      "message": "Fix byte string transformer cleanup on stage stop (#1154)\n\nMotivation:\nA byte string transformer marked itself finished before a pending final emission was delivered, so downstream cancellation in that window skipped cleanup.\n\nModification:\nTreat cleanup as the stage finalizer by invoking it unconditionally from postStop, and add directional tests for normal completion and cancellation while the final emission is pending.\n\nResult:\nAll stage termination paths release transformer resources without relying on a fragile finished flag. Existing compressor cleanup remains safe because it is idempotent.\n\nTests:\n- sbt \"http-core / Test / testOnly org.apache.pekko.http.impl.util.StreamUtilsSpec\": 7 passed\n- sbt \"http-tests / Test / testOnly org.apache.pekko.http.scaladsl.coding.DeflateSpec org.apache.pekko.http.scaladsl.coding.GzipSpec\": 54 passed\n- sbt checkCodeStyle: passed\n- sbt headerCreateAll and +headerCheckAll: passed\n- scalafmt --list --mode diff-ref\u003dorigin/main: passed\n- sbt sortImports: environment failure, Scalafix/scala.meta NoSuchMethodError\n- sbt validatePullRequest: not run locally per maintainer request; delegated to CI\n\nReferences:\nRefs #1133; follow-up to #1142"
    },
    {
      "commit": "e5a05ac774b71aaf65600dc5f99f206978aff650",
      "tree": "4f14dc3f8be9dbcffb6382924a5514a20369d64f",
      "parents": [
        "554806a6d35086da9b235bd1d165bad8f84e7a53"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "43047562+scala-steward@users.noreply.github.com",
        "time": "Fri Jul 10 19:03:38 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 10 18:03:38 2026 +0100"
      },
      "message": "Update munit to 1.3.4 (#1152)"
    },
    {
      "commit": "554806a6d35086da9b235bd1d165bad8f84e7a53",
      "tree": "73a22676697719182f10d190748aa5f486f6aae6",
      "parents": [
        "70ae7905f3f2c4e56b98029ff442d9515050a4da"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "43047562+scala-steward@users.noreply.github.com",
        "time": "Fri Jul 10 19:02:53 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 10 18:02:53 2026 +0100"
      },
      "message": "Update sbt-reproducible-builds to 0.35 (#1151)"
    },
    {
      "commit": "70ae7905f3f2c4e56b98029ff442d9515050a4da",
      "tree": "c046ce693bed3944b74bc4953e74215f207b5204",
      "parents": [
        "d720e9126a19c12575105cf30100d6fd2305e044"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "43047562+scala-steward@users.noreply.github.com",
        "time": "Fri Jul 10 19:02:27 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 10 18:02:27 2026 +0100"
      },
      "message": "Update scalafmt-core to 3.11.2 (#1153)"
    },
    {
      "commit": "d720e9126a19c12575105cf30100d6fd2305e044",
      "tree": "03f00118f7b1372f62b738c88ad18ab5f6ef2c48",
      "parents": [
        "7591e2e53f5cd997388096961a4734c74ced05f6"
      ],
      "author": {
        "name": "PJ Fanning",
        "email": "pjfanning@users.noreply.github.com",
        "time": "Fri Jul 10 13:38:36 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 10 13:38:36 2026 +0100"
      },
      "message": "issue with comments failing build (#1149)"
    },
    {
      "commit": "7591e2e53f5cd997388096961a4734c74ced05f6",
      "tree": "3b984118e3adcdd40d0a7fdec6b02144a8732dcc",
      "parents": [
        "215205376f57cda81c3a49a83f648a3a8261cde0"
      ],
      "author": {
        "name": "PJ Fanning",
        "email": "pjfanning@users.noreply.github.com",
        "time": "Fri Jul 10 13:37:50 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 10 13:37:50 2026 +0100"
      },
      "message": "Ensure deflater/inflater end() is called in DeflateCompressor and GzipCompressor (#1142)\n\n* Ensure deflater/inflater end() is called in DeflateCompressor and GzipCompressor\n\n- DeflateCompressor: add deflaterEnded flag + idempotent endDeflater() method;\n  call endDeflater() in finishWithBuffer() instead of deflater.end() directly\n- GzipDecompressor: add postStop() calling inflater.end() + add createInflater()\n  factory method for testability\n- StreamUtils.byteStringTransformer: add optional cleanup callback, call it in\n  postStop() when the stage is stopped before onUpstreamFinish()\n- Encoder.singleUseEncoderFlow: pass cleanup callback that calls endDeflater()\n  on DeflateCompressor instances to handle stream cancellation/failure\n- DeflateSpec: add tests for deflater cleanup on normal finish and cancellation\n- GzipSpec: add tests for inflater cleanup on normal finish and cancellation,\n  and deflater cleanup on normal finish and cancellation\n\n* compile issues\n\n* Add explicit cleanup() to Compressor/DeflateCompressor; GzipCompressor inherits it\n\n* revert GzipCompressor changes\n\n* Update GzipSpec.scala\n\n* Update GzipSpec.scala\n\n* Update GzipSpec.scala\n\n* review comments\n\n* Refactor onUpstreamFinish method for clarity\n\n---------\n\nCo-authored-by: copilot-swe-agent[bot] \u003c198982749+Copilot@users.noreply.github.com\u003e"
    },
    {
      "commit": "215205376f57cda81c3a49a83f648a3a8261cde0",
      "tree": "96ee5346f502f3ad0ad1ca3a8e6979173a35802c",
      "parents": [
        "a7538229a75833bd0649d8ee71a563fd6f275e56"
      ],
      "author": {
        "name": "PJ Fanning",
        "email": "pjfanning@users.noreply.github.com",
        "time": "Thu Jul 09 14:12:04 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 09 14:12:04 2026 +0100"
      },
      "message": "Remove \u0027HttpApp\u0027 references from guidelines (#1148)\n\nRemoved references to \u0027HttpApp\u0027 from compatibility guidelines."
    },
    {
      "commit": "a7538229a75833bd0649d8ee71a563fd6f275e56",
      "tree": "0d94e316846ad1cd270642488dc576d3ee5a57eb",
      "parents": [
        "b1caba1e9f8170fb09dc53fde4cb3dfa01494023"
      ],
      "author": {
        "name": "He-Pin(kerr)",
        "email": "hepin1989@gmail.com",
        "time": "Thu Jul 09 19:27:16 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 09 19:27:16 2026 +0800"
      },
      "message": "refactor: remove deprecated HttpApp (since Akka HTTP 10.2.0) (#1125)\n\nMotivation:\nHttpApp was deprecated since Akka HTTP 10.2.0 as it doesn\u0027t reflect the latest APIs.\n\nModification:\nDeleted HttpApp source files (Scala and Java) and all associated test files:\n- http/src/main/scala/.../HttpApp.scala\n- http/src/main/java/.../HttpApp.java\n- http-tests/.../HttpAppSpec.scala (Scala + Java)\n- http-tests/.../MinimalHttpApp.java\n- http-tests/.../SneakHttpApp.java\n\nUpdated ApiMayChangeDocCheckerSpec to remove HttpApp from filter list.\nAdded MiMa filters for binary compatibility exceptions.\n\nResult:\nDeprecated HttpApp removed."
    },
    {
      "commit": "b1caba1e9f8170fb09dc53fde4cb3dfa01494023",
      "tree": "c9882245b79441ed7504bde1843da97c8b4afdad",
      "parents": [
        "0aefbc5ae991ca17f6ec271484a942c8bb2c392b"
      ],
      "author": {
        "name": "PJ Fanning",
        "email": "pjfanning@users.noreply.github.com",
        "time": "Thu Jul 09 05:59:52 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 09 06:59:52 2026 +0200"
      },
      "message": "remove inaccurate javadoc on internal method (#1144)"
    },
    {
      "commit": "0aefbc5ae991ca17f6ec271484a942c8bb2c392b",
      "tree": "4437d225fd2eeaf82857d18746396173ba1498d1",
      "parents": [
        "cd35849891385b64b444923a5436e5487ab03229"
      ],
      "author": {
        "name": "PJ Fanning",
        "email": "pjfanning@users.noreply.github.com",
        "time": "Wed Jul 08 21:38:32 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 08 21:38:32 2026 +0100"
      },
      "message": "link to jackson docs in pekko core (#1143)"
    },
    {
      "commit": "cd35849891385b64b444923a5436e5487ab03229",
      "tree": "a41cb6a6ca6c263b988d0c560dafb3846faf40b0",
      "parents": [
        "fd11ea3e085c3d3c414460875d0c47f27567a9ea"
      ],
      "author": {
        "name": "PJ Fanning",
        "email": "pjfanning@users.noreply.github.com",
        "time": "Wed Jul 08 21:25:29 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 08 21:25:29 2026 +0100"
      },
      "message": "use ByteString toArrayUnsafe in new deflater code (#1135)\n\n* use ByteString toArrayUnsafe\n\n* try fromArrayUnsafe in more places\n\n* Update HPackEncodingSupport.scala\n\n* revert unrelated changes\n\n* Update HPackEncodingSupport.scala"
    },
    {
      "commit": "fd11ea3e085c3d3c414460875d0c47f27567a9ea",
      "tree": "39891233d461593da73a4872e9a8056b8061e1c2",
      "parents": [
        "4365a427b728b1b863846dc8a4a8f850e4f1e3f9"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "43047562+scala-steward@users.noreply.github.com",
        "time": "Wed Jul 08 18:20:53 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 08 17:20:53 2026 +0100"
      },
      "message": "Update jackson-databind to 2.22.1 (#1145)"
    },
    {
      "commit": "4365a427b728b1b863846dc8a4a8f850e4f1e3f9",
      "tree": "5350778aa6745a9f4e0445cb7a10050de18928c8",
      "parents": [
        "a06ad57386088fbf1bf9a18ba10bec67eae55385"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "43047562+scala-steward@users.noreply.github.com",
        "time": "Wed Jul 08 18:20:29 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 08 17:20:29 2026 +0100"
      },
      "message": "Update sbt-boilerplate to 0.8.1 (#1146)"
    },
    {
      "commit": "a06ad57386088fbf1bf9a18ba10bec67eae55385",
      "tree": "246b74570ec5ce982b3217a237c2f930c6537e96",
      "parents": [
        "418e760eebc3698aefa5d52bbff3cd6f87624bf0"
      ],
      "author": {
        "name": "PJ Fanning",
        "email": "pjfanning@users.noreply.github.com",
        "time": "Wed Jul 08 09:28:45 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 08 09:28:45 2026 +0100"
      },
      "message": "GzipDecompressor: fix inflater memory leak (#1134)\n\n* Initial plan\n\n* Apply remaining changes\n\n* Update GzipSpec.scala\n\n* Update GzipCompressor.scala\n\n---------\n\nCo-authored-by: copilot-swe-agent[bot] \u003c198982749+Copilot@users.noreply.github.com\u003e"
    },
    {
      "commit": "418e760eebc3698aefa5d52bbff3cd6f87624bf0",
      "tree": "17bf76daffb81b2e12c6738ca0145b86c7f876b1",
      "parents": [
        "5f6cb8643fccfa8e29c844def936eedbe4c74760"
      ],
      "author": {
        "name": "PJ Fanning",
        "email": "pjfanning@users.noreply.github.com",
        "time": "Tue Jul 07 21:09:16 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 07 21:09:16 2026 +0100"
      },
      "message": "DeflateDecompressor: fix inflater memory leak (#1137)\n\n* fix: DeflateDecompressor inflater memory leak\n\nMotivation:\nDeflateDecompressor allocates an Inflater per stream but never explicitly\nreleases its native memory. Under GCs with relaxed off-heap reclamation\n(e.g. ZGC), repeated request decompression can accumulate unreclaimed\nnative buffers and eventually OOM.\n\nModification:\n- Add createInflater(noWrap) factory method to DeflateDecompressor to\n  allow test injection of a custom Inflater\n- Track the current inflater in a var within createLogic\n- Add idempotent cleanupInflater() that calls inflater.end()\n- Override postStop() to call cleanupInflater(), covering normal\n  completion, failure, and cancellation\n- Add focused tests in DeflateSpec verifying the inflater is released\n  on successful decode, early cancellation, and truncation\n\nResult:\nThe Inflater\u0027s native memory is reclaimed promptly when the stage\nterminates, regardless of termination path.\n\nTests:\n- Not run - sbt/builds skipped per user request to conserve credits\n\nReferences:\nRefs apache/pekko-http#1134\n\n* Update DeflateSpec.scala\n\n* close existing inflater\n\n* fix: await inflater.end() before asserting in cancellation test\n\nThe Sink.ignore future completes when take(1) sends Complete downstream,\nbut the Cancel signal that triggers postStop() (and thus end()) is a\nseparate actor message dispatched afterwards. This means awaitResult can\nreturn before end() has been called, yielding endCalls \u003d 0.\n\nAdd a CountDownLatch to TrackingInflater that is counted down inside\nend(), and call inflater.awaitEnd() after awaitResult() in the\ncancellation test to eliminate the race.\n\n---------\n\nCo-authored-by: copilot-swe-agent[bot] \u003c198982749+Copilot@users.noreply.github.com\u003e"
    },
    {
      "commit": "5f6cb8643fccfa8e29c844def936eedbe4c74760",
      "tree": "4c790940982f1b4c97dc6947d099fa0f990809e9",
      "parents": [
        "454e08d3b51474d0b9e0b479c98adb0af83ca7a7"
      ],
      "author": {
        "name": "He-Pin(kerr)",
        "email": "hepin1989@gmail.com",
        "time": "Tue Jul 07 00:41:02 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 07 00:41:02 2026 +0800"
      },
      "message": "fix: fix scaladoc warnings across all modules (#1120)\n\nMotivation:\nThe project had ~130 scaladoc warnings about unresolvable links,\nambiguous overloads, and incorrect package prefixes across http-core,\nhttp, http-testkit, and other modules.\n\nModification:\n- Replace unresolvable [[...]] links with backtick-quoted code for external types\n- Fix incorrect package prefixes (pekko. -\u003e org.apache.pekko.)\n- Resolve ambiguous overload links using backtick-quoted code\n- Restore full package path in EnhancedString#secure_\u003d\u003d references\n\nResult:\nAll scaladoc warnings are resolved. No functional changes.\n\nTests:\nNot run - docs only\n\nReferences:\nNone - scaladoc cleanup"
    },
    {
      "commit": "454e08d3b51474d0b9e0b479c98adb0af83ca7a7",
      "tree": "f2ad308d95c15e95565a34a2a2fc7c8d9ee825ec",
      "parents": [
        "cc37ca0e455f4cde4161c36df8dc3f7482a71141"
      ],
      "author": {
        "name": "He-Pin(kerr)",
        "email": "hepin1989@gmail.com",
        "time": "Tue Jul 07 00:40:42 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 07 00:40:42 2026 +0800"
      },
      "message": "refactor: replace deprecated extends App with explicit main method (#1131)\n\n* refactor: replace deprecated `extends App` with explicit main method\n\nMotivation:\n`extends App` is deprecated in Scala 3. Replace with explicit `def main`\nmethod for forward compatibility.\n\nModification:\nReplace `object X extends App { ... }` with\n`object X { def main(args: Array[String]): Unit \u003d { ... } }`\nin 14 test and example files.\n\nResult:\nNo more usage of deprecated `scala.App` trait. Code is compatible with Scala 3.\n\nTests:\nNot run - docs only\n\nReferences:\nNone - Scala 3 compatibility\n\n* fix: fix forward reference errors in Http2ServerTest and TestServer\n\nMotivation:\nMoving lazy vals from object-level members into def main() body\nintroduced forward reference compilation errors since local vals\ncannot reference later definitions in the same block.\n\nModification:\nMove lazy val index/imagePage and def imagesBlock definitions before\nthe code that references them (syncHandler/routes).\n\nResult:\nNo more forward reference compilation errors.\n\nTests:\nsbt \"http2-tests / Test / compile\" \"http-tests / Test / compile\" - success\n\nReferences:\nFixes CI failures in PR #1131\n\n* fix: avoid forward reference after removing extends App\n\nMotivation:\nPR 1131 replaces deprecated Scala extends App usage with explicit main methods, but moving Http2ClientApp logic into main turned the singleRequest helper into a local method used before its definition.\n\nModification:\nMove singleRequest back to object scope as a private helper while keeping the explicit main method.\n\nResult:\nHttp2ClientApp keeps the PR\u0027s explicit main entry point and compiles without the local forward reference error.\n\nTests:\n- rtk sbt \"++2.13.18!\" \"docs / Test / compile\" - passed\n- rtk sbt \"++3.3.8!\" \"docs / Test / compile\" - passed\n- rtk sbt \"++3.8.4!\" \"docs / Test / compile\" - passed\n- rtk scalafmt --mode diff-ref\u003dorigin/main - passed\n- rtk scalafmt --list --mode diff-ref\u003dorigin/main - passed\n- rtk git diff --check - passed\n- rtk sbt \"docs / Test / headerCheck\" - passed\n\nReferences:\nRefs #1131"
    },
    {
      "commit": "cc37ca0e455f4cde4161c36df8dc3f7482a71141",
      "tree": "01527d105123be8293e422afe8ba453a8b25a055",
      "parents": [
        "a3cca431417cd8a06aa94d09ef58aa9347cdbea5"
      ],
      "author": {
        "name": "He-Pin(kerr)",
        "email": "hepin1989@gmail.com",
        "time": "Tue Jul 07 00:28:20 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 07 00:28:20 2026 +0800"
      },
      "message": "Replace Reflections with ClassGraph in tests (#1132)\n\n* refactor: replace java.lang.reflect with MethodHandle/VarHandle for JIT optimization\n\nMotivation:\njava.lang.reflect Method.invoke and Constructor.newInstance bypass JIT\ninlining, adding overhead to build-time aggregation calls and test code.\n\nModification:\n- SbtInternalAccess: replace Method.invoke with MethodHandle.invoke via\n  unreflect for Aggregation.showRun calls\n- Http2ServerSpec: replace Field.get with VarHandle.get via\n  unreflectVarHandle for ManualProbe.probe field access\n- TurkishISpec: replace Constructor.newInstance with MethodHandle.invoke\n  via unreflectConstructor for HttpCharsets$ instantiation\n\nResult:\nMethodHandle and VarHandle enable JIT inlining, eliminating reflection\noverhead in both build-time and test code paths.\n\nTests:\n- sbt \"http2-tests / Test / compile\" - success\n- sbt \"http-core / Test / compile\" - success\n\nReferences:\nNone - internal refactoring\n\n* refactor: use method handles in tests and sbt access\n\nMotivation:\nReduce direct reflective invocation in HTTP tests and build helper code while keeping API consistency checks maintainable.\n\nModification:\nUse bounded ClassGraph scans only for test API metadata, cache MethodHandle and VarHandle access where private or dynamic access is needed, and update test descriptors away from Class.forName.\n\nResult:\nHTTP reflective invocation sites are replaced with cached handles where practical, with metadata scanning limited to Pekko HTTP test packages.\n\n* fix: use invokeWithArguments() for no-arg calls and fix array class resolution\n\n- TurkishISpec: replace invoke() with invokeWithArguments() for Scala 3\n  polymorphic signature compatibility\n- SerializabilitySpec: use Class.forName for array type descriptors in\n  resolveClass, since MethodType.fromMethodDescriptorString can fail on\n  some array descriptors during deserialization\n\n* refactor: scope reflection replacement to ClassGraph scans\n\nMotivation:\nPR review pointed out that replacing ordinary reflection with MethodHandle/VarHandle code added complexity without a demonstrated performance win. The intended change is to avoid Reflections\u0027 deep reflection during test classpath scans.\n\nModification:\nKeep the ClassGraph migration for the documentation and directive consistency scanners, close ScanResult resources after each suite, and restore the unrelated MethodHandle/VarHandle changes to the simpler existing implementations.\n\nResult:\nThe PR diff is focused on replacing org.reflections with ClassGraph 4.8.184 in the relevant test scanners.\n\nTests:\n- scalafmt --mode diff-ref\u003db0d3009b375b536397a776880301cc1943ef4645 - success\n- scalafmt --list --mode diff-ref\u003db0d3009b375b536397a776880301cc1943ef4645 - success\n- git diff --check - success\n- JDK 17 sbt \"docs / Test / testOnly docs.ApiMayChangeDocCheckerSpec\" \"http-tests / Test / testOnly org.apache.pekko.http.javadsl.DirectivesConsistencySpec\" - success\n- qodercli -p --output-format stream-json --cwd \"/Users/hepin/IdeaProjects/pekkos/pekko-http\" --attachment /tmp/project-review.diff review - No must-fix findings\n\nReferences:\nRefs #1132"
    },
    {
      "commit": "a3cca431417cd8a06aa94d09ef58aa9347cdbea5",
      "tree": "0d843af91aa85d56aed197ce57983611a2375c22",
      "parents": [
        "c027c12eeb57d7e0e8bc6ca867e3657222c92374"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "43047562+scala-steward@users.noreply.github.com",
        "time": "Mon Jul 06 16:27:55 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 06 22:27:55 2026 +0800"
      },
      "message": "Update sbt-multi-jvm to 0.7.0 (#1138)"
    },
    {
      "commit": "c027c12eeb57d7e0e8bc6ca867e3657222c92374",
      "tree": "e8087772d3d6ca86382146fcf30ca500dad11089",
      "parents": [
        "b0d3009b375b536397a776880301cc1943ef4645"
      ],
      "author": {
        "name": "PJ Fanning",
        "email": "pjfanning@users.noreply.github.com",
        "time": "Mon Jul 06 14:44:29 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 06 14:44:29 2026 +0100"
      },
      "message": "use StandardCharsets.UTF_8 (#1136)"
    },
    {
      "commit": "b0d3009b375b536397a776880301cc1943ef4645",
      "tree": "4ab0e3e1d867d03d78306134ddd249a3e8d269d0",
      "parents": [
        "56f2f5ad19de2bd891954ea2c254e16a936d028d"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Jul 06 11:06:51 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 06 11:06:51 2026 +0800"
      },
      "message": "build(deps): Bump sbt/setup-sbt from 1.4.0 to 1.5.0 (#1130)\n\nBumps [sbt/setup-sbt](https://github.com/sbt/setup-sbt) from 1.4.0 to 1.5.0.\n- [Release notes](https://github.com/sbt/setup-sbt/releases)\n- [Commits](https://github.com/sbt/setup-sbt/compare/3afe9cf056c5d139bfc46579af1192d77a2f0821...66fb4376e81982c7d92a4074170846fff88e2e30)\n\n---\nupdated-dependencies:\n- dependency-name: sbt/setup-sbt\n  dependency-version: 1.5.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "56f2f5ad19de2bd891954ea2c254e16a936d028d",
      "tree": "0246da9e204bd94b946281e27d499d4f43f1ecf6",
      "parents": [
        "fad7678899cf1ed36cc4921ecf0d421a69f980ae"
      ],
      "author": {
        "name": "He-Pin(kerr)",
        "email": "hepin1989@gmail.com",
        "time": "Mon Jul 06 01:57:18 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 06 01:57:18 2026 +0800"
      },
      "message": "feat: add Scala next cross-build coverage (#1129)\n\nMotivation:\\nPrepare the build for the next Scala 3 LTS lane while keeping published Scala artifacts on the current 2.13.x and 3.3.x release lines.\\n\\nModification:\\nCentralize the next Scala version lookup for CI, keep published crossScalaVersions on release lanes, force the next lane only in build/test matrices, and fix Scala 3.8.4 compile, MiMa, and formatting issues.\\n\\nResult:\\n2.13.x, 3.3.8, and 3.8.4 build/test coverage can run while MiMa and publishing remain on published Scala versions."
    },
    {
      "commit": "fad7678899cf1ed36cc4921ecf0d421a69f980ae",
      "tree": "5a4efbbd1e9d67f44ea6d93b804c075b9fe89c8c",
      "parents": [
        "da4342b296d11670a69457ee9a574de05dcc5dd7"
      ],
      "author": {
        "name": "He-Pin(kerr)",
        "email": "hepin1989@gmail.com",
        "time": "Sun Jul 05 17:00:05 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 05 17:00:05 2026 +0800"
      },
      "message": "Remove deprecated ParserSettings.apply/create (since Akka HTTP 10.2.0) (#1126)\n\n* refactor: remove deprecated ParserSettings.apply/create (since Akka HTTP 10.2.0)\n\n* fix: remove SettingsCompanion from ParserSettings companion objects\n\nSettingsCompanion requires apply/create(config: Config) and\napply/create(configOverrides: String) which were removed as deprecated.\nReplace with direct apply/create methods delegating to forServer.\n\n* fix: update SettingsEqualitySpec to use ParserSettings.forServer\n\nMotivation:\nParserSettings no longer extends SettingsCompanion, so the\napply(config: Config) method is no longer available.\n\nModification:\nReplace ParserSettings(config) with ParserSettings.forServer,\nwhich uses the implicit ActorSystem. Remove unused @nowarn\nannotation and import.\n\nResult:\nTest compiles and runs correctly with the updated ParserSettings API.\n\n* fix: update tests and MiMa filters for ParserSettings SettingsCompanion removal\n\nMotivation:\nParserSettings no longer extends SettingsCompanion, so\nParserSettings(system) now creates server-specific settings (via forServer).\nTwo tests relied on the old generic behavior. MiMa also reports\nIncompatibleMethTypeProblem, IncompatibleResultTypeProblem, and\nMissingTypesProblem from the SettingsCompanion removal.\n\nModification:\n- ServerSettingsSpec: use ParserSettings.forClient to get client-specific\n  settings that correctly fail when used with ServerSettings\n- ClientConnectionSettingsSpec: use ParserSettings.forServer explicitly\n- Add MiMa filters for ParserSettings$ type changes\n\nResult:\nTests pass with the updated ParserSettings API and MiMa checks succeed.\n\n* fix: remove tests for generic ParserSettings that no longer exists\n\nMotivation:\nWith SettingsCompanion removed from ParserSettings, there is no\nlonger a way to create \u0027generic\u0027 (non-scoped) parser settings.\nThe tests that verified early failure when using generic settings\nwith scoped settings objects are no longer applicable.\n\nModification:\nRemove the \u0027fail early\u0027 tests from ClientConnectionSettingsSpec\nand ServerSettingsSpec. Both forServer and forClient produce\ncomplete settings with max-content-length defined.\n\nResult:\nRemaining tests pass without the inapplicable scenario.\n\n* style: apply scalafmt to ClientConnectionSettingsSpec"
    },
    {
      "commit": "da4342b296d11670a69457ee9a574de05dcc5dd7",
      "tree": "959ce31ba9cb78bbebdeeae58ebbdeba4661cf67",
      "parents": [
        "d7b889a374fd65087d790cfa6bd9bb33b3cdbd68"
      ],
      "author": {
        "name": "He-Pin(kerr)",
        "email": "hepin1989@gmail.com",
        "time": "Sun Jul 05 16:41:49 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 05 16:41:49 2026 +0800"
      },
      "message": "fix: fix javadoc warnings in Java sources across pekko-http modules (#1119)\n\nMotivation:\nRunning `sbt doc` produces javadoc and compilation warnings in Java\nsource files across http-core, http, and http-jackson modules:\nmulti-line {@link} tags, Scala-style [[...]] links, invalid link\nsyntax, unchecked casts, and deprecated API usage.\n\nModification:\n- Fix invalid {@link} tags in Authority.java, HttpApp.java,\n  HttpHeader.java, Multipart.java, CustomHeader.java\n- Replace Scala-style [[...]] links with {@code}/{@link} in\n  HttpEntity, HttpMessage, HttpMethod, ServerSentEvent, ContentTypeResolver\n- Add javadoc to public methods in Jackson.java (jackson \u0026 jackson3)\n  and example classes\n- Add @SuppressWarnings(\"deprecation\") to ContentTypes, Coder,\n  Jackson, ParserSettingsTest\n- Add @SuppressWarnings(\"unchecked\") to AttributeKeys\n- Apply javafmt to all modified Java files\n\nResult:\nAll javadoc and compilation warnings in Java sources are eliminated.\n\nTests:\nManually verified via `sbt doc` and grep pattern search\n\nReferences:\nFollow-up to #908"
    },
    {
      "commit": "d7b889a374fd65087d790cfa6bd9bb33b3cdbd68",
      "tree": "a5adaf7341290590e81d128ca15f5fc8e8843284",
      "parents": [
        "763273f569a24b726ed8c37e554fe019b78d3de6"
      ],
      "author": {
        "name": "He-Pin(kerr)",
        "email": "hepin1989@gmail.com",
        "time": "Sun Jul 05 16:41:28 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 05 16:41:28 2026 +0800"
      },
      "message": "refactor: remove deprecated ConnectionContext.defaultPort (since Akka HTTP 10.2.0) (#1127)"
    },
    {
      "commit": "763273f569a24b726ed8c37e554fe019b78d3de6",
      "tree": "95b5420c1b61058ed5223aee618f8fc242c4ee4d",
      "parents": [
        "748030a9756be5701c4249664f3162c3331e62b0"
      ],
      "author": {
        "name": "He-Pin(kerr)",
        "email": "hepin1989@gmail.com",
        "time": "Sun Jul 05 16:41:07 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 05 16:41:07 2026 +0800"
      },
      "message": "Remove deprecated UnsupportedRequestContentTypeRejection.apply 1-arg (since Akka HTTP 10.1.9) (#1128)\n\n* refactor: remove deprecated UnsupportedRequestContentTypeRejection.apply 1-arg (since Akka HTTP 10.1.9)\n\n* fix: change AbstractFunction1 to AbstractFunction2 for UnsupportedRequestContentTypeRejection\n\nThe deprecated 1-arg apply was the Function1 implementation.\nAfter removal, the companion object needs AbstractFunction2 to match the remaining 2-arg apply.\n\n* fix: add MiMa filters for andThen/compose lost from Function1→Function2"
    },
    {
      "commit": "748030a9756be5701c4249664f3162c3331e62b0",
      "tree": "a53b2119998b411fd0e79fdbfad7c09f33a44e1b",
      "parents": [
        "323787c8ad371641f833bb79a6dc6e6ef3ed703f"
      ],
      "author": {
        "name": "He-Pin(kerr)",
        "email": "hepin1989@gmail.com",
        "time": "Sun Jul 05 06:13:58 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 05 06:13:58 2026 +0800"
      },
      "message": "fix: suppress Java compilation warnings in http-core, http and http-jackson (#1118)\n\nMotivation:\nSeveral Java source files in pekko-http produce compilation warnings:\n- ContentTypes.java references deprecated Scala ContentTypes APIs\n- AttributeKeys.java contains unchecked casts from Scala to Java AttributeKey\n- Coder.java uses deprecated internal Scala coding objects (NoCoding$, Deflate$, Gzip$)\n- Jackson.java references deprecated APIs\n- ParserSettingsTest.java tests deprecated API overloads\n\nModification:\n- Add @SuppressWarnings(\"deprecation\") to ContentTypes, Coder, Jackson\n  and ParserSettingsTest\n- Add @SuppressWarnings(\"unchecked\") to AttributeKeys\n\nResult:\nJava compilation no longer reports warnings for these files. All\nsuppressions are on code that intentionally uses these APIs for Java\ninteroperability.\n\nTests:\nNot run - full pekko-http clean compile requires h2spec_darwin_amd64\ndependency that is unavailable on macOS ARM64. The changes are\nannotation-only and cannot affect runtime behavior.\n\nReferences: None - cleanup"
    },
    {
      "commit": "323787c8ad371641f833bb79a6dc6e6ef3ed703f",
      "tree": "10097967dc3e3babfd0c1e828fd099ba2bbf0b9b",
      "parents": [
        "e3108db1db9cbca664d919df079d95d3db0771b9"
      ],
      "author": {
        "name": "He-Pin(kerr)",
        "email": "hepin1989@gmail.com",
        "time": "Sun Jul 05 03:32:36 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 05 03:32:36 2026 +0800"
      },
      "message": "refactor: fold InHandler and OutHandler into GraphStageLogic in DecoderSpec (#1117)\n\nPort akka-http commit from PR #4158: reduce object allocations in test\nDummyDecoder by folding separate InHandler/OutHandler into the\nGraphStageLogic itself using setHandlers(in, out, this).\n\nTests:\nNot run - pure refactoring of test helper, no behavior change\n\nReferences:\nRefs akka/akka-http#4158"
    },
    {
      "commit": "e3108db1db9cbca664d919df079d95d3db0771b9",
      "tree": "7457eba83ce0dffa552ba82624199e3b40e278d4",
      "parents": [
        "07bd95574aed641bc7d3c326f3072185060c6c94"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "43047562+scala-steward@users.noreply.github.com",
        "time": "Sat Jul 04 16:24:51 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 04 22:24:51 2026 +0800"
      },
      "message": "Update sbt-reproducible-builds to 0.33 (#1121)"
    },
    {
      "commit": "07bd95574aed641bc7d3c326f3072185060c6c94",
      "tree": "5950c54a57d283f7b0bb95a7e0df8254e9cb58d5",
      "parents": [
        "0216cedae561000ccdf83e7e58d6fc59c6df5c20"
      ],
      "author": {
        "name": "Matthias Kurz",
        "email": "m.kurz@irregular.at",
        "time": "Thu Jul 02 01:45:59 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 02 00:45:59 2026 +0100"
      },
      "message": "Add server-side WebSocket compression (#1114)\n\n* Add server WebSocket compression #61\n\n* Negotiate RFC 7692 permessage-deflate for server-side WebSockets.\n\n* Add compression settings, documentation, release notes, and MiMa filters.\n\n* Cover negotiation, compression, fragmentation, context takeover, max allocation, and low-level frame handling.\n\n* Allow disabling WebSocket compression per upgrade #61\n\n* Add WebSocketUpgrade overloads that accept a compressionEnabled flag.\n\n* Wire accepted WebSockets to decline negotiated compression per request.\n\n* Document and test per-upgrade compression disabling."
    },
    {
      "commit": "0216cedae561000ccdf83e7e58d6fc59c6df5c20",
      "tree": "a1fa1f1b2950fffe3fecfc079a0aad4289b26848",
      "parents": [
        "fe2e67ee96346c3cb24d8c0c7e2e253666649101"
      ],
      "author": {
        "name": "PJ Fanning",
        "email": "pjfanning@users.noreply.github.com",
        "time": "Wed Jul 01 12:35:02 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 01 12:35:02 2026 +0100"
      },
      "message": "more issues with unmoored docs (#1116)"
    },
    {
      "commit": "fe2e67ee96346c3cb24d8c0c7e2e253666649101",
      "tree": "8d58eec877ebc744ff33f38a6edd977b242cc3b0",
      "parents": [
        "e5f84e94db185a4ccf8a935e56ce85b8a9c3ea09"
      ],
      "author": {
        "name": "Matthias Kurz",
        "email": "m.kurz@irregular.at",
        "time": "Wed Jul 01 12:02:03 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 01 11:02:03 2026 +0100"
      },
      "message": "fix: avoid unmoored doc comments (#1115)\n\nThe publish workflow now treats Scala compiler warnings as errors.\nScala 3 reports local Scaladoc comments as discarded unmoored\ndoc comments, which breaks the cross-built publish task."
    },
    {
      "commit": "e5f84e94db185a4ccf8a935e56ce85b8a9c3ea09",
      "tree": "50c3fc979efe52a9ab9ca0302c69635130a4b73a",
      "parents": [
        "4ac4b7355d78d9815a3f91e775ae7a683cd9ede1"
      ],
      "author": {
        "name": "PJ Fanning",
        "email": "pjfanning@users.noreply.github.com",
        "time": "Wed Jul 01 11:01:36 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 01 11:01:36 2026 +0100"
      },
      "message": "make withLevel package private (#1104)\n\n* make withLevel package private\n\n* comment"
    },
    {
      "commit": "4ac4b7355d78d9815a3f91e775ae7a683cd9ede1",
      "tree": "56d634f2361a2ed257c3438a635becbb1fb1cbc9",
      "parents": [
        "ca3bb4ccfb02a02ca253538d2f3e3f0d3a287eae"
      ],
      "author": {
        "name": "He-Pin(kerr)",
        "email": "hepin1989@gmail.com",
        "time": "Wed Jul 01 11:46:44 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 01 11:46:44 2026 +0800"
      },
      "message": "feat: add RFC 10008 QUERY method and Accept-Query header support (#1077)\n\n* feat: add RFC 10008 QUERY method and Accept-Query header support\n\nMotivation:\nRFC 10008 defines the HTTP QUERY method as a safe, idempotent method that\nexpects a request body, along with the Accept-Query response header for\nsignaling supported query media types. pekko-http should provide first-class\nsupport for this standard HTTP method.\n\nModification:\n- Add QUERY method constant to HttpMethods (Scala and Java API)\n- Add Accept-Query modeled response header with MediaRange list\n- Add Accept-Query parser supporting RFC 9651 Structured Fields syntax\n  (quoted strings like \"application/jsonpath\") with q-value stripping\n- Add query routing directive (Scala DSL and Java DSL)\n- Add HttpRequest.QUERY factory method (Java API)\n- Add AcceptQuery Java API abstract class\n- Register accept-query in HeaderParser dispatch\n- Add documentation page for query directive with Scala/Java examples\n- Add directional tests: method lookup, header parsing (token, quoted\n  string, wildcard, q-value stripping), directive routing\n\nResult:\nDownstream consumers can implement RFC 10008 QUERY method support using\nbuilt-in constants, headers, parsing, and routing directives.\n\nTests:\n- sbt \"http-core / Test / testOnly org.apache.pekko.http.scaladsl.model.HttpMethodsSpec\" → 6 passed\n- sbt \"http-core / Test / testOnly org.apache.pekko.http.impl.model.parser.HttpHeaderSpec\" → 75 passed\n- sbt \"http-core / Test / testOnly org.apache.pekko.http.scaladsl.model.headers.HeaderSpec\" → 18 passed\n- sbt \"http-tests / Test / testOnly org.apache.pekko.http.scaladsl.server.directives.MethodDirectivesSpec\" → 14 passed\n- sbt \"docs / Test / testOnly docs.http.scaladsl.server.directives.MethodDirectivesExamplesSpec docs.http.javadsl.server.directives.MethodDirectivesExamplesTest\" → 11 passed\n- sbt \"http-core / mimaReportBinaryIssues\" → success\n- sbt \"http / mimaReportBinaryIssues\" → success\n\nReferences:\nRefs https://github.com/netty/netty/pull/16978, https://www.rfc-editor.org/rfc/rfc10008\n\n* test: add RFC 10008 QUERY method property tests and clean up imports\n\nMotivation:\nReview feedback identified missing directional tests for QUERY method\nsemantics (safe, idempotent, expected entity) and an unused import.\n\nModification:\n- Add property tests verifying QUERY is safe, idempotent, and expects\n  a request entity per RFC 10008 (goes beyond Netty\u0027s test coverage)\n- Remove unused HttpMethod import from MethodDirectivesSpec\n\nResult:\nStronger test coverage ensuring RFC 10008 semantics are preserved.\n\nTests:\n- sbt \"http-core / Test / testOnly org.apache.pekko.http.scaladsl.model.HttpMethodsSpec\" → 9 passed\n- sbt \"http-tests / Test / testOnly org.apache.pekko.http.scaladsl.server.directives.MethodDirectivesSpec\" → 14 passed\n\nReferences:\nRefs https://www.rfc-editor.org/rfc/rfc10008\n\n* Align Accept-Query with RFC 10008\n\nMotivation:\nAccept-Query is a Structured Field in RFC 10008, but the PR reused Accept media-range parsing and rendering in places that could emit invalid field values or treat parameters as Accept weights.\n\nModification:\nParse Accept-Query media ranges and parameters with Structured Field token/string rules. Render Accept-Query values with token-or-string selection, preserve valid SF parameters, reject invalid wildcard and decimal-parameter forms, and add focused parser/rendering tests. Add the query directive to the alphabetical docs index and fix Accept-Query RFC section links.\n\nResult:\nAccept-Query parsing and rendering now matches RFC 10008 Section 3 while keeping the parser path lightweight.\n\nTests:\n- scalafmt --mode diff-ref\u003dorigin/main\n- scalafmt --list --mode diff-ref\u003dorigin/main\n- git diff --check\n- sbt \u0027project http-core\u0027 \u0027Test / testOnly org.apache.pekko.http.impl.model.parser.HttpHeaderSpec\u0027\n- sbt \u0027project http-core\u0027 \u0027Test / testOnly org.apache.pekko.http.scaladsl.model.headers.HeaderSpec\u0027\n- sbt \u0027project http-core\u0027 \u0027Test / testOnly org.apache.pekko.http.scaladsl.model.HttpMethodsSpec\u0027\n- sbt \u0027http-tests / Test / testOnly org.apache.pekko.http.scaladsl.server.directives.MethodDirectivesSpec\u0027\n- sbt docs/paradox\n\nReferences:\nRefs #1077\n\n* fix: use standard ASF license header for AcceptQuery.java\n\nMotivation:\nAcceptQuery.java is a new file with original code, not derived from\nAkka. It should use the standard ASF license header, not the\n\"derived from Akka\" header.\n\nModification:\nReplace apacheFromAkkaSourceHeader with the standard apacheHeader as\ndefined in CopyrightHeader.scala.\n\nResult:\nAcceptQuery.java carries the correct license header for new\ncontributions.\n\nReferences:\nRefs apache/pekko-http#1077\n\n* refactor: replace private[this] with private in parser and headers\n\nMotivation:\n`private[this]` is being phased out in Scala 3 and provides no\nmeasurable benefit for vals in objects/traits.\n\nModification:\nReplace `private[this]` with `private` in AcceptHeader.scala (3 vals)\nand headers.scala (1 val).\n\nResult:\nCleaner code compatible with Scala 3 conventions. scalafmt applied.\n\nTests:\nNot run - visibility-only change\n\nReferences:\nRefs apache/pekko-http#1077"
    },
    {
      "commit": "ca3bb4ccfb02a02ca253538d2f3e3f0d3a287eae",
      "tree": "2ee9280bcbbf8630291f69bf7845fa47c632d402",
      "parents": [
        "6e28d75ad5e0f6ecfafdc90f6e65526f9580bc62"
      ],
      "author": {
        "name": "He-Pin(kerr)",
        "email": "hepin1989@gmail.com",
        "time": "Wed Jul 01 06:46:23 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 01 00:46:23 2026 +0200"
      },
      "message": "build: remove stale scalafix dependency from docs module (#1113)\n\nMotivation:\n`sbt clean` fails with `IllegalArgumentException: Cannot add dependency\n... to configuration \u0027scalafix\u0027 ... because this configuration doesn\u0027t\nexist!` because the `docs` module disables `ScalafixPlugin` but still\ndeclares `httpScalafixRules % ScalafixConfig` in `.dependsOn(...)`.\n\nModification:\nRemove the unused `httpScalafixRules % ScalafixConfig` dependency from\nthe `docs` module. The docs module does not use scalafix rules.\n\nResult:\n`sbt clean` no longer fails on the docs module due to a missing Ivy\nconfiguration.\n\nTests:\nNot run - build configuration only\n\nReferences:\nFixes #925"
    },
    {
      "commit": "6e28d75ad5e0f6ecfafdc90f6e65526f9580bc62",
      "tree": "75f99df930385fec13a3c42c55c9527c316ba86a",
      "parents": [
        "70d427f8dee72cadf1518ae0c4589bf87a2d1a52"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Jun 29 15:37:52 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 29 15:37:52 2026 +0800"
      },
      "message": "build(deps): Bump actions/cache from 5.0.5 to 6.1.0 (#1110)\n\nBumps [actions/cache](https://github.com/actions/cache) from 5.0.5 to 6.1.0.\n- [Release notes](https://github.com/actions/cache/releases)\n- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)\n- [Commits](https://github.com/actions/cache/compare/27d5ce7f107fe9357f9df03efb73ab90386fccae...55cc8345863c7cc4c66a329aec7e433d2d1c52a9)\n\n---\nupdated-dependencies:\n- dependency-name: actions/cache\n  dependency-version: 6.1.0\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "70d427f8dee72cadf1518ae0c4589bf87a2d1a52",
      "tree": "0e15f8c6f6764932d63189a850041fb2aea343cf",
      "parents": [
        "82a03b120bf436c1d48473b32aa126a264aa8120"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Jun 29 12:25:52 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 29 12:25:52 2026 +0800"
      },
      "message": "build(deps): Bump actions/setup-java from 5.3.0 to 5.4.0 (#1111)\n\nBumps [actions/setup-java](https://github.com/actions/setup-java) from 5.3.0 to 5.4.0.\n- [Release notes](https://github.com/actions/setup-java/releases)\n- [Commits](https://github.com/actions/setup-java/compare/ad2b38190b15e4d6bdf0c97fb4fca8412226d287...1bcf9fb12cf4aa7d266a90ae39939e61372fe520)\n\n---\nupdated-dependencies:\n- dependency-name: actions/setup-java\n  dependency-version: 5.4.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "82a03b120bf436c1d48473b32aa126a264aa8120",
      "tree": "6ce226b0370b0adacf78e5d5395c5fc41a25c2da",
      "parents": [
        "f0236b3099a575749a396d376b8e5f1419a9cbaa"
      ],
      "author": {
        "name": "He-Pin(kerr)",
        "email": "hepin1989@gmail.com",
        "time": "Mon Jun 29 08:32:42 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 29 08:32:42 2026 +0800"
      },
      "message": "build: enable -Xfatal-warnings for Scala 2 and -Werror for Scala 3 (#1109)\n\n* build: enable -Xfatal-warnings for Scala 2 and -Werror for Scala 3\n\nMotivation:\nTreating warnings as errors ensures that deprecated API usage and other\ncode quality issues are caught at compile time rather than accumulating.\n\nModification:\nAdd -Xfatal-warnings to Scala 2 scalacOptions and -Werror to Scala 3\nscalacOptions in Common.scala. Remove -Wconf:cat\u003ddeprecation:s for\nScala 3 so deprecation warnings are not silenced. Exclude\n-Xfatal-warnings from Compile / doc scope to avoid doc generation\nfailures.\n\nResult:\nAll compiler warnings are now treated as errors, enforcing higher code\nquality.\n\nTests:\n- CI will verify compilation\n\nReferences:\nNone - build configuration improvement\n\n* fix: suppress warnings exposed by -Xfatal-warnings/-Werror\n\nRemove unused classTag import in HttpMessage.scala.\nAdd -Wconf suppressions for structural type warning (Scala 2),\nsynchronized warning and override-deprecated warning (Scala 3).\n\n* fix: resolve all compilation warnings for fatal-warnings build\n\n- Remove unused imports (classTag, postfixOps, implicitConversions, Failure/Success/Try)\n- Add -language:implicitConversions as compiler option\n- Remove unused expectError method from ConnectionPoolSettingsSpec\n- Add -Wconf suppressions for: structural types, shadowed names,\n  parameterless method confusion, Unit-valued patterns, infer-Any,\n  overloaded implicit conversions, getClass selection, deprecation,\n  refutable extractors, type specialization, type erasure,\n  unreachable cases, exhaustivity, and suspicious top-level calls\n\n* style: apply scalafmt after removing imports\n\n* fix: fix docs module -Werror duplicate flag and add more -Wconf suppressions\n\nMove -Xfatal-warnings in docs module to Scala 2 only to avoid duplicate\n-Werror flag in Scala 3. Add suppressions for unused import and dead-code\nwarnings in test modules.\n\n* fix: exclude fatal-warnings from http-scalafix-rules module\n\nThe scala.meta compiler plugin used by scalafix generates warnings\n(InlineInfoAttribute) that cannot be suppressed via -Wconf. Exclude\n-Xfatal-warnings and -Werror from this module\u0027s scalacOptions."
    },
    {
      "commit": "f0236b3099a575749a396d376b8e5f1419a9cbaa",
      "tree": "ced2dc4dc433bf09abb17542b04184c2a5282c98",
      "parents": [
        "a5e648a078468f7bdab3ffb7845e7a079c035591"
      ],
      "author": {
        "name": "He-Pin(kerr)",
        "email": "hepin1989@gmail.com",
        "time": "Mon Jun 29 06:14:09 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 29 06:14:09 2026 +0800"
      },
      "message": "refactor: replace deprecated ActorMaterializer with Materializer (#1108)\n\nMotivation:\nActorMaterializer and ActorMaterializerSettings have been deprecated\nsince Akka 2.6.0 in favor of Materializer.apply(system).\n\nModification:\nReplace ActorMaterializer(ActorMaterializerSettings(system).withInputBuffer(128, 128))\nwith Materializer(system) in TestServer.scala.\n\nResult:\nRemoves usage of deprecated ActorMaterializer API.\n\nTests:\n- sbt \"http-core / Test / compile\" - success\n\nReferences:\nNone - deprecated API cleanup"
    },
    {
      "commit": "a5e648a078468f7bdab3ffb7845e7a079c035591",
      "tree": "0743f1b1c3065576c84c30b87847f06e8e3a2e76",
      "parents": [
        "3d07b5af39fc74d2887ea452f5858bdbe2ff0b47"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "43047562+scala-steward@users.noreply.github.com",
        "time": "Sun Jun 28 18:33:57 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 28 17:33:57 2026 +0100"
      },
      "message": "Update junit-platform-launcher to 6.1.1 (#1107)"
    },
    {
      "commit": "3d07b5af39fc74d2887ea452f5858bdbe2ff0b47",
      "tree": "7c5ae524d689cb4236a2adfcebc7d9eb9eb27d9c",
      "parents": [
        "5623d10485509befd7b5cbc817d918b51f7c8f4b"
      ],
      "author": {
        "name": "PJ Fanning",
        "email": "pjfanning@users.noreply.github.com",
        "time": "Sat Jun 27 16:09:12 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 27 16:09:12 2026 +0100"
      },
      "message": "remove deprecated javadsl route directive (#1105)\n\n* remove deprecated javadsl route directive\n\n* javafmt\n\n* issues"
    },
    {
      "commit": "5623d10485509befd7b5cbc817d918b51f7c8f4b",
      "tree": "f32fc55c699e9ec7a41d5aa7767fccc0fba47ec4",
      "parents": [
        "3a43471c2bc38dd6f14aa389ac2ce8ff73bc34e1"
      ],
      "author": {
        "name": "PJ Fanning",
        "email": "pjfanning@users.noreply.github.com",
        "time": "Sat Jun 27 03:05:14 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 27 03:05:14 2026 +0100"
      },
      "message": "Remove deprecated encode method on Coder (#1100)\n\n* try to remove deprecated encode methods\n\n* Update Coder.java\n\n* Update CodingDirectivesExamplesSpec.scala\n\n* Update CodingDirectivesExamplesSpec.scala\n\n* Update CodingDirectivesExamplesSpec.scala\n\n* try to fix compile\n\n* Update CodingDirectivesExamplesTest.java\n\n* mima"
    },
    {
      "commit": "3a43471c2bc38dd6f14aa389ac2ce8ff73bc34e1",
      "tree": "f32fc55c699e9ec7a41d5aa7767fccc0fba47ec4",
      "parents": [
        "afabf84786d17eb9706d67c3ab43907db865a366"
      ],
      "author": {
        "name": "PJ Fanning",
        "email": "pjfanning@users.noreply.github.com",
        "time": "Sat Jun 27 03:00:50 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 27 03:00:50 2026 +0100"
      },
      "message": "fix compiler warnings for implicit array to seq conversions (#1102)"
    },
    {
      "commit": "afabf84786d17eb9706d67c3ab43907db865a366",
      "tree": "d83b72e9b4f72063357144125d2a12281d3f7526",
      "parents": [
        "d172b9154812d38bd6317ad0146d0272a236f642"
      ],
      "author": {
        "name": "PJ Fanning",
        "email": "pjfanning@users.noreply.github.com",
        "time": "Sat Jun 27 02:59:59 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 27 02:59:59 2026 +0100"
      },
      "message": "Remove deprecated encode method on Coder (#1100)\n\n* try to remove deprecated encode methods\n\n* Update Coder.java\n\n* Update CodingDirectivesExamplesSpec.scala\n\n* Update CodingDirectivesExamplesSpec.scala\n\n* Update CodingDirectivesExamplesSpec.scala\n\n* try to fix compile\n\n* Update CodingDirectivesExamplesTest.java\n\n* mima"
    },
    {
      "commit": "d172b9154812d38bd6317ad0146d0272a236f642",
      "tree": "18a61ef1ccac4a2f3231e425a86e5c09a52cf1a0",
      "parents": [
        "81781b7b77509a9f519468d55e1c9e395cf78700"
      ],
      "author": {
        "name": "PJ Fanning",
        "email": "pjfanning@users.noreply.github.com",
        "time": "Fri Jun 26 20:09:35 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 26 20:09:35 2026 +0100"
      },
      "message": "add since markers on Deprecated annotations (#1098)"
    },
    {
      "commit": "81781b7b77509a9f519468d55e1c9e395cf78700",
      "tree": "bc8ebc2e0dadd3c8839a586efcca239da87c8917",
      "parents": [
        "666b867d6e97e834b308da610113e162f1002719"
      ],
      "author": {
        "name": "PJ Fanning",
        "email": "pjfanning@users.noreply.github.com",
        "time": "Fri Jun 26 19:07:27 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 26 19:07:27 2026 +0100"
      },
      "message": "unused import (#1099)"
    },
    {
      "commit": "666b867d6e97e834b308da610113e162f1002719",
      "tree": "8f82eab3063bec9f9786b22b86bad462d4caf638",
      "parents": [
        "853b4305e1647de7885a1af055fac24d44b48f07"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "43047562+scala-steward@users.noreply.github.com",
        "time": "Fri Jun 26 19:45:04 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 26 18:45:04 2026 +0100"
      },
      "message": "Update sbt-salad-days to 0.2.0 (#1097)"
    },
    {
      "commit": "853b4305e1647de7885a1af055fac24d44b48f07",
      "tree": "b8b10cd789d2eacab8c6cc118b88f8123b079de7",
      "parents": [
        "d6f88871454f25c5d5da7b6d4abe44583303eead"
      ],
      "author": {
        "name": "He-Pin(kerr)",
        "email": "hepin1989@gmail.com",
        "time": "Fri Jun 26 23:59:36 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 26 23:59:36 2026 +0800"
      },
      "message": "refactor: upgrade JUnit Jupiter to 6.1.0 (#1096)\n\nMotivation:\nJUnit 6 unifies version numbering across Platform, Jupiter, and Vintage.\n\nModification:\n- Add JupiterKeys overrides for JUnit Jupiter and Platform 6.1.0\n- Migrate remaining JUnit 4 test import to Jupiter Assertions\n- Keep deprecated JUnitRouteTest for binary compatibility\n\nResult:\nAll tests run on JUnit 6.1.0 while maintaining backward compatibility."
    },
    {
      "commit": "d6f88871454f25c5d5da7b6d4abe44583303eead",
      "tree": "a20f732e75a1020d8c2f02e5c3bfdfd1044ae599",
      "parents": [
        "87a89c35628a5985389b93e3a1d9d485e21f756d"
      ],
      "author": {
        "name": "He-Pin(kerr)",
        "email": "hepin1989@gmail.com",
        "time": "Fri Jun 26 21:06:07 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 26 21:06:07 2026 +0800"
      },
      "message": "refactor: replace .toArray().length with .size() (Java 11+) (#1095)\n\nMotivation:\nCreating an array just to check its length is unnecessary. List.size()\nis more idiomatic and avoids the allocation.\n\nModification:\nReplace bodyParts.toArray().length with bodyParts.size() in\nRangeDirectivesExamplesTest.\n\nResult:\nCleaner code, no unnecessary array allocation.\n\nTests: sbt \"docs / Test / compile\"\nReferences: https://javaalmanac.io/jdk/17/apidiff/8/"
    },
    {
      "commit": "87a89c35628a5985389b93e3a1d9d485e21f756d",
      "tree": "37061e7908d7cd1d7397cb2e6c460ac6e5e7dddb",
      "parents": [
        "61d29bb9b501e1c81f5de2103d7f7d6504280402"
      ],
      "author": {
        "name": "He-Pin(kerr)",
        "email": "hepin1989@gmail.com",
        "time": "Fri Jun 26 18:22:57 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 26 18:22:57 2026 +0800"
      },
      "message": "refactor: migrate Collections/Arrays.asList to Java 9+ collection factories (#1089)\n\n* refactor: migrate Collections/Arrays.asList to Java 9+ factory methods\n\nMotivation:\nJava 9+ provides List.of(), Map.of(), Set.of() factory methods that are\nmore concise and return truly immutable collections.\n\nModification:\nReplace Arrays.asList() with List.of(), Collections.singletonList()\nwith List.of(), Collections.emptyList/Map/Set() with List/Map/Set.of(),\nnew HashMap\u003c\u003e() + put() chains with Map.of(), and\nnew HashSet\u003c\u003e(Arrays.asList()) with Set.of() across 20 files.\nCorrectly skips shaded com.twitter.hpack code and array-parameter\nconversions in Util.java and MediaTypes.java.\n\nResult:\nCleaner code using Java 17 immutable collection factories.\n\nTests:\nNot run - compile-only test file changes\n\nReferences:\nNone - Java 17 API modernization\n\n* fix: revert Collections.emptySet/emptyMap/emptyList to original API\n\nMotivation:\nReview feedback: prefer Collections.emptyMap(), Collections.emptySet(),\nCollections.emptyList() over Map.of(), Set.of(), List.of() for empty\ncollections since they use well-known immutable singleton APIs.\n\nModification:\nRevert empty collection conversions while keeping non-empty\nArrays.asList -\u003e List.of and Collections.singletonList -\u003e List.of\nconversions.\n\nResult:\nEmpty collections use the established Collections.empty* API.\n\n* style: apply javafmt to fix Checks failure\n\nApply javafmt to 5 test files that were failing code style check."
    },
    {
      "commit": "61d29bb9b501e1c81f5de2103d7f7d6504280402",
      "tree": "d19c6f504013da022bd663f54f998e7b3d3905c5",
      "parents": [
        "dd1e91458bcfc1b05c0e4c685a3ef0b941da401d"
      ],
      "author": {
        "name": "He-Pin(kerr)",
        "email": "hepin1989@gmail.com",
        "time": "Fri Jun 26 17:15:37 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 26 17:15:37 2026 +0800"
      },
      "message": "refactor: replace .collect(Collectors.toList()) with .toList() (#1090)\n\nMotivation:\nJava 16+ Stream.toList() provides a concise way to collect stream\nelements into an unmodifiable list.\n\nModification:\nReplace .collect(Collectors.toList()) with .toList() in\nHttpClientDecodingExampleTest. Remove unused Collectors import.\n\nResult:\nCleaner stream collection code using Java 17 API.\n\nTests:\nNot run - compile-only test file changes\n\nReferences:\nNone - Java 17 API modernization"
    },
    {
      "commit": "dd1e91458bcfc1b05c0e4c685a3ef0b941da401d",
      "tree": "a0532b6b7fc991221084e1672a2872106e646f6b",
      "parents": [
        "1566cffec29e5815fc334db75f38830021c7afc6"
      ],
      "author": {
        "name": "He-Pin(kerr)",
        "email": "hepin1989@gmail.com",
        "time": "Fri Jun 26 17:15:11 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 26 17:15:11 2026 +0800"
      },
      "message": "refactor: migrate String.format to String.formatted (Java 15+) (#1091)\n\n* refactor: migrate String.format to String.formatted (Java 15+)\n\nMotivation:\nJava 15 introduced String.formatted() as an instance method counterpart\nto String.format(), providing cleaner and more readable string formatting.\n\nModification:\nReplace String.format(\"literal\", args) with \"literal\".formatted(args)\nacross 14 files including HTTP server examples, test files, and\nthe SimpleServerApp.\n\nResult:\nMore concise and idiomatic Java code leveraging Java 15+ API.\n\n* style: apply javafmt to fix Checks failure\n\nApply javafmt to 5 test files that were failing code style check."
    },
    {
      "commit": "1566cffec29e5815fc334db75f38830021c7afc6",
      "tree": "cb6b0bdf7e3481efd8cd29252a8937c9ad6d8a4a",
      "parents": [
        "c246651f3a30740994f0022fe84f79e059e92081"
      ],
      "author": {
        "name": "He-Pin(kerr)",
        "email": "hepin1989@gmail.com",
        "time": "Fri Jun 26 17:12:57 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 26 17:12:57 2026 +0800"
      },
      "message": "refactor: migrate switch statements to modern switch syntax (Java 14+) (#1092)\n\n* refactor: migrate switch statements to modern switch syntax (Java 14+)\n\nMotivation:\nJava 14 introduced enhanced switch statements and switch expressions\nwith arrow syntax, eliminating fall-through bugs and reducing boilerplate.\n\nModification:\nConvert switch statements to switch expressions and enhanced switch\nstatements in MarshallerTest, OversizedSseStrategy, and Jackson\nmarshaller classes.\n\nResult:\nCleaner, more concise switch code with no fall-through risk.\n\n* fix: apply javafmt formatting to switch expressions\n\nMotivation:\nCI javafmt check failed on the switch expression migration PR.\n\nModification:\nRun sbt javafmtAll to fix formatting in Jackson.java (jackson and\njackson3 modules) and MarshallerTest.java.\n\nResult:\njavafmt CI check passes."
    },
    {
      "commit": "c246651f3a30740994f0022fe84f79e059e92081",
      "tree": "6ce269b08a77a7291ecdc2eb458ccb74c3386c8c",
      "parents": [
        "121e66da610b418786bd66fd0f066ebb46edc238"
      ],
      "author": {
        "name": "He-Pin(kerr)",
        "email": "hepin1989@gmail.com",
        "time": "Fri Jun 26 16:23:04 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 26 16:23:04 2026 +0800"
      },
      "message": "refactor: use Optional.isEmpty() (Java 11+) (#1093)\n\nMotivation:\nJava 11 introduced Optional.isEmpty() as a more readable counterpart to\n!isPresent(), expressing the intent directly.\n\nModification:\nReplace !system.isPresent() with system.isEmpty() in HttpApp.\n\nResult:\nCleaner, more expressive Optional usage."
    },
    {
      "commit": "121e66da610b418786bd66fd0f066ebb46edc238",
      "tree": "af3d788c9b5548af3752f700d398e34720307bdc",
      "parents": [
        "6c654b2f27c424423a88e731c241abbfd2914489"
      ],
      "author": {
        "name": "He-Pin(kerr)",
        "email": "hepin1989@gmail.com",
        "time": "Fri Jun 26 16:22:22 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 26 16:22:22 2026 +0800"
      },
      "message": "refactor: apply misc Java 11-17 improvements (#1094)\n\nMotivation:\nModernize Java code to use Java 11-17 APIs for cleaner, more\nidiomatic code.\n\nModification:\n- Map.forEach replacing entrySet iteration loops\n- Text blocks replacing multi-line string concatenation\n- Records replacing simple data holder classes (test code only)\n- List.copyOf replacing Collections.unmodifiableList(new ArrayList\u003c\u003e())\n\nResult:\nCleaner, more modern Java code using Java 11-17 features."
    },
    {
      "commit": "6c654b2f27c424423a88e731c241abbfd2914489",
      "tree": "ea892f5e3c766ac4d566f60dbb0816ddca6f0166",
      "parents": [
        "6a96015701a27b2c456c4d18af208662840a5bd2"
      ],
      "author": {
        "name": "He-Pin(kerr)",
        "email": "hepin1989@gmail.com",
        "time": "Fri Jun 26 02:52:18 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 25 19:52:18 2026 +0100"
      },
      "message": "chore: add sbt-salad-days to reduce Scaladoc archive size (#1079)\n\nMotivation:\nScala 3 Scaladoc archives bundle large font files and inkuire.js\nsearch engine, bloating release artifacts and wasting CI storage.\n\nModification:\nAdd sbt-salad-days plugin (0.1.0) which automatically strips\nfonts and scripts from Scaladoc output during packaging.\n\nResult:\nSignificantly smaller Scaladoc archives (e.g. ~420KB for minimal\ndocs), reducing upload time and storage consumption."
    },
    {
      "commit": "6a96015701a27b2c456c4d18af208662840a5bd2",
      "tree": "caad9009c2ebf59d369a6f01cb713d3cf40de0c3",
      "parents": [
        "7def2274d7a0fb0f778ed80b791b8b4d51f834e6"
      ],
      "author": {
        "name": "He-Pin(kerr)",
        "email": "hepin1989@gmail.com",
        "time": "Wed Jun 24 15:56:23 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 24 15:56:23 2026 +0800"
      },
      "message": "test: add directional test for NUL byte in request target (#1088)\n\nMotivation:\nA request-smuggling class of vulnerability exists when HTTP parsers\nsilently strip boundary control bytes (NUL, CR, LF, VT, FF) from\nthe version token before matching. Pekko HTTP uses byte-level exact\nmatching in parseProtocol and is not affected, but no existing test\nexercises this code path with control characters.\n\nModification:\nAdd a directional test in RequestParserSpec that feeds a NUL byte\ninside the request target and asserts the parser rejects the request\nwith a BadRequest status and an \"Illegal request-target\" error.\n\nResult:\nThe test suite now explicitly covers control-character rejection in\nthe request line, guarding against regressions from future parsing\nrefactors that might introduce trim-like behavior.\n\nTests:\n- sbt \"http-core / Test / testOnly *RequestParserCRLFSpec *RequestParserLFSpec\"\n  106 tests passed, 0 failed\n\nReferences:\nRefs #1087, Refs https://github.com/netty/netty/issues/16970"
    },
    {
      "commit": "7def2274d7a0fb0f778ed80b791b8b4d51f834e6",
      "tree": "fb91cd98ea5e31b6dd35f45cff0fcaa5fadc9278",
      "parents": [
        "566ace91364bdb0c5abf110c92ba9c8246526837"
      ],
      "author": {
        "name": "PJ Fanning",
        "email": "pjfanning@users.noreply.github.com",
        "time": "Tue Jun 23 20:24:56 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 23 20:24:56 2026 +0100"
      },
      "message": "use Locale.ROOT for toLowerCase/toUpperCase (#1086)"
    },
    {
      "commit": "566ace91364bdb0c5abf110c92ba9c8246526837",
      "tree": "0d2bed59659c9e09c8acd3e5fcb342dfae8eb694",
      "parents": [
        "c03b3cc33c923f4b18327d8d4188576c2deab38c"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "43047562+scala-steward@users.noreply.github.com",
        "time": "Mon Jun 22 17:02:48 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 23:02:48 2026 +0800"
      },
      "message": "Update sbt, scripted-plugin to 1.12.13 (#1085)"
    },
    {
      "commit": "c03b3cc33c923f4b18327d8d4188576c2deab38c",
      "tree": "78b481b81be2e33991d3e2b5c03411ab32a39720",
      "parents": [
        "9a16001e8e8b3d8ac2e39b2eef285b1362ad4072"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Jun 22 11:38:46 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 11:38:46 2026 +0800"
      },
      "message": "Bump actions/setup-java from 5.2.0 to 5.3.0 (#1083)\n\nBumps [actions/setup-java](https://github.com/actions/setup-java) from 5.2.0 to 5.3.0.\n- [Release notes](https://github.com/actions/setup-java/releases)\n- [Commits](https://github.com/actions/setup-java/compare/be666c2fcd27ec809703dec50e508c2fdc7f6654...ad2b38190b15e4d6bdf0c97fb4fca8412226d287)\n\n---\nupdated-dependencies:\n- dependency-name: actions/setup-java\n  dependency-version: 5.3.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "9a16001e8e8b3d8ac2e39b2eef285b1362ad4072",
      "tree": "26e5ccf5c15abd65794b238bc862f19ab4e1cbbf",
      "parents": [
        "9fb2f9695c0ff8f2765ca207ad49885c0a694b6f"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Jun 22 11:38:25 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 11:38:25 2026 +0800"
      },
      "message": "Bump actions/checkout from 6.0.3 to 7.0.0 (#1082)\n\nBumps [actions/checkout](https://github.com/actions/checkout) from 6.0.3 to 7.0.0.\n- [Release notes](https://github.com/actions/checkout/releases)\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/actions/checkout/compare/df4cb1c069e1874edd31b4311f1884172cec0e10...9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0)\n\n---\nupdated-dependencies:\n- dependency-name: actions/checkout\n  dependency-version: 7.0.0\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "9fb2f9695c0ff8f2765ca207ad49885c0a694b6f",
      "tree": "f88403d2b8040f7ec392adc97d88e50f51c1cc37",
      "parents": [
        "9d9d37835aeef31aa47fc40113414ce8e4e0020f"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Jun 22 11:05:57 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 11:05:57 2026 +0800"
      },
      "message": "Bump sbt/setup-sbt from 1.2.1 to 1.4.0 (#1084)\n\nBumps [sbt/setup-sbt](https://github.com/sbt/setup-sbt) from 1.2.1 to 1.4.0.\n- [Release notes](https://github.com/sbt/setup-sbt/releases)\n- [Commits](https://github.com/sbt/setup-sbt/compare/af116cce31c00823d3903ce687f9cda3a4f19f1b...3afe9cf056c5d139bfc46579af1192d77a2f0821)\n\n---\nupdated-dependencies:\n- dependency-name: sbt/setup-sbt\n  dependency-version: 1.4.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "9d9d37835aeef31aa47fc40113414ce8e4e0020f",
      "tree": "7c88e23d4f55d49bcda680090ffda2b6100bb4d5",
      "parents": [
        "4784d0bf5654f7d871efd74302436e61b4ff25ad"
      ],
      "author": {
        "name": "PJ Fanning",
        "email": "pjfanning@users.noreply.github.com",
        "time": "Sat Jun 20 19:31:22 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 20 19:31:22 2026 +0100"
      },
      "message": "pin sbt in .scala-steward.conf (#1080)\n\n* pin sbt in .scala-steward.conf\n\n* Update .scala-steward.conf"
    },
    {
      "commit": "4784d0bf5654f7d871efd74302436e61b4ff25ad",
      "tree": "69a407e7d1fa2f1c85760b99a67b0c34b6e8d624",
      "parents": [
        "a42772b1a3d81e88670433eae0888873e26c2a18"
      ],
      "author": {
        "name": "He-Pin(kerr)",
        "email": "hepin1989@gmail.com",
        "time": "Fri Jun 19 17:22:14 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 19 17:22:14 2026 +0800"
      },
      "message": "fix: Scala 3.9 compatibility fixes (#1074)\n\n* build: fix sbt lint warnings by excluding unused keys\n\nMotivation:\nsbt lint reported 45 unused keys across sub-projects.\n\nModification:\nAdd projectInfoVersion, mimaReportSignatureProblems, autoAPIMappings,\nand unidocProjectFilter to excludeLintKeys in project/Common.scala\nglobalSettings.\n\nResult:\nsbt lint warnings resolved.\n\nTests:\n- sbt \"http-core / compile; http / compile; parsing / compile\" - sbt lint warnings resolved\n- sbt \"http-caching / compile; http-cors / compile; http-testkit / compile\" - sbt lint warnings resolved\n\nReferences:\nNone - build configuration cleanup\n\n* fix: Scala 3.9 compatibility fixes\n\nMotivation:\nScala 3.9.0-RC1 introduces several breaking changes:\n1. -language:_ wildcard option is no longer accepted\n2. -Yfuture-lazy-vals option removed (now default behavior)\n3. -Ywarn-dead-code is Scala 2 only\n4. Context bound desugaring changes, breaking explicit ClassTag/Tuple/\n   LogSource passing patterns\n\nModification:\n- build.sbt: make -language:_ conditional on Scala 3 \u003c 3.9\n- project/Common.scala: move -Ywarn-dead-code to Scala 2 only,\n  conditionally include -Yfuture-lazy-vals for Scala 3 \u003c 3.9\n- HttpMessage.scala, RejectionHandler.scala, PredefinedToResponseMarshallers.scala:\n  use implicit val ClassTag instead of context bound [T: ClassTag]\n- Directive.scala, BasicDirectives.scala, PathMatcher.scala:\n  use implicit val Tuple instead of context bound [L: Tuple]\n- PoolInterface.scala, StageLoggingWithOverride.scala:\n  use implicit val LogSource instead of explicit passing\n\nResult:\npekko-http parsing, http-core, http, and http-testkit modules compile\ncleanly with Scala 3.9.0-RC1.\n\nTests:\n- sbt \"++3.9.0-RC1!; parsing/compile; http-core/compile; http/compile;\n  http-testkit/compile\" passes\n\nReferences: None - Scala 3.9 forward compatibility\n\n* refactor: extract shared notOnScala39Plus helper for scalacOptions\n\nMotivation:\nThe same scalacOptions block for `-language:_` (excluded on Scala 3.9+)\nwas repeated inline in 3 places in build.sbt.\n\nModification:\nAdd `Common.notOnScala39Plus` helper and replace all 3 inline blocks.\n\nResult:\nSingle source of truth for the Scala 3.9+ language option exclusion.\n\nTests:\nNot run - build config only\n\nReferences:\nRefs apache/pekko-http#1074\n\n* fix: qualify notOnScala39Plus with Common. and apply scalafmt\n\nMotivation:\nThe previous commit used unqualified `notOnScala39Plus` which is not\nin scope in build.sbt, causing compilation failure.\n\nModification:\nPrefix all 3 call sites with `Common.` and run scalafmt.\n\nResult:\nbuild.sbt compiles successfully with the shared helper.\n\nTests:\nNot run - build config fix\n\nReferences:\nRefs apache/pekko-http#1074"
    },
    {
      "commit": "a42772b1a3d81e88670433eae0888873e26c2a18",
      "tree": "517ee8d45790dbe268c3a1e23b9e169a64555727",
      "parents": [
        "aec584c8e82c1a45d108015e9650a8d03d0ee40c"
      ],
      "author": {
        "name": "He-Pin(kerr)",
        "email": "hepin1989@gmail.com",
        "time": "Fri Jun 19 17:00:03 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 19 17:00:03 2026 +0800"
      },
      "message": "docs: add mandatory header workflow reminder to Licensing Rules (#1078)\n\nMotivation:\nAgents can miss the rule about not hand-writing license headers and\naccidentally paste the wrong header (e.g. the Akka-derived header for\nnew code).\n\nModification:\nAdd a prominent blockquote reminder at the top of the Licensing Rules\nsection that spells out the mandatory workflow: create file without\nheader -\u003e sbt headerCreateAll -\u003e done.\n\nResult:\nAgents see the workflow before reading the detailed rules, reducing\nthe chance of hand-writing an incorrect header.\n\nTests:\nNot run - docs only\n\nReferences:\nNone - process improvement"
    },
    {
      "commit": "aec584c8e82c1a45d108015e9650a8d03d0ee40c",
      "tree": "f4b104c4bd9ebe7489fa90656519708de5963c9a",
      "parents": [
        "fcb487ea6e3fbedaa7cb638ce00dfe6fdbda6470"
      ],
      "author": {
        "name": "He-Pin(kerr)",
        "email": "hepin1989@gmail.com",
        "time": "Fri Jun 19 16:42:41 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 19 16:42:41 2026 +0800"
      },
      "message": "fix: correct typos in pekko-http docs and tests (#1075)\n\n* fix: correct typos in pekko-http docs and tests\n\nMotivation:\nTypos found in documentation markdown files and test code.\n\nModification:\n- Appache→Apache in timeouts.md (2 occurrences)\n- bellow→below in host.md\n- programatically→programmatically in extractMethod.md\n- noone→no one in security directives docs\n- decodeing→decoding in CodingDirectivesSpec.scala\n- nexting→nesting in PathDirectivesTest.java\n\nResult:\nCleaner codebase with corrected spelling.\n\nTests:\nNot run - typo fixes only (docs and test strings)\n\nReferences:\nNone - typo cleanup\n\n* fix: revert noone change per CR feedback\n\nMotivation:\nCR review comment from pjfanning: \"noone is correct as is\".\n\nModification:\nRevert the noone → no one change in security-directives/index.md.\n\nResult:\nOriginal spelling preserved per maintainer feedback.\n\nTests:\nNot run - doc string revert only\n\nReferences:\nFixes https://github.com/apache/pekko-http/pull/1075#discussion_r3438926033"
    },
    {
      "commit": "fcb487ea6e3fbedaa7cb638ce00dfe6fdbda6470",
      "tree": "31e0eb063dcf1ef4b18cd6ab0ba3612da3ff36eb",
      "parents": [
        "eb6ee86074a7d897c7a844a87d024fd706c8e347"
      ],
      "author": {
        "name": "He-Pin(kerr)",
        "email": "hepin1989@gmail.com",
        "time": "Fri Jun 19 05:52:17 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 19 05:52:17 2026 +0800"
      },
      "message": "refactor: modernize Java test code with Java 17 features (#1076)\n\nMotivation:\nJava 17 introduced records and text blocks that make Java code more\nconcise and readable.\n\nModification:\n- Convert SomeData to a record in both Jackson and Jackson3 test modules\n- Convert Bid, GetBids, Bids to records in HttpServerActorInteractionExample\n- Use text blocks for multi-line config strings in Jackson tests\n- Update field accesses to use record accessor methods\n\nResult:\nTest Java code is more concise and idiomatic for Java 17+.\n\nTests:\nsbt \"http-marshallers-java/http-jackson / Test / compile\"\nsbt \"http-marshallers-java/http-jackson3 / Test / compile\"\nsbt \"docs / Test / compile\"\n\nReferences:\nNone - code modernization"
    },
    {
      "commit": "eb6ee86074a7d897c7a844a87d024fd706c8e347",
      "tree": "8ba875bcec716071c9da31516aabfc0b5362b277",
      "parents": [
        "ab6fac243e12ba6b4d92428510550a18b26a4bd3"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "43047562+scala-steward@users.noreply.github.com",
        "time": "Tue Jun 16 16:32:05 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 16 15:32:05 2026 +0100"
      },
      "message": "Update sbt-mima-plugin to 1.1.6 (#1072)"
    },
    {
      "commit": "ab6fac243e12ba6b4d92428510550a18b26a4bd3",
      "tree": "b222a81bb526dd609372cb146afff0ddef5acc4f",
      "parents": [
        "23ffde9e9ffd0e87373be5f3dc8e98a0a6583692"
      ],
      "author": {
        "name": "He-Pin(kerr)",
        "email": "hepin1989@gmail.com",
        "time": "Tue Jun 16 18:23:53 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 16 18:23:53 2026 +0800"
      },
      "message": "build: fix sbt lint warnings by excluding unused keys (#1071)\n\nMotivation:\nsbt lint reported 45 unused keys across sub-projects.\n\nModification:\nAdd projectInfoVersion, mimaReportSignatureProblems, autoAPIMappings,\nand unidocProjectFilter to excludeLintKeys in project/Common.scala\nglobalSettings.\n\nResult:\nsbt lint warnings resolved.\n\nTests:\n- sbt \"http-core / compile; http / compile; parsing / compile\" - sbt lint warnings resolved\n- sbt \"http-caching / compile; http-cors / compile; http-testkit / compile\" - sbt lint warnings resolved\n\nReferences:\nNone - build configuration cleanup"
    },
    {
      "commit": "23ffde9e9ffd0e87373be5f3dc8e98a0a6583692",
      "tree": "cadd5fcd4fab65e6b2a4e90ea244948f670232e2",
      "parents": [
        "d87ca24a86c75b804c9cb502cb7d0c8f3f6e3649"
      ],
      "author": {
        "name": "He-Pin(kerr)",
        "email": "hepin1989@gmail.com",
        "time": "Tue Jun 16 00:04:55 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 16 00:04:55 2026 +0800"
      },
      "message": "fix: replace private[this] with private and \u003d_ with explicit defaults (#1068)\n\nMotivation:\nScala 3 deprecates `private[this]` (subsumed by `private`) and `\u003d _`\ninitializer syntax. These produce warnings that become errors under\n-Werror.\n\nModification:\n- Replace `private[this]` with `private` across ~40 files\n- Replace `\u003d _` with explicit defaults (`\u003d null`, `\u003d 0L`, etc.) across\n  ~15 files\n- Fix refutable pattern in HttpHeaderParserSpec (val type annotation\n  to asInstanceOf)\n\nResult:\nAll modules compile cleanly on both Scala 2.13.18 and 3.3.8 with no\ndeprecation warnings for these patterns.\n\nTests:\n- sbt \"++ 2.13 Test/compile\" passes\n- sbt \"++ 3.3 Test/compile\" passes\n\nReferences:\nNone - Scala 3 forward compatibility"
    },
    {
      "commit": "d87ca24a86c75b804c9cb502cb7d0c8f3f6e3649",
      "tree": "01ac60634e1fa68570d73c29966f81589abdeeca",
      "parents": [
        "01e10e130b43b3177135d76935696249cd4a9ee5"
      ],
      "author": {
        "name": "He-Pin(kerr)",
        "email": "hepin1989@gmail.com",
        "time": "Mon Jun 15 00:41:28 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 15 00:41:28 2026 +0800"
      },
      "message": "docs: add AGENTS.md and CLAUDE.md for AI coding agents (#1066)\n\nMotivation:\nAI coding agents benefit from project-specific instructions to follow\nconventions, run correct validation, and produce consistent PRs.\n\nModification:\nAdd AGENTS.md with comprehensive rules (worktree, licensing, PR,\nformatting, validation, test, code, CI, commit format) and CLAUDE.md\nwith a pre-PR verification checklist.\n\nResult:\nAI agents working on this repository will follow established\nconventions and produce higher-quality contributions.\n\nTests:\nNot run - docs only\n\nReferences:\nNone - AI agent configuration"
    },
    {
      "commit": "01e10e130b43b3177135d76935696249cd4a9ee5",
      "tree": "51cd5e96e09187921f4ec850e40e455ef5c19097",
      "parents": [
        "4c16c56cd36aced8ed843de1313b21d0eae7172b"
      ],
      "author": {
        "name": "PJ Fanning",
        "email": "pjfanning@users.noreply.github.com",
        "time": "Sun Jun 14 17:19:22 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 14 17:19:22 2026 +0100"
      },
      "message": "Fix integer/long overflow in content-length parsing, timestamp ordering, and HTTP/2 flow control (#1049)\n\n* Fix int/long overflow bugs in ContentLength, Timestamp, and HTTP/2 flow control\n\n* Update license header in TimestampSpec.scala\n\n* Update SpecializedHeaderValueParsers.scala\n\n* Create num-overflow.excludes\n\n* move\n\n---------\n\nCo-authored-by: copilot-swe-agent[bot] \u003c198982749+Copilot@users.noreply.github.com\u003e"
    },
    {
      "commit": "4c16c56cd36aced8ed843de1313b21d0eae7172b",
      "tree": "40b67e95ca2243d09c3dd34a2195a62da56fecbd",
      "parents": [
        "243da2edd572f012d48b979a90f6ca81c95ab1a3"
      ],
      "author": {
        "name": "He-Pin(kerr)",
        "email": "hepin1989@gmail.com",
        "time": "Sun Jun 14 23:57:07 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 14 23:57:07 2026 +0800"
      },
      "message": "chore: unify formatter config - upgrade sbt-java-formatter, add JDK17, standardize aliases (#1062)\n\n* chore: unify formatter config across pekko sub-projects\n\nMotivation:\nAlign sbt-java-formatter plugin and build aliases with other pekko\nsub-projects to reduce maintenance burden.\n\nModification:\n- Upgrade sbt-java-formatter from com.lightbend.sbt 0.7.0 to\n  com.github.sbt 0.12.0 (matching other sub-projects)\n- Add ThisBuild / javafmtFormatterCompatibleJavaVersion :\u003d 17\n- Rename verifyCodeStyle alias to checkCodeStyle for consistency\n\nResult:\npekko-http now uses the same formatter plugin versions and command\naliases as pekko core and other sub-projects.\n\nTests:\nNot run - build config change only\n\nReferences:\nNone - formatter unification across pekko sub-projects\n\n* fix: apply javafmt 0.12.0 formatting and update CI to use checkCodeStyle\n\nMotivation:\nUpgrading sbt-java-formatter from 0.7.0 to 0.12.0 changed formatting\noutput for 135+ Java files. CI was only running javafmtCheckAll.\n\nModification:\n- Run javafmtAll to reformat Java files with 0.12.0\n- CI: replace javafmtCheckAll with checkCodeStyle\n- build.sbt: standardize checkCodeStyle alias order\n\nResult:\nAll Java files formatted with 0.12.0; CI runs full code style check.\n\n* fix: move Paradox snippet markers below import blocks for google-java-format compatibility\n\nMotivation:\nCI Checks job failed with \"Imports not contiguous\" errors from\ngoogle-java-format. The Paradox documentation snippet markers\n(// #tag-name) placed between import statements caused the\nformatter to reject the files.\n\nModification:\nMove all snippet markers from within import blocks to just below\nthe last import statement in 45 Java files. Imports are now\ncontiguous while preserving all documentation markers.\nRun javafmtAll to reformat the files.\n\nResult:\ngoogle-java-format accepts all Java files; Paradox documentation\nsnippet markers are preserved.\n\n* fix: revert Paradox marker moves and exclude docs from javafmt\n\nRevert the Paradox snippet marker relocation that broke documentation\nbuild (labels not found errors). Instead, exclude Java files in docs/\nand examples/ directories from javafmt via excludeFilter, since\ngoogle-java-format requires contiguous imports.\n\n* fix: use javafmtSortImports :\u003d false to preserve Paradox markers\n\nMotivation:\nReplacing excludeFilter with javafmtSortImports :\u003d false allows\njavafmt to format all files while preserving import order and\nParadox snippet marker positions.\n\nModification:\n- Replace javafmt/excludeFilter with javafmtSortImports :\u003d false\n- Run javafmtAll which formats code without reordering imports\n\nResult:\nAll Java files are formatted by javafmt while Paradox snippet markers\ncorrectly wrap their intended imports for documentation rendering.\n\n* fix: align Java formatting with google-java-format 1.28.0\n\nMotivation:\ngoogle-java-format 1.28.0 (used by sbt-java-formatter 0.12.0 with\njavafmtFormatterCompatibleJavaVersion :\u003d 17) requires specific string\ncontinuation indentation and no blank lines between import groups.\nCI Check / Code Style was failing on 3 files.\n\nModification:\n- Jackson.java: remove extra blank line between import groups\n- PathDirectivesExamplesTest.java: remove extra blank line between import groups\n- JavaTestServer.java: fix string continuation indentation (15→8 spaces)\n\nResult:\nAll 3 files now pass google-java-format 1.28.0 check.\n\nTests:\n- google-java-format 1.28.0 --skip-sorting-imports --dry-run → exit 0\n\nReferences:\nRefs #1062"
    },
    {
      "commit": "243da2edd572f012d48b979a90f6ca81c95ab1a3",
      "tree": "91f528aeb81f5e26c1c68a8c471e6e9c80d7e778",
      "parents": [
        "83a0124ccf114afb81bcd03e04815b1fdf559db9"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "43047562+scala-steward@users.noreply.github.com",
        "time": "Sun Jun 14 16:36:56 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 14 15:36:56 2026 +0100"
      },
      "message": "Update sbt-scalafix, scalafix-core to 0.14.7 (#1063)"
    },
    {
      "commit": "83a0124ccf114afb81bcd03e04815b1fdf559db9",
      "tree": "fd0f861aa3c5fb109c1af82e9720702e6c47ce26",
      "parents": [
        "bd1055183975b09b96c3269e4658ccfb9fc35849"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "43047562+scala-steward@users.noreply.github.com",
        "time": "Sun Jun 14 16:36:33 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 14 15:36:33 2026 +0100"
      },
      "message": "Update sbt, scripted-plugin to 1.12.12 (#1065)"
    },
    {
      "commit": "bd1055183975b09b96c3269e4658ccfb9fc35849",
      "tree": "7cb6270afcc6f47f1f32150686ada0855227cf32",
      "parents": [
        "302970cd6f7ba02059e6d4a054cf8bdd3c3c8247"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "43047562+scala-steward@users.noreply.github.com",
        "time": "Sun Jun 14 16:36:11 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 14 15:36:11 2026 +0100"
      },
      "message": "Update sbt-api-mappings to 3.0.3 (#1064)"
    },
    {
      "commit": "302970cd6f7ba02059e6d4a054cf8bdd3c3c8247",
      "tree": "5833be9f1b48a9daf6eb4fbdc7dec558f8d3e464",
      "parents": [
        "44e2755900fe94bf7a477adf3b5d049d6765f746"
      ],
      "author": {
        "name": "He-Pin(kerr)",
        "email": "hepin1989@gmail.com",
        "time": "Sun Jun 14 20:43:52 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 14 20:43:52 2026 +0800"
      },
      "message": "chore: Rewrite to scala3 syntax (#1061)\n\nMotivation:\nLet Scala 3 Community build compile pekko-http.\n\nModification:\nUpdate .scalafmt.conf dialect to scala213source3 and enable\nscala3 syntax rewrite rules, then reformat all sources.\n\nResult:\nWildcard types use ? syntax (e.g. Class[?] instead of Class[_]).\n\nTests:\nNot run - formatting only\n\nReferences:\nRefs apache/pekko#3048"
    },
    {
      "commit": "44e2755900fe94bf7a477adf3b5d049d6765f746",
      "tree": "2289d14e49098030fd250fbf2e320e303deb6208",
      "parents": [
        "8439ed2d693c87f1a33b832477382fff7512b000"
      ],
      "author": {
        "name": "He-Pin(kerr)",
        "email": "hepin1989@gmail.com",
        "time": "Sat Jun 13 21:46:02 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 13 21:46:02 2026 +0800"
      },
      "message": "Add -Yfuture-lazy-vals for Scala 3 builds (#1060)\n\n* Add -Yfuture-lazy-vals for Scala 3 builds\n\nMotivation:\nThe Scala 3.3.8 compiler introduced the -Yfuture-lazy-vals flag\n(scala/scala3-lts#637) to optionally use VarHandle instead of\nsun.misc.Unsafe for lazy val implementation. This prepares libraries\nfor upcoming JDK releases that restrict Unsafe access.\n\nModification:\nAdd -Yfuture-lazy-vals to Common.scala scalacOptions using the\nexisting onlyOnScala3 helper.\n\nResult:\npekko-http\u0027s Scala 3 build uses the future-proof VarHandle-based lazy\nval implementation, compatible with all JDK 9+ versions.\n\nTests:\n- sbt \"++3.3.8; http/compile\" passed (exit 0, 66s)\n\nReferences:\nRefs scala/scala3-lts#637\n\n* Add MiMa filters for Scala 3 \u003cclinit\u003e removals\n\nMotivation:\nThe -Yfuture-lazy-vals flag added in 6d25f5ee8 changes the Scala 3\nbytecode generated for object lazy vals. As a side effect, the synthetic\n\u003cclinit\u003e static initializers on Directives, PathMatchers, and\nPathDirectives are no longer emitted, causing MiMa to flag three\nDirectMissingMethodProblem errors against the 1.0.0 baseline.\n\nThese are compiler-internal initialization methods, not part of the\npublic API, so the change is binary compatible in practice.\n\nModification:\nAdd a new mima-filters exclude file under\n2.0.x.backwards.excludes/ to suppress the three \u003cclinit\u003e missing-method\nwarnings on the Scala 3 build.\n\nResult:\nsbt \"++3.3.8; http/mimaReportBinaryIssues\" and validatePullRequest\nMiMa checks pass again.\n\nReferences:\nRefs apache/pekko-http#1060\n\n* fix: merge onlyOnScala3 scalacOptions into a single Seq\n\nMotivation:\nCode review requested combining the two onlyOnScala3 calls into one.\n\nModification:\nMerge \"-Wconf:cat\u003ddeprecation:s\" and \"-Yfuture-lazy-vals\" into a single\nonlyOnScala3(Seq(...)) call.\n\nResult:\nCleaner build definition with both Scala 3 options in one place.\n\nTests:\nNot run - build config only\n\nReferences:\nRefs apache/pekko-http#1060"
    },
    {
      "commit": "8439ed2d693c87f1a33b832477382fff7512b000",
      "tree": "4128bea55f6100f7846d82ece0df9c84372e25bd",
      "parents": [
        "c8ebc1c03caffca2fe39f029331c3aef446b2a76"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "43047562+scala-steward@users.noreply.github.com",
        "time": "Fri Jun 12 22:36:44 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 12 21:36:44 2026 +0100"
      },
      "message": "Update scala3-library to 3.3.8 (#1059)"
    },
    {
      "commit": "c8ebc1c03caffca2fe39f029331c3aef446b2a76",
      "tree": "ae0c8f00d33e796f9690e1223a088fe7bf26089a",
      "parents": [
        "2e70cddd301dbd1dd279d6e7a84c8a09d5ea7ec1"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "43047562+scala-steward@users.noreply.github.com",
        "time": "Wed Jun 10 17:03:59 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 10 16:03:59 2026 +0100"
      },
      "message": "Update jackson-databind to 3.2.0 (#1058)"
    },
    {
      "commit": "2e70cddd301dbd1dd279d6e7a84c8a09d5ea7ec1",
      "tree": "caef51a2b84fd9d0a5c875e851238bbe3171a44e",
      "parents": [
        "c703d51a188b194d668a1403d760415e2503d585"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "43047562+scala-steward@users.noreply.github.com",
        "time": "Wed Jun 10 16:22:24 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 10 15:22:24 2026 +0100"
      },
      "message": "Update munit to 1.3.3 (#1057)"
    },
    {
      "commit": "c703d51a188b194d668a1403d760415e2503d585",
      "tree": "0159fa2d0def54e0ef1efe5b4572292f790f0e3f",
      "parents": [
        "81cf4ba7a7e26dcb3c0a11c73afd53929fe67c3b"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Jun 08 11:38:28 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 11:38:28 2026 +0800"
      },
      "message": "Bump actions/checkout from 6.0.2 to 6.0.3 (#1055)\n\nBumps [actions/checkout](https://github.com/actions/checkout) from 6.0.2 to 6.0.3.\n- [Release notes](https://github.com/actions/checkout/releases)\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/actions/checkout/compare/de0fac2e4500dabe0009e67214ff5f5447ce83dd...df4cb1c069e1874edd31b4311f1884172cec0e10)\n\n---\nupdated-dependencies:\n- dependency-name: actions/checkout\n  dependency-version: 6.0.3\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "81cf4ba7a7e26dcb3c0a11c73afd53929fe67c3b",
      "tree": "44862c7d9131f61e99167b263a033467dac5941b",
      "parents": [
        "76c234fd9d9e871ccd5ced3d70f02c56d404c3ff"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "43047562+scala-steward@users.noreply.github.com",
        "time": "Sat Jun 06 16:53:25 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 06 22:53:25 2026 +0800"
      },
      "message": "Update jackson-databind to 2.22.0 (#1053)"
    },
    {
      "commit": "76c234fd9d9e871ccd5ced3d70f02c56d404c3ff",
      "tree": "f408c6ea2a05b71d2c37ebdbc1ff2427acc5706f",
      "parents": [
        "b72b65187a6a25a563a37fdca75db44444f722e8"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "43047562+scala-steward@users.noreply.github.com",
        "time": "Thu Jun 04 19:44:50 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 04 18:44:50 2026 +0100"
      },
      "message": "Update munit to 1.3.2 (#1054)"
    }
  ],
  "next": "b72b65187a6a25a563a37fdca75db44444f722e8"
}
