)]}'
{
  "log": [
    {
      "commit": "28ee6f4b479f77cc461560cae1b1263647edd2a7",
      "tree": "d12fd88cfb5663da1f672ae38ff95443ab62a10c",
      "parents": [
        "436de333a2164b5e3768bd37c9417e27baf7b2ed"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Mon Jul 13 00:03:07 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Mon Jul 13 00:03:07 2026 +1000"
      },
      "message": "updated with recent changes\n"
    },
    {
      "commit": "436de333a2164b5e3768bd37c9417e27baf7b2ed",
      "tree": "302a61614d916731f3dd88f52d699f101df345ce",
      "parents": [
        "7a45bdc090afe018f1aaf6c4e35aac293499184a"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sun Jul 12 23:44:12 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sun Jul 12 23:44:12 2026 +1000"
      },
      "message": "updated with recent changes\n"
    },
    {
      "commit": "7a45bdc090afe018f1aaf6c4e35aac293499184a",
      "tree": "679cb3f65fe89c2e949f4f9db98a503a2b1fc389",
      "parents": [
        "aa654a480b7d70aaae30801f9bc762c16c5bd3cf"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sun Jul 12 14:38:19 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sun Jul 12 14:38:19 2026 +1000"
      },
      "message": "latest release notes updates\n"
    },
    {
      "commit": "aa654a480b7d70aaae30801f9bc762c16c5bd3cf",
      "tree": "2b4bf3a6937767b4c7843fa49704ca39be800243",
      "parents": [
        "974f01cbe56955a33337803efd99da28e61b8148"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sun Jul 12 13:56:36 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sun Jul 12 13:56:36 2026 +1000"
      },
      "message": "Three blog posts updated to a more recent Pekko version and recommending Groovy 6 concurrency features ahead of GPars once you migrate to Groovy 6.\n"
    },
    {
      "commit": "974f01cbe56955a33337803efd99da28e61b8148",
      "tree": "c17acd0fb31a0ad0de04c14ef1fdcbafc93971d0",
      "parents": [
        "83b0540d411d8121a16a476984dd2b629e788730"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sun Jul 12 08:09:45 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sun Jul 12 08:09:45 2026 +1000"
      },
      "message": "GEP-27: update to reflect latest GROOVY-12151 slice\n"
    },
    {
      "commit": "83b0540d411d8121a16a476984dd2b629e788730",
      "tree": "3d05a1081e869d3b7c373824f5060309a060577c",
      "parents": [
        "8c7419af0e86988dc0c57407147520fb78ee8493"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sat Jul 11 14:54:11 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sat Jul 11 14:54:11 2026 +1000"
      },
      "message": "GEP-27: update the closure reference-implementation to the current state\n\nAll three safety layers are now implemented (add the decline-diagnostics layer);\nthe capability analysis and typed static dispatch are implemented and validated\n(compile-time packing across the core module and others), so the remaining Groovy\n7 work is restated as S3 elision, writer unification, nested-closure owner\nretargeting, and hardening the automatic path from experimental to default-on.\n"
    },
    {
      "commit": "8c7419af0e86988dc0c57407147520fb78ee8493",
      "tree": "76a647b2625385c5fe85b7842e00479984670e53",
      "parents": [
        "21d070b62e3b91cc8ac9af62b15de0867c450940"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sat Jul 11 14:52:38 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sat Jul 11 14:52:38 2026 +1000"
      },
      "message": "GEP-27: finish the merged-status pass for the lambda reference-implementation text\n\nMark the reference-implementation lambda bullet and Piece 2 as merged (were\n\u0027candidate\u0027/\u0027on the first-step branch\u0027), and note the pre-hoist bytecode-shape\ntests are skipped under the opt-in flag with migration deferred to a default\nflip -- rather than described as remaining first-step work.\n"
    },
    {
      "commit": "21d070b62e3b91cc8ac9af62b15de0867c450940",
      "tree": "775962227bdf542797658c8c5593c07e9c1babe7",
      "parents": [
        "490e3469b4e639c255747fb41b618c9ed4e00026"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sat Jul 11 14:51:33 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sat Jul 11 14:51:33 2026 +1000"
      },
      "message": "GEP-27: mark the SAM lambda slice as merged; fix the lambda flag name\n\nThe lambda hoisting (GROOVY-12143) and warning printing (GROOVY-12132) landed in\nmaster. Update the doc to match: the Groovy 6.0 deliverables and both Pieces are\nmarked merged (was \u0027pending\u0027/\u0027primary\u0027/\u0027implemented\u0027), the intro says merged\n(was \u0027on the first-step branch\u0027), and the flags table now names the actual flag\n\u0027groovy.target.lambda.hoist\u0027 (opt-in, off by default) rather than the never-used\n\u0027groovy.target.lambda.hoist.disabled\u0027 opt-out form.\n"
    },
    {
      "commit": "490e3469b4e639c255747fb41b618c9ed4e00026",
      "tree": "1d63c20c7cba0f32a8066f59fff819b40ea58523",
      "parents": [
        "b7a60275e8240f670a987cfdd46aedc4803d4ecd"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Fri Jul 10 23:12:48 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Fri Jul 10 23:12:48 2026 +1000"
      },
      "message": "GEP-27: note the DISABLED opt-out in the per-closure-control deferred-feature row\n\nUsers influence packing only via target type, arrow syntax and @PackedClosures --\nincluding opting a scope out with mode \u003d DISABLED -- but never select which packed\nrepresentation (S1/S2/S3) is used.\n"
    },
    {
      "commit": "b7a60275e8240f670a987cfdd46aedc4803d4ecd",
      "tree": "af48b8d121845921a27867ccafc96e35f1412c4a",
      "parents": [
        "69e0ff79bb7a0068792b2983056c6ff579c80518"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Fri Jul 10 23:07:15 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Fri Jul 10 23:07:15 2026 +1000"
      },
      "message": "GEP-27: document PackMode.DISABLED opt-out\n\nAdd the fourth mode value: DISABLED packs nothing in its scope (the fine-grained\nopt-out), most-specific declaration wins so a DISABLED method beats a packed\nclass, and DISABLED overrides the groovy.target.closure.pack flag.\n"
    },
    {
      "commit": "69e0ff79bb7a0068792b2983056c6ff579c80518",
      "tree": "7e69285080eab25913984c2dfae758f5945462c7",
      "parents": [
        "1ca316812363c3fb630b636387c3c30b0e66273e"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Fri Jul 10 22:42:16 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Fri Jul 10 22:42:16 2026 +1000"
      },
      "message": "GEP-27: reconcile with implementation — @PackedClosures name and mode diagnostics\n\nAlign the doc with what shipped:\n- rename @Packed -\u003e @PackedClosures throughout (14 occurrences); the annotation is\n  named for what it packs (closures), and since a dynamic arrow-lambda is itself a\n  closure with no separate dynamic-lambda packing, the closures-specific name is\n  exact -- note added;\n- replace the boolean @Packed(strict \u003d true) design with the delivered\n  @PackedClosures(mode \u003d LENIENT | WARN | STRICT) enum (silent / compiler warning\n  per decline with reason / compile error), and state that the automatic\n  groovy.target.closure.pack path is always lenient;\n- drop \u0027designed but not yet wired\u0027 -- the mode diagnostics are implemented and\n  listed among the delivered safety mechanisms.\n"
    },
    {
      "commit": "1ca316812363c3fb630b636387c3c30b0e66273e",
      "tree": "937a055b8a569cc0f47d447035ee9dcdb618f8bb",
      "parents": [
        "9a811130973f6b53a57a4d3da892749a404cfbc0"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Fri Jul 10 12:52:38 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Fri Jul 10 12:52:38 2026 +1000"
      },
      "message": "GEP-27: update with prototype findings; remove outdated framing\n\nFold in the validated spike results and reconcile stale sections:\n- Reference implementation: PackedClosure runtime guard and compile-time escape\n  decline are implemented+validated (every delegate-redirect funnels through the\n  two setters); add measured impact (FormTagLib 8-\u003e1 classes, ~90% of closure\n  bytes are scaffolding; RemarkCriteria domain 24 classes/80KB); document the\n  Grails artefact-DSL safety and the unsound naive nested-validator hoist (needs\n  owner-correct retargeting \u003d Groovy 7).\n- Piece 2 (read-only-capturing SAM lambdas) is implemented, not a stretch; phase\n  table and abstract updated accordingly.\n- Guarding section: resolveStrategy guard covers all non-owner modes (incl.\n  TO_SELF); escape gate described as implemented syntactic form.\n- Bump last-modified date.\n"
    },
    {
      "commit": "9a811130973f6b53a57a4d3da892749a404cfbc0",
      "tree": "5dadb6eb3db5d1b64a0f70a4d6610268b722c95d",
      "parents": [
        "0a28012ede43f977dcf5909ec55bce8f22bf437a"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Fri Jul 10 09:25:36 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Fri Jul 10 09:25:36 2026 +1000"
      },
      "message": "draft \"Compact Closure and Lambda Compilation\" GEP\n"
    },
    {
      "commit": "0a28012ede43f977dcf5909ec55bce8f22bf437a",
      "tree": "1e6152913698a80fc9fee60ed9263f95f57412ff",
      "parents": [
        "307d3d5471d6d8ec6bc02a44b505a70fd2e2439b"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Thu Jul 09 22:38:02 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Thu Jul 09 22:38:02 2026 +1000"
      },
      "message": "draft \"Compact Closure and Lambda Compilation\" GEP\n"
    },
    {
      "commit": "307d3d5471d6d8ec6bc02a44b505a70fd2e2439b",
      "tree": "a79a5966fe681627bc88e21af67c0f0a20068a76",
      "parents": [
        "1f7319114e0bb753daab20c89bf7344fb0c913f7"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Wed Jul 08 14:36:35 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Wed Jul 08 14:36:44 2026 +1000"
      },
      "message": "Added ThrowsIf and specs to groovy-verify blog\n"
    },
    {
      "commit": "1f7319114e0bb753daab20c89bf7344fb0c913f7",
      "tree": "6190c4984c95dc927dd72f20ae34a10edd120a55",
      "parents": [
        "aa1af9b81551e06d2360e9c7f41968fb1fcb077c"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sat Jul 04 21:03:46 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Tue Jul 07 09:04:04 2026 +1000"
      },
      "message": "proposed changes based on reference implementation learnings\n"
    },
    {
      "commit": "aa1af9b81551e06d2360e9c7f41968fb1fcb077c",
      "tree": "900ad505ec01784f7dffeca7710ebb09d8732f4a",
      "parents": [
        "596cf673bbdc2c9a5b97d4130bd36271a3b09bd2"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sat Jul 04 16:21:06 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sat Jul 04 16:21:06 2026 +1000"
      },
      "message": "add 2nd image\n"
    },
    {
      "commit": "596cf673bbdc2c9a5b97d4130bd36271a3b09bd2",
      "tree": "99cac29d6f2e28b0e66027bc448e815c3db5803a",
      "parents": [
        "95ad84792efe0c5479170a329754f45a4045afbc"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sat Jul 04 15:14:36 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sat Jul 04 15:14:36 2026 +1000"
      },
      "message": "add image\n"
    },
    {
      "commit": "95ad84792efe0c5479170a329754f45a4045afbc",
      "tree": "2fe329b40d579c468d399cc8d813e0f3b8d46d54",
      "parents": [
        "9f24d029d62f5b8bc97b2fcdb01a8cea74ff2dff"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sat Jul 04 12:40:23 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sat Jul 04 12:40:30 2026 +1000"
      },
      "message": "publish\n"
    },
    {
      "commit": "9f24d029d62f5b8bc97b2fcdb01a8cea74ff2dff",
      "tree": "05e6e352cdc0f2b2e5d4d0c30180745e37aa8664",
      "parents": [
        "67f1df462bf54445a53e3a8b7a6ed11eab83eca2"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sat Jul 04 10:55:13 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sat Jul 04 10:56:38 2026 +1000"
      },
      "message": "Release 6.0.0-alpha-2: update sitemap"
    },
    {
      "commit": "67f1df462bf54445a53e3a8b7a6ed11eab83eca2",
      "tree": "65a061fb129f8b9b969b4d884acd7eb7eb2493c7",
      "parents": [
        "8a3cdbb3382c148a71bb3155878316b83af65e93"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sat Jul 04 09:04:15 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sat Jul 04 09:16:05 2026 +1000"
      },
      "message": "Release 5.0.7: update sitemap"
    },
    {
      "commit": "8a3cdbb3382c148a71bb3155878316b83af65e93",
      "tree": "5765632a7f141df491037d8ab8ec2d9e5828dd90",
      "parents": [
        "45750780774cf3b27b9462c9f7603c0e192ccc1d"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Fri Jul 03 21:18:34 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Fri Jul 03 21:18:34 2026 +1000"
      },
      "message": "update blog\n"
    },
    {
      "commit": "45750780774cf3b27b9462c9f7603c0e192ccc1d",
      "tree": "bfdd9ad1c1e16833405bcc11554041950403a44d",
      "parents": [
        "bb0f3a1fd357c51454eb67979ae5d6f121ebc857"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Fri Jul 03 09:04:10 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Fri Jul 03 09:04:10 2026 +1000"
      },
      "message": "minor tweaks to use jfreechart\n"
    },
    {
      "commit": "bb0f3a1fd357c51454eb67979ae5d6f121ebc857",
      "tree": "2eb1324cbc30747024b1097905a8e2b635fa9f61",
      "parents": [
        "2be9e46432513cf287684b859e4ca019353c3b97"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Thu Jul 02 18:53:00 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Thu Jul 02 18:53:00 2026 +1000"
      },
      "message": "formal methods expanded\n"
    },
    {
      "commit": "2be9e46432513cf287684b859e4ca019353c3b97",
      "tree": "1107f6e59a8cfc1591d57452f58ab99575fd02c3",
      "parents": [
        "ef2c356cfee9ad62a8f59f7bbe6286b7d3a60b97"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Wed Jul 01 21:24:48 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Wed Jul 01 21:24:48 2026 +1000"
      },
      "message": "add @redacted as pair to @tainted in GEP-25\n"
    },
    {
      "commit": "ef2c356cfee9ad62a8f59f7bbe6286b7d3a60b97",
      "tree": "1ff0dd61869daf44921c4ee76942dfef90c64229",
      "parents": [
        "914e8b1c315b1367a849331c51382c6fdfcb6281"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Wed Jul 01 19:31:27 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Wed Jul 01 19:31:27 2026 +1000"
      },
      "message": "mmu blog post\n"
    },
    {
      "commit": "914e8b1c315b1367a849331c51382c6fdfcb6281",
      "tree": "d73a27b5d355daba6f5bbe6dde4436dd2a35df41",
      "parents": [
        "957c2a9f49ae3346a194e038aa00c377af1458c4"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Wed Jul 01 16:03:11 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Wed Jul 01 16:03:11 2026 +1000"
      },
      "message": "minor refinements of Groovy 6 release notes and some deadlink tweaks\n"
    },
    {
      "commit": "957c2a9f49ae3346a194e038aa00c377af1458c4",
      "tree": "c80ea5f784aa2a59961fdae1159222fdabf0c028",
      "parents": [
        "de9b7023753900fa784ed22b0e050207073f0929"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Wed Jul 01 15:38:24 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Wed Jul 01 15:38:24 2026 +1000"
      },
      "message": "minor refinements of Groovy 6 release notes\n"
    },
    {
      "commit": "de9b7023753900fa784ed22b0e050207073f0929",
      "tree": "29569b46e5d5edf6336d09921944945ae3c2e81d",
      "parents": [
        "3c37fdc3f9d6f52053cd6346be00eb469903dd92"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Wed Jul 01 14:29:18 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Wed Jul 01 14:29:18 2026 +1000"
      },
      "message": "better handling of deadlink checking\n"
    },
    {
      "commit": "3c37fdc3f9d6f52053cd6346be00eb469903dd92",
      "tree": "48458967f64d00931193b128f19ec3e995f1c296",
      "parents": [
        "29b1c4ba09d0433358e659fdeec97848d8c15482"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Wed Jul 01 11:41:43 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Wed Jul 01 11:41:43 2026 +1000"
      },
      "message": "add \"(open)\" to Jiar GEPs that aren\u0027t Done\n"
    },
    {
      "commit": "29b1c4ba09d0433358e659fdeec97848d8c15482",
      "tree": "6eebf42246fadc6dce9c512dc351fe3dc559a7c9",
      "parents": [
        "ddf210038a30145967ef9c186a5c7e758d256ef8"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Wed Jul 01 08:55:09 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Wed Jul 01 08:55:09 2026 +1000"
      },
      "message": "align with recent changes\n"
    },
    {
      "commit": "ddf210038a30145967ef9c186a5c7e758d256ef8",
      "tree": "dc62559c0769eeb40142c4bf75805a20cef28d53",
      "parents": [
        "5f0731c4aee5aac40792b91f646eca0adf5f25a5"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Tue Jun 30 16:59:40 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Tue Jun 30 16:59:40 2026 +1000"
      },
      "message": "align with recent changes\n"
    },
    {
      "commit": "5f0731c4aee5aac40792b91f646eca0adf5f25a5",
      "tree": "51f39b391604cebc010a5b31c579778ddd512fbe",
      "parents": [
        "71744ef0e7755333305f8a7f94f6353191038a15"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sun Jun 28 21:09:02 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sun Jun 28 21:09:02 2026 +1000"
      },
      "message": "one more status change\n"
    },
    {
      "commit": "71744ef0e7755333305f8a7f94f6353191038a15",
      "tree": "324fa3ae1cb9cc7248849f13003117a2a2ff56fd",
      "parents": [
        "80e8866558540b6ccf45a660037f19b8499c38fa"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sun Jun 28 19:49:02 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sun Jun 28 19:49:02 2026 +1000"
      },
      "message": "fix out-of-update status fields\n"
    },
    {
      "commit": "80e8866558540b6ccf45a660037f19b8499c38fa",
      "tree": "a600b91c412c83e7d3e8080138c03237d445d736",
      "parents": [
        "65ce73a4010130e6d1d37711fc9ea18348ae061d"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sun Jun 28 16:44:36 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sun Jun 28 16:44:36 2026 +1000"
      },
      "message": "draft GEP-26: SQL backend for GINQ\n"
    },
    {
      "commit": "65ce73a4010130e6d1d37711fc9ea18348ae061d",
      "tree": "26a4d4e6bdd383bbe9d66acc443ff6523c774d25",
      "parents": [
        "c5ffc808377ab94356bfd9b634ec24682350e49c"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sun Jun 28 13:23:10 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sun Jun 28 13:23:10 2026 +1000"
      },
      "message": "GROOVY-12112 changes\n"
    },
    {
      "commit": "c5ffc808377ab94356bfd9b634ec24682350e49c",
      "tree": "3919f20a8d8d9249b22d62a0a333fef04056e441",
      "parents": [
        "4a938a2264c01801a8a8c809f882b064f8a29329"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sun Jun 28 09:43:35 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sun Jun 28 10:41:21 2026 +1000"
      },
      "message": "GROOVY-12106 changes\n"
    },
    {
      "commit": "4a938a2264c01801a8a8c809f882b064f8a29329",
      "tree": "6494d6bcf553e9eed079fbb1e63fe7f395ac915d",
      "parents": [
        "f5bb7e8ac2ec3cf0cec8c538e2580517d6a46ddb"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sun Jun 28 07:59:46 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sun Jun 28 07:59:46 2026 +1000"
      },
      "message": "latest alignment (fix GROOVY-12111 gap)\n"
    },
    {
      "commit": "f5bb7e8ac2ec3cf0cec8c538e2580517d6a46ddb",
      "tree": "84c2f2414561fb4727ce35bc01b5291a95cf488f",
      "parents": [
        "bc15ea21ef403754ef65287a1992f3663c29dbb7",
        "e50aa44d58cf164a2fa8d7d9d17d652c54a05599"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sun Jun 28 07:54:53 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sun Jun 28 07:54:53 2026 +1000"
      },
      "message": "latest alignment\n"
    },
    {
      "commit": "e50aa44d58cf164a2fa8d7d9d17d652c54a05599",
      "tree": "bebdd1cd125b5580fa7084a984a784a5f012f781",
      "parents": [
        "05e5332f75a1337d1dcd76cb9cfd6706d5b34753"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sun Jun 28 07:46:38 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sun Jun 28 07:46:38 2026 +1000"
      },
      "message": "latest alignment\n"
    },
    {
      "commit": "bc15ea21ef403754ef65287a1992f3663c29dbb7",
      "tree": "95c9114097d2a65c0e6c6c3aba900da9af11a9b1",
      "parents": [
        "022be283ff6e5e2fa1df8a11dfb156374dd5c0f1"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Thu Jun 25 14:32:29 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sat Jun 27 14:50:35 2026 +1000"
      },
      "message": "Trait spec cleanup for GROOVY-12103/GROOVY-12104\n"
    },
    {
      "commit": "05e5332f75a1337d1dcd76cb9cfd6706d5b34753",
      "tree": "09b4241456dad26e5f37ed9928322efafea9498f",
      "parents": [
        "6350bc8174349965a789b95513711066246dfab3"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sat Jun 27 13:21:32 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sat Jun 27 13:21:32 2026 +1000"
      },
      "message": "latest alignment\n"
    },
    {
      "commit": "6350bc8174349965a789b95513711066246dfab3",
      "tree": "02248f237c2aae0e3060970bf1cc9f9cd556a0d7",
      "parents": [
        "5776ba4ed08ab17e86abbd80a08fbc3ffa4d1a29"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Thu Jun 25 14:32:29 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Fri Jun 26 17:46:09 2026 +1000"
      },
      "message": "Trait spec cleanup for GROOVY-12103/GROOVY-12104\n"
    },
    {
      "commit": "022be283ff6e5e2fa1df8a11dfb156374dd5c0f1",
      "tree": "9fb0a0c40cb660cbbeef419d5a063c23661869ce",
      "parents": [
        "697458fbd6c7f641f34d4fe7e7c1db9779b079ad"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Thu Jun 25 21:34:59 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Thu Jun 25 21:34:59 2026 +1000"
      },
      "message": "draft verification blog post\n"
    },
    {
      "commit": "697458fbd6c7f641f34d4fe7e7c1db9779b079ad",
      "tree": "0a632edf0b4b0ad196612b64fa863eef4b0242e4",
      "parents": [
        "f1d8e3c6d89a0b2e6870e7151030dc77f17237f0"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Thu Jun 25 18:06:29 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Thu Jun 25 18:06:29 2026 +1000"
      },
      "message": "draft verification blog post\n"
    },
    {
      "commit": "f1d8e3c6d89a0b2e6870e7151030dc77f17237f0",
      "tree": "cc0eff7fa74916a5c056d8b387942b6925f7b18d",
      "parents": [
        "5776ba4ed08ab17e86abbd80a08fbc3ffa4d1a29"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Thu Jun 25 18:02:59 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Thu Jun 25 18:02:59 2026 +1000"
      },
      "message": "draft verification blog post\n"
    },
    {
      "commit": "5776ba4ed08ab17e86abbd80a08fbc3ffa4d1a29",
      "tree": "9a214deafe039a8a487ac90f0eaec99783ff581c",
      "parents": [
        "daf220b9134b26292cf5847ed4b1bac1c0c73767"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Mon Jun 22 19:20:46 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Thu Jun 25 14:27:46 2026 +1000"
      },
      "message": "GEP-22: update for GROOVY-12093\n"
    },
    {
      "commit": "daf220b9134b26292cf5847ed4b1bac1c0c73767",
      "tree": "505fe56cfa322232327ffa9f8a1a8dff1524f2bf",
      "parents": [
        "877b928067c9105b41d61d621ff417ae3aab286a"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Mon Jun 22 18:02:35 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Mon Jun 22 18:02:35 2026 +1000"
      },
      "message": "rationalize behavior as at 4.0.32\n"
    },
    {
      "commit": "877b928067c9105b41d61d621ff417ae3aab286a",
      "tree": "290c2dea7514f42d64bec0f54a201fa6bc26f438",
      "parents": [
        "076424a8d8501157ee026e518cc385ffd78e3dc9"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Fri Jun 19 10:00:28 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Fri Jun 19 10:00:28 2026 +1000"
      },
      "message": "fix broken image\n"
    },
    {
      "commit": "076424a8d8501157ee026e518cc385ffd78e3dc9",
      "tree": "6b8aa700f9dc823aab4e8f9ef8b083d7c6fbab15",
      "parents": [
        "cc66597c0f606a405866aa8dccb66bf7ff7c9539"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Wed Jun 17 12:47:04 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Wed Jun 17 12:47:04 2026 +1000"
      },
      "message": "draft type checker for tainted data processing.\n"
    },
    {
      "commit": "cc66597c0f606a405866aa8dccb66bf7ff7c9539",
      "tree": "9a34dc3acef56b4bdc3743b9affa7541ca1ef7b6",
      "parents": [
        "f5b3fa908253c982d33c69ac5644bb7b17488d1b"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Wed Jun 17 08:26:28 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Wed Jun 17 08:26:28 2026 +1000"
      },
      "message": "mention new flag\n"
    },
    {
      "commit": "f5b3fa908253c982d33c69ac5644bb7b17488d1b",
      "tree": "f699423b4ea0ed99068d739e95e41aee74571d42",
      "parents": [
        "28ddfa2d866ac6b4ff513664fc100a5d9345fe51"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Mon Jun 15 00:19:11 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Mon Jun 15 00:19:11 2026 +1000"
      },
      "message": "GROOVY-12021: mention @Monadic unit member and value-equality expectation in 6.0 release notes\n"
    },
    {
      "commit": "28ddfa2d866ac6b4ff513664fc100a5d9345fe51",
      "tree": "3715db8f5c7e996c252e8f3cc244c015e3669350",
      "parents": [
        "05f9bc4673d1e4a0ca96a4eb8d19c650bc0b0418"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sun Jun 14 22:19:41 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sun Jun 14 22:19:41 2026 +1000"
      },
      "message": "add recent changes\n"
    },
    {
      "commit": "05f9bc4673d1e4a0ca96a4eb8d19c650bc0b0418",
      "tree": "0c33f1220b4bc92d96c08394b4d00ac42af89f2b",
      "parents": [
        "d7c823622c321b1cf15425ddb9389569c41b43c4"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sun Jun 14 16:14:02 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sun Jun 14 16:14:02 2026 +1000"
      },
      "message": "formatting\n"
    },
    {
      "commit": "d7c823622c321b1cf15425ddb9389569c41b43c4",
      "tree": "77c01e409acb3b064c00f6a8195595cfd9170a55",
      "parents": [
        "cab2486aa67f016c6e74eae7ee781cb0c77ee1cf"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sun Jun 14 16:02:30 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sun Jun 14 16:02:30 2026 +1000"
      },
      "message": "formatting\n"
    },
    {
      "commit": "cab2486aa67f016c6e74eae7ee781cb0c77ee1cf",
      "tree": "27ca6dd07898dd9169ed74ef476f248aef7b8d07",
      "parents": [
        "232af33fb6b1d9210e22d159a709a479ead08a70"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sun Jun 14 15:31:05 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sun Jun 14 15:31:05 2026 +1000"
      },
      "message": "FizzBuzz post (implicit @Reducer support)\n"
    },
    {
      "commit": "232af33fb6b1d9210e22d159a709a479ead08a70",
      "tree": "eb8d208d8974db0fe95ea45d4aa80ee76d5fbdfa",
      "parents": [
        "c51ae41b688e14de7e7a93847d9895332d19bbe4"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sun Jun 14 12:40:19 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sun Jun 14 12:40:19 2026 +1000"
      },
      "message": "FizzBuzz post (some diabolical examples for fun)\n"
    },
    {
      "commit": "c51ae41b688e14de7e7a93847d9895332d19bbe4",
      "tree": "90542a659613e49f4a35f81f18f7bf159256fa58",
      "parents": [
        "848319e551a2bdf08f1c41adaeacacf6ceb78606"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sun Jun 14 10:29:16 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sun Jun 14 11:19:57 2026 +1000"
      },
      "message": "FizzBuzz post (minor tweaks)\n"
    },
    {
      "commit": "848319e551a2bdf08f1c41adaeacacf6ceb78606",
      "tree": "48ea8c7376a44293f7818f4d4c79a259b0de20e3",
      "parents": [
        "988b8c1215c3ff5e73afc186d92df0f9a04f92ac"
      ],
      "author": {
        "name": "Laura Kassovic",
        "email": "lkassovic@gradle.com",
        "time": "Mon Jun 01 08:52:53 2026 -0700"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Tue Jun 02 06:59:40 2026 +1000"
      },
      "message": "update gradle logo for ecosystem page\n"
    },
    {
      "commit": "988b8c1215c3ff5e73afc186d92df0f9a04f92ac",
      "tree": "9961bca1e8d9573a59745bae45028b4bf5b95b16",
      "parents": [
        "701ac9069c1e7c5dfd893b9d1a2fa31d4f5132bf"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Mon Jun 01 18:42:14 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Mon Jun 01 18:42:14 2026 +1000"
      },
      "message": "formatting\n"
    },
    {
      "commit": "701ac9069c1e7c5dfd893b9d1a2fa31d4f5132bf",
      "tree": "5e1360dd62a97d416c09e3b52036b2240d7b6b7c",
      "parents": [
        "607548c004b735aa47dfe6fdfd8719a9172e6ff6"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Mon Jun 01 14:58:22 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Mon Jun 01 14:58:22 2026 +1000"
      },
      "message": "remove draft status\n"
    },
    {
      "commit": "607548c004b735aa47dfe6fdfd8719a9172e6ff6",
      "tree": "9d39898cb688dfb3a4c5984db2afacebc74510ab",
      "parents": [
        "7dbf119be371280c56992b9f662f0ed7eaffbb10"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Mon Jun 01 12:13:07 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Mon Jun 01 12:13:07 2026 +1000"
      },
      "message": "split last table\n"
    },
    {
      "commit": "7dbf119be371280c56992b9f662f0ed7eaffbb10",
      "tree": "2bab24c5f12aea83d2bccee420304c77592534af",
      "parents": [
        "d9d8cf8d22471c014d44ac1a751470ef07016cda"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Mon Jun 01 10:47:16 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Mon Jun 01 10:47:16 2026 +1000"
      },
      "message": "provide vavr-test and functionaljava-quickcheck pbt siblings to jqwik\n"
    },
    {
      "commit": "d9d8cf8d22471c014d44ac1a751470ef07016cda",
      "tree": "5a216cfb9c4e99359a2f43f012847a3714d62ce9",
      "parents": [
        "55dbb5814350d51fcf27e3fe48eca9e258e440f5"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Mon Jun 01 09:15:50 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Mon Jun 01 09:15:50 2026 +1000"
      },
      "message": "groovy6-functional: adjustments from copilot review comments\n"
    },
    {
      "commit": "55dbb5814350d51fcf27e3fe48eca9e258e440f5",
      "tree": "120d512f0c260bdc1b3c0ba7e0284698ed4c4ac9",
      "parents": [
        "2a7de039e091166cd58bf41856cafd2627f60c83"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sun May 31 18:01:18 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sun May 31 18:01:18 2026 +1000"
      },
      "message": "openjml inspired example (also loop invariants)\n"
    },
    {
      "commit": "2a7de039e091166cd58bf41856cafd2627f60c83",
      "tree": "fbdbd81fecff83b4bd6ee339ab30e18894deab2a",
      "parents": [
        "e8e9fbec952b86d846e6b0965066f3f3735546cf"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sun May 31 16:18:45 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sun May 31 16:18:45 2026 +1000"
      },
      "message": "openjml inspired example (also loop invariants)\n"
    },
    {
      "commit": "e8e9fbec952b86d846e6b0965066f3f3735546cf",
      "tree": "43328db3697083b6c58c1ea4c40a6ac8dd48f525",
      "parents": [
        "2af77c0fefb56779e3e7e62fb3cbceda17c4600c"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sat May 30 22:09:56 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sat May 30 22:09:56 2026 +1000"
      },
      "message": "openjml inspired example (also postconditions)\n"
    },
    {
      "commit": "2af77c0fefb56779e3e7e62fb3cbceda17c4600c",
      "tree": "8f4c81b23b2a493eca980ebb3ce7442f0121707b",
      "parents": [
        "b29ce2d59fe818bd8fd350beaaf535005ec6a69b"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sat May 30 14:45:24 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sat May 30 14:45:24 2026 +1000"
      },
      "message": "openjml inspired example\n"
    },
    {
      "commit": "b29ce2d59fe818bd8fd350beaaf535005ec6a69b",
      "tree": "7c813ce4b6ec8687644e1b0f23970e3bd15b1071",
      "parents": [
        "7ee7d42bbb5957ac9e1729ed1792d28afc022370"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sat May 30 14:12:16 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sat May 30 14:12:16 2026 +1000"
      },
      "message": "openjml inspired example\n"
    },
    {
      "commit": "7ee7d42bbb5957ac9e1729ed1792d28afc022370",
      "tree": "e054a8ad718fe93b953b5927bf1386a0d89cf0f3",
      "parents": [
        "8ec1ad39172fec553bf9d10380e368e90431c189"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sat May 30 11:21:27 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sat May 30 11:21:27 2026 +1000"
      },
      "message": "rendering tweak\n"
    },
    {
      "commit": "8ec1ad39172fec553bf9d10380e368e90431c189",
      "tree": "e6489052c5ffc1d0bb4f878b0940297300930a7e",
      "parents": [
        "1c6990b90ef7efecf4833b1c26a0284a671fba02"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sat May 30 09:44:27 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sat May 30 09:44:27 2026 +1000"
      },
      "message": "fix broken images\n"
    },
    {
      "commit": "1c6990b90ef7efecf4833b1c26a0284a671fba02",
      "tree": "cb3a2e8573ff51c4c5f831570754aa6d18ab3a00",
      "parents": [
        "08b9f3d1e3e9cd2de55725f09e1af7e15d98f2ea"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sat May 30 09:04:07 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Sat May 30 09:04:07 2026 +1000"
      },
      "message": "fix broken images\n"
    },
    {
      "commit": "08b9f3d1e3e9cd2de55725f09e1af7e15d98f2ea",
      "tree": "5e139335571105dd7dafccd0e680bad3b09ecd1f",
      "parents": [
        "77798300ca4c591eff382e1b490e337ba7f9c0b9"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Tue May 26 20:08:36 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Tue May 26 20:08:36 2026 +1000"
      },
      "message": "add wire-car inspired example\n"
    },
    {
      "commit": "77798300ca4c591eff382e1b490e337ba7f9c0b9",
      "tree": "7074ae6616d5a84cf60cf93b3cab0e7e553ad80f",
      "parents": [
        "32649455dac7737ce3591f29eb3d031a6683dc15"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Tue May 26 19:23:46 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Tue May 26 19:23:46 2026 +1000"
      },
      "message": "add wire-car inspired example\n"
    },
    {
      "commit": "32649455dac7737ce3591f29eb3d031a6683dc15",
      "tree": "45ef0cb03823b7263d8bf9cef9e171d3cb10d486",
      "parents": [
        "7406b743c0a064e3ba958d511cf1f1ae30268ecb"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Tue May 26 19:22:14 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Tue May 26 19:22:14 2026 +1000"
      },
      "message": "add wire-car inspired example\n"
    },
    {
      "commit": "7406b743c0a064e3ba958d511cf1f1ae30268ecb",
      "tree": "999a77ae5435f1ac5846d23d868594cd42062fe4",
      "parents": [
        "698a3d63ad607af00eef459dec957e62e28a8d47"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Tue May 26 09:54:01 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Tue May 26 09:54:01 2026 +1000"
      },
      "message": "add wire-car inspired example\n"
    },
    {
      "commit": "698a3d63ad607af00eef459dec957e62e28a8d47",
      "tree": "1476aa476db1519ce2d49e529393b812ef88ace8",
      "parents": [
        "fb24836f06c0752730525e342e5ce6cc1296bd25"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Fri May 22 14:49:50 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Fri May 22 14:49:50 2026 +1000"
      },
      "message": "minor tweaks\n"
    },
    {
      "commit": "fb24836f06c0752730525e342e5ce6cc1296bd25",
      "tree": "7d04b6da244bfbd946f57a831419c9b74ed74417",
      "parents": [
        "2131c44a6de5a3c9a2250c610cada32179e7dab3"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Fri May 22 09:18:38 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Fri May 22 09:18:38 2026 +1000"
      },
      "message": "minor tweaks\n"
    },
    {
      "commit": "2131c44a6de5a3c9a2250c610cada32179e7dab3",
      "tree": "686faa1d29f90c29962ece2935ae958bee568e4b",
      "parents": [
        "b1893c2d7ccb10e7b6b2cc9a9e87ebc724d131ab"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Fri May 22 08:42:40 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Fri May 22 08:42:40 2026 +1000"
      },
      "message": "minor tweaks\n"
    },
    {
      "commit": "b1893c2d7ccb10e7b6b2cc9a9e87ebc724d131ab",
      "tree": "08bc524f1cf29eadf0ef66efb52d54582c5225e0",
      "parents": [
        "4ca3c23705d10265265cb899428a4a5002a062ac"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Thu May 21 21:28:30 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Thu May 21 21:28:30 2026 +1000"
      },
      "message": "minor tweaks\n"
    },
    {
      "commit": "4ca3c23705d10265265cb899428a4a5002a062ac",
      "tree": "66348784c75cc7436d3c8d4eb7f3e4d282d7789d",
      "parents": [
        "2e38c099bd628e1ba7bbef687e7d2ef47054413c"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Thu May 21 21:23:52 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Thu May 21 21:23:52 2026 +1000"
      },
      "message": "minor tweaks\n"
    },
    {
      "commit": "2e38c099bd628e1ba7bbef687e7d2ef47054413c",
      "tree": "1b40b7d93a9b19a86da3e047af0e9d2e0fa7251a",
      "parents": [
        "01e8f267e250b42c987df458930cfa309ae6f2c4"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Thu May 21 16:53:34 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Thu May 21 16:53:34 2026 +1000"
      },
      "message": "minor tweaks\n"
    },
    {
      "commit": "01e8f267e250b42c987df458930cfa309ae6f2c4",
      "tree": "cded857a0aba29da1c48546bb1f3540dbb7e1857",
      "parents": [
        "5199ba6b912c5a147eb1d326c70b6a95d062dfcc"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Thu May 21 16:48:28 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Thu May 21 16:48:28 2026 +1000"
      },
      "message": "minor tweaks\n"
    },
    {
      "commit": "5199ba6b912c5a147eb1d326c70b6a95d062dfcc",
      "tree": "eb250ab88c0972873c80df00a01f3f04a8430fb7",
      "parents": [
        "6a9b88f40303fbc1ae4cbf5b34bfbac8341d3a9e"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Thu May 21 14:53:29 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Thu May 21 14:53:29 2026 +1000"
      },
      "message": "minor tweaks\n"
    },
    {
      "commit": "6a9b88f40303fbc1ae4cbf5b34bfbac8341d3a9e",
      "tree": "3075ce390577ac04a6ec95dd124dee010f74281f",
      "parents": [
        "77d71ee5e618f1537ef2de95202b84dc294a0059"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Thu May 21 10:22:33 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Thu May 21 10:22:33 2026 +1000"
      },
      "message": "use proper name\n"
    },
    {
      "commit": "77d71ee5e618f1537ef2de95202b84dc294a0059",
      "tree": "66410f9b56f02c9f9fa841b68f60a7c619c8e91a",
      "parents": [
        "232a89a4bfe75d980d9513475aa670ce6d236cc6"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Thu May 21 01:42:03 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Thu May 21 01:42:03 2026 +1000"
      },
      "message": "minor tweaks\n"
    },
    {
      "commit": "232a89a4bfe75d980d9513475aa670ce6d236cc6",
      "tree": "d7d07b84050738bfda0204764e4d655d26e5424c",
      "parents": [
        "c29021a2bff883f0680583ddb6f36fd7a7394d07"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Wed May 20 22:08:07 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Wed May 20 22:08:07 2026 +1000"
      },
      "message": "minor tweaks\n"
    },
    {
      "commit": "c29021a2bff883f0680583ddb6f36fd7a7394d07",
      "tree": "112c0ae4b42c59787c09e66df99f423ee004ef24",
      "parents": [
        "0f983559b9772c94a6785c241eab727338a1fb07"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Wed May 20 20:49:20 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Wed May 20 20:49:20 2026 +1000"
      },
      "message": "minor tweaks\n"
    },
    {
      "commit": "0f983559b9772c94a6785c241eab727338a1fb07",
      "tree": "f97288ed1664ad16bcf4bd7df18bbc9c56c9e151",
      "parents": [
        "a5e1814b1860edbecc26789ff84e6f34aeb21400"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Wed May 20 20:25:14 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Wed May 20 20:25:14 2026 +1000"
      },
      "message": "fix misclaims\n"
    },
    {
      "commit": "a5e1814b1860edbecc26789ff84e6f34aeb21400",
      "tree": "114dbe37dcf8b94044f7112bf4f3e5fd696c7906",
      "parents": [
        "b512c45fe86972a35d8c8df8af23de36c2da5fb7"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Wed May 20 19:49:49 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Wed May 20 19:49:49 2026 +1000"
      },
      "message": "fix misclaims\n"
    },
    {
      "commit": "b512c45fe86972a35d8c8df8af23de36c2da5fb7",
      "tree": "14bd2b70fa48f5a4a2a0a0c170aa7bc12465e2b9",
      "parents": [
        "e5ed3fb205d8f6acded3de245585ae19b4b42dae"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Wed May 20 16:43:25 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Wed May 20 16:43:25 2026 +1000"
      },
      "message": "draft blog post: groovy 6 and functional programming\n"
    },
    {
      "commit": "e5ed3fb205d8f6acded3de245585ae19b4b42dae",
      "tree": "b4e007740d594add8e7d9bcc974fa8c9e9643fb8",
      "parents": [
        "52719303c5c6d3f0f3ae325b5048a921c1c9d565"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Wed May 20 14:12:00 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Wed May 20 14:12:00 2026 +1000"
      },
      "message": "draft blog post: groovy 6 and functional programming\n"
    },
    {
      "commit": "52719303c5c6d3f0f3ae325b5048a921c1c9d565",
      "tree": "1d02ce8f32c07b3b4956bcfc64049c951173f0f9",
      "parents": [
        "eb2df4907a8d0e0455a66b28bce8c9e22676b319"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Wed May 20 13:13:01 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Wed May 20 13:13:01 2026 +1000"
      },
      "message": "minor corrections\n"
    },
    {
      "commit": "eb2df4907a8d0e0455a66b28bce8c9e22676b319",
      "tree": "860503dd2c24e8e55c232edd669a4bced81f4b80",
      "parents": [
        "f579edf96de43c196ae6c4f9c35a535503e33dd2"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Thu May 14 11:50:10 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Wed May 20 13:11:55 2026 +1000"
      },
      "message": "tidy Groovy 6 release notes\n"
    },
    {
      "commit": "f579edf96de43c196ae6c4f9c35a535503e33dd2",
      "tree": "1d367f5dc911eb95ce08e520f29c13f779473709",
      "parents": [
        "b8f87ca1c967f0a1ac8b38f0a906ee9b7e4ad1ed"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Wed May 20 09:14:30 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Wed May 20 09:14:30 2026 +1000"
      },
      "message": "add MonadicShapeChecker\n"
    },
    {
      "commit": "b8f87ca1c967f0a1ac8b38f0a906ee9b7e4ad1ed",
      "tree": "c721fcbe93a31c60b0d8448876f1721f1723278c",
      "parents": [
        "043db7e3a70a3c04d2b4fc060c4f9424dfd6c8ed"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Wed May 20 08:48:54 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Wed May 20 08:48:54 2026 +1000"
      },
      "message": "minor release note tweaks for GROOVY-12015/16\n"
    },
    {
      "commit": "043db7e3a70a3c04d2b4fc060c4f9424dfd6c8ed",
      "tree": "3ce3337f9400b03baf600ba45691ae074192ed50",
      "parents": [
        "ec8496850c11be17e7ba609b05f5fafc8e15dfc3"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Tue May 19 18:59:04 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Tue May 19 18:59:04 2026 +1000"
      },
      "message": "minor release note tweaks for GROOVY-12015/16\n"
    },
    {
      "commit": "ec8496850c11be17e7ba609b05f5fafc8e15dfc3",
      "tree": "48ca478958ea1c63e90fc767a723fe7db5496d7b",
      "parents": [
        "b195ba9277fffad6a7f902ad00b095a70ed038fc"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Tue May 19 16:10:37 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Tue May 19 16:10:37 2026 +1000"
      },
      "message": "draft GEP-23\n"
    },
    {
      "commit": "b195ba9277fffad6a7f902ad00b095a70ed038fc",
      "tree": "d5f9c54fbab70b7e335d86731874ebfbda335a44",
      "parents": [
        "7f24df4b8ff5e4a4c3ed0e2770378c05475c8d64"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Tue May 19 07:20:28 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Tue May 19 07:20:28 2026 +1000"
      },
      "message": "minor release note tweaks for GROOVY-12013\n"
    },
    {
      "commit": "7f24df4b8ff5e4a4c3ed0e2770378c05475c8d64",
      "tree": "73876423fc36a7a45b0caf5ef09288a54d8743a3",
      "parents": [
        "3405d0a2fb7fb5c30aa4b51c636ed2c3f5326d0f"
      ],
      "author": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Mon May 18 14:24:30 2026 +1000"
      },
      "committer": {
        "name": "Paul King",
        "email": "paulk@asert.com.au",
        "time": "Mon May 18 14:24:30 2026 +1000"
      },
      "message": "minor release note tweaks\n"
    }
  ],
  "next": "3405d0a2fb7fb5c30aa4b51c636ed2c3f5326d0f"
}
