)]}'
{
  "log": [
    {
      "commit": "0e1a97d95423a4fb693ecced2007b7e0b0f4db1e",
      "tree": "bc9ab2e1b09736453541ac15fa20c871dc877ae0",
      "parents": [
        "212f8005eccaab752054eb65ef74fc01d37a31fd"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Jul 08 10:42:23 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Jul 08 10:44:59 2025 +0000"
      },
      "message": "Canvas: Actually use env vars\n\nChange-Id: Ia0662b36679bbf1c7cd42256bcffd591b30733c3\n"
    },
    {
      "commit": "e085d5baf2a4c404e47820b1061417f62671ad42",
      "tree": "e91dbde6df15c5df0b1f1395dd82478df56ac577",
      "parents": [
        "007c85773b71d3a38cefda2d3e23b46700384907"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Jul 08 07:51:36 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Jul 08 07:51:36 2025 +0000"
      },
      "message": "Canvas: App wide env vars\n\nChange-Id: Ia4101ba7c646e33591a1ddd642622e2712865b71\n"
    },
    {
      "commit": "007c85773b71d3a38cefda2d3e23b46700384907",
      "tree": "3e4a8350b750485fa0d904d70ef5d1b382481be2",
      "parents": [
        "166d9925c67149410a414b5b412b32d8322ca759"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Jul 08 04:27:35 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Jul 08 04:27:35 2025 +0000"
      },
      "message": "Canvas: Configure deploy keys on repo owner\n\nExpose Agent compact prop\nImplement GitHub repo pagination\n\nChange-Id: Ib444c53f2c7f83d7461e6f1a8e9d86698d320e92\n"
    },
    {
      "commit": "166d9925c67149410a414b5b412b32d8322ca759",
      "tree": "abbc7d4e8f3721931855f886fc0852c88953ff4d",
      "parents": [
        "785c98873f248641a1c4385eb2b4d60af3e30ad5"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Jul 07 17:30:21 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Jul 07 17:30:21 2025 +0000"
      },
      "message": "Canvas: Auto cleanup old workers\n\nChange-Id: I046ce8dcbadd14b53e465fe0ffb60fae642c6951\n"
    },
    {
      "commit": "785c98873f248641a1c4385eb2b4d60af3e30ad5",
      "tree": "08b7049ce80585075721a72c6635f57d403d7ed8",
      "parents": [
        "31f16a1d520126779e9c05a08257982ad932648d"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Jul 07 16:40:25 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Jul 07 16:40:28 2025 +0000"
      },
      "message": "Canvas: Check agent health\n\nChange-Id: I429eecebde1d661513dfd94e27cdaa820bd49493\n"
    },
    {
      "commit": "f9892a564b78ef812b0d0f1efedd453ea5425c3d",
      "tree": "89528cb1ba7e8f3f6affbef8bf9c794515c730b9",
      "parents": [
        "5be6f78135341869b3b395429a25ebeeea4c0710"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Jul 07 19:23:28 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Jul 07 19:23:28 2025 +0400"
      },
      "message": "Canvas: Add nodeId field to dodo-app.jsonschema\n\nChange-Id: I2761a6f91f98c610b5436c6e6586d1ceecafcf70\n"
    },
    {
      "commit": "b0dc2d17ad60e6e306c29daefed479a5de1cf59f",
      "tree": "7d4ca6c7607cca931f766b6ce50135e985adc11d",
      "parents": [
        "a5fde99dee7b7f10cdc986302c380b7b3658a10b"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Jul 07 08:28:48 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Jul 07 08:28:48 2025 +0000"
      },
      "message": "Canvas: Project -\u003e Logs cascade delete\n\nChange-Id: I268751c8a568240dc7a2976549a46d227d35f968\n"
    },
    {
      "commit": "a5fde99dee7b7f10cdc986302c380b7b3658a10b",
      "tree": "145be75f4356c32cbcafe3a971f3f0668ff687dc",
      "parents": [
        "56e9f471ee3ab18ea51317b023d3b0c96f8553ce"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Jul 07 08:18:19 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Jul 07 08:18:19 2025 +0000"
      },
      "message": "Canvas: Preview tab\n\nChange-Id: I8a66cd977db5864828ad7ba9025270d624143091\n"
    },
    {
      "commit": "56e9f471ee3ab18ea51317b023d3b0c96f8553ce",
      "tree": "92a714d575f2663b38df905400d03b98c289ee0b",
      "parents": [
        "52441604dd0cc8296a354ba55d8033848cfbf4ad"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Jul 07 03:33:38 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Jul 07 03:33:38 2025 +0000"
      },
      "message": "Canvas: Add option to deploy latest draft\n\nChange-Id: Ia74c64354e1f80ec794140ce406fb21c16feb0da\n"
    },
    {
      "commit": "52441604dd0cc8296a354ba55d8033848cfbf4ad",
      "tree": "2e2241b810473114e8e4a39ee36c58358ec7b41f",
      "parents": [
        "efc9a4a8fb4b648249c836cc14bba9dfe235f154"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Jul 06 18:22:56 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Jul 06 18:22:56 2025 +0000"
      },
      "message": "Canvas: Auto-assign position to nodes if missing\n\nChange-Id: Ica80878e0cb280c9a44f58637c11b53d78e07892\n"
    },
    {
      "commit": "efc9a4a8fb4b648249c836cc14bba9dfe235f154",
      "tree": "492d2d05696be9c228a3f568047b14d6efab08dd",
      "parents": [
        "678746bd0efe365620a5172cfd432b6986651ba3"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Jul 06 16:22:10 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Jul 06 16:22:10 2025 +0000"
      },
      "message": "Canvas: Use regular font size for node details label\n\nChange-Id: Ib9cef6d7b4293e8623321919bb9a89c9c30b7453\n"
    },
    {
      "commit": "678746bd0efe365620a5172cfd432b6986651ba3",
      "tree": "016b5b04d09341a51f1c10cbf23527127f3959f9",
      "parents": [
        "10ff134f60a350c2d2aa8742a941f48af0baa77c"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Jul 06 14:45:27 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Jul 06 15:49:51 2025 +0000"
      },
      "message": "Canvas: Update layout\n\nCombine separate Overview and Canvas tabs into one Build tab\nAdd Overview \u003c-\u003e Canvas switcher to Actions\n\nChange-Id: I40f7742be587b475ae6e88af2bcf9cae34f93168\n"
    },
    {
      "commit": "10ff134f60a350c2d2aa8742a941f48af0baa77c",
      "tree": "00e217692c5bf20d0e97ee6c3e51048b6dd75417",
      "parents": [
        "8edf6c7753525fb9680c90ef09a6fdd16bfb818b"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat Jul 05 10:22:15 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Jul 06 05:21:45 2025 +0000"
      },
      "message": "Canvas: Use GraphSchema to validate state\n\nChange-Id: I342c8959c97f3486c4a7cb2aff92fb930a2b3146\n"
    },
    {
      "commit": "8a5f12fc0a4a44ba221305eb6a58fcb3a7f40db7",
      "tree": "6b0b27dfe37d253c457dbc6fbab4c71dd4c3dab3",
      "parents": [
        "74c6f75a5fc197356660339149b7a84990f85ea8"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat Jul 05 07:02:31 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat Jul 05 08:38:05 2025 +0000"
      },
      "message": "Canvas: Implement streaming state updates\n\nChange-Id: I2bc5a51b5792839bde93f927f5ffea22b3250fe2\n"
    },
    {
      "commit": "74c6f75a5fc197356660339149b7a84990f85ea8",
      "tree": "ecc337e1e5de656cb2ed6035abfd88c20fbd6682",
      "parents": [
        "2e7d217e445377789bf8c57de57a314e1c736f4e"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat Jul 05 04:10:58 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat Jul 05 04:18:34 2025 +0000"
      },
      "message": "Canvas: Implement agent sidebar on the overview tab\n\nChange-Id: I1f2fb874cb98247c73bebf364f4669ad5170c4a0\n"
    },
    {
      "commit": "2e7d217e445377789bf8c57de57a314e1c736f4e",
      "tree": "b29ea2e9cd8c142149cca3f3c9e207ea69981513",
      "parents": [
        "9f3d4f5563099c27c2aef5257f50e669c2e15345"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Jul 04 09:24:53 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Jul 04 09:37:05 2025 +0000"
      },
      "message": "Canvas: Port expose form\n\nChange-Id: I421c67230075778fad3359e11a5c573cd83882c9\n"
    },
    {
      "commit": "9f3d4f5563099c27c2aef5257f50e669c2e15345",
      "tree": "49593b3a4453fe66895324606c19a4eaba80ebc3",
      "parents": [
        "1dacf1ca5feef1a9965d41ce3018429dd02aee44"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Jul 04 08:42:34 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Jul 04 08:42:34 2025 +0000"
      },
      "message": "Cavnas: Service node details renders associated ingress\n\nChange-Id: I5aa4e146fedacadd48af095e8df2f3fe35a8342a\n"
    },
    {
      "commit": "1dacf1ca5feef1a9965d41ce3018429dd02aee44",
      "tree": "8d46b9847f0ec0181026592b96fafab4a170be46",
      "parents": [
        "641799b4b4dff496dc5b07a10a61f84abe8f790f"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jul 03 16:39:04 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Jul 04 08:03:07 2025 +0000"
      },
      "message": "Canvas: Let user define name/value env var\n\nChange-Id: I9beffcc6f0dcbb674ef82b37b93b5f5ef7d189bc\n"
    },
    {
      "commit": "641799b4b4dff496dc5b07a10a61f84abe8f790f",
      "tree": "adc6c5c1a382c7c495dc6f82bc9b1aacb75f7289",
      "parents": [
        "73ac16c907d32cd1606d314e15c09e12c861961f"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jul 03 16:11:36 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jul 03 16:11:40 2025 +0000"
      },
      "message": "Canvas: .env.dev\n\nChange-Id: Id167f5bad6b760d47bce635ba11547b868ea3f0d\n"
    },
    {
      "commit": "73ac16c907d32cd1606d314e15c09e12c861961f",
      "tree": "6ef6bde35335e74c00407e2db3609bc4f1387a2c",
      "parents": [
        "790c87fbfff0d78e67b79587781ff2bb420d7af3"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jul 03 14:38:04 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jul 03 16:11:40 2025 +0000"
      },
      "message": "Canvas: Auto create port named env var alias\n\nChange-Id: I1bf725fbb41d1cbda9cfbde0479399c58cef7df6\n"
    },
    {
      "commit": "ff9b552850e9afabeba14b2436e9e0b560eecf40",
      "tree": "20a8cf92fd3a8fa6dd6c9633ff3702d39b44bb15",
      "parents": [
        "577d23428911fc6abec626b1a0c0d1f3d84e8a00"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jul 03 13:50:30 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jul 03 13:50:30 2025 +0000"
      },
      "message": "Canvas: No env alias editing when disabled\n\nChange-Id: I15eff626a7b4b84dafa0f56e2a3890e04e18df3f\n"
    },
    {
      "commit": "577d23428911fc6abec626b1a0c0d1f3d84e8a00",
      "tree": "9606d1568a0e80ac72affce0dfa25ad0730e3ca7",
      "parents": [
        "37fba252cb61ffff23c8c1d31a55b1ac25944e02"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jul 03 12:50:18 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jul 03 13:08:10 2025 +0000"
      },
      "message": "Canvas: Add worker kill action to monitoring tab\n\nChange-Id: I8387dcf2320f9eccdb2e443fd4039e91ff35ed31\n"
    },
    {
      "commit": "69ff759f4e5bafc74f80cb2b72e4e417ec2edbbb",
      "tree": "9d40d639f30a9b053513b7082e4a52bf0d9c0730",
      "parents": [
        "4745b3fec208c81e4e694a11cb41d827239b8872"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jul 03 06:27:21 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jul 03 08:15:36 2025 +0000"
      },
      "message": "Canvas: Support Anthropic Claude based AI agents\n\nChange-Id: Ib74c9672da9a80a4f20d63741a471c728a435b8e\n"
    },
    {
      "commit": "34193053a2bfdd685fd3844d0a5c484669ee5a26",
      "tree": "49499670c48e8084432fbb7af2f47e7bdfce2436",
      "parents": [
        "a70535a1e77cb10c7e83c8129f7b150a3b522c1f"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jul 03 03:55:11 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jul 03 03:55:11 2025 +0000"
      },
      "message": "Canvas: Gemini API key validator\n\nChange-Id: If185b7600c3fdd153345ab6f80c1b89f6504ddeb\n"
    },
    {
      "commit": "a70535a1e77cb10c7e83c8129f7b150a3b522c1f",
      "tree": "2d74005cac054b4ae58876cb2f55bf735ed3fbd0",
      "parents": [
        "67d6d5ffdaf277c2ce4696a4c3a978280e914488"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jul 02 15:50:25 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jul 02 15:51:42 2025 +0000"
      },
      "message": "Canvas: Fix worker registration request schema\n\nMake commit information optional and nullable\n\nChange-Id: I181a7ac53f6b1618c11443b168af27e356922ace\n"
    },
    {
      "commit": "67d6d5ffdaf277c2ce4696a4c3a978280e914488",
      "tree": "3574e31c8d5ff5d079e9d83cac00a5842436e42c",
      "parents": [
        "3aba30926494639c5617e5a25822f8802d1b6876"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jul 02 15:49:54 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jul 02 15:51:42 2025 +0000"
      },
      "message": "Canvas: Use lowercased port names when generating dodo-app config\n\nChange-Id: Ic33584b94955848e0510f6a8acc755036748604e\n"
    },
    {
      "commit": "40c0c999eb85dbbb0f5c470a51bfdb647bde5f37",
      "tree": "9745e94a18e2f399167e7a1f4df3cfdf5245cc65",
      "parents": [
        "78a2288b18665a2dc2094ffdbccf635b0259049d"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jul 02 13:18:05 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jul 02 13:18:05 2025 +0000"
      },
      "message": "Canvas: Persistent log storage\n\nChange-Id: I3eac705329e6d68d8e4b9a371c6e9b9807f357ec\n"
    },
    {
      "commit": "78a2288b18665a2dc2094ffdbccf635b0259049d",
      "tree": "3c3bbf3507ab12fdb889d6013b194209854a2088",
      "parents": [
        "89c5b5e630fa43caace1657cedc97c8e07d40f3b"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Jul 01 18:56:01 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jul 02 08:28:51 2025 +0000"
      },
      "message": "Canvas: Render logs using XTerm\n\nUse Server Sent Events to stream logs.\n\nChange-Id: I3790a22a39b71409636a81dbe2a2cc8bf4977cb4\n"
    },
    {
      "commit": "2f393c12fe97a6794a8bd6a5969320bbf184fe3f",
      "tree": "f2e7fc7fdf27af6132afcf80a7eda637805d499c",
      "parents": [
        "8f8b086c368c7c2c7fe24c3c11fb1393f6f1b83f"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Jul 01 08:02:48 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Jul 01 12:58:51 2025 +0000"
      },
      "message": "Canvas: Makefile\n\nChange-Id: I448a36bf60ee33fb4691d5312ac69b32ec38ec14\n"
    },
    {
      "commit": "1037ee2f7f2f64f007e0480009297cad78b5c456",
      "tree": "4393818fe02020accee026494ab77f3ab0e19e89",
      "parents": [
        "90a265bcb8fb65bb7e77ef2abb1395837b21ecbf"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jun 26 09:25:43 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jun 26 09:33:36 2025 +0000"
      },
      "message": "Canvas: Add modal resources dialog to Overview tab\n\n- Add Add button to Actions component visible only in Overview tab and edit mode\n- Create modal dialog with Resources component for adding new resources\n- Modal automatically closes when resource is added\n- Resources component accepts optional onResourceAdded callback\n- Maintain backward compatibility with existing Resources usage\n\nChange-Id: Ib01fe1417ba2bbb7c91f6e1d0551fe9c52ade8c3\n"
    },
    {
      "commit": "90a265bcb8fb65bb7e77ef2abb1395837b21ecbf",
      "tree": "14659a4913d355568fd039f4a925c3d4aea6a524",
      "parents": [
        "cc5ce58b57b3faa66cc784cb3f248420602befcb"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jun 26 09:16:58 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jun 26 09:33:28 2025 +0000"
      },
      "message": "Canvas: Add search functionality to resources component\n\n- Add search input field at the top of resources panel\n- Filter categories and items based on search value in real time\n- Hide empty categories when no matching items found\n- Use memoized filtering for performance optimization\n\nChange-Id: I3c4d46e54a1100ad14be0b73f015042f2bdef434\n"
    },
    {
      "commit": "cc5ce58b57b3faa66cc784cb3f248420602befcb",
      "tree": "a3012ae4df037604f79beeb94852d3703947d57c",
      "parents": [
        "85ddcdf7453f8f222654136116e856a64b4eae7c"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jun 25 07:45:21 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jun 26 07:02:46 2025 +0000"
      },
      "message": "Canvas: Render AI agents in tabs\n\nImplements AI Agent chat bubble, but is disabled for now.\n\nChange-Id: If915691a22f376f347b76a5d24333dbe76492ca9\n"
    },
    {
      "commit": "cefb3b500ad84268b0f999023c4d37e4fbb328c3",
      "tree": "9d1f1386080492d060c0c1b3c2d7beee566f8a2a",
      "parents": [
        "e8402359dfa65dbe72fee68ba3961a43f892aacc"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Jun 24 21:55:52 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Jun 24 18:00:44 2025 +0000"
      },
      "message": "Canvas: dear_llm.md\n\nChange-Id: Ib3b12395c8ce21ac3326dd638f00002627dfdb5c\n"
    },
    {
      "commit": "691483264b84abdbee3d889fd3c0ae2754b99fa5",
      "tree": "6d44a701921ae9e140ce85f299f7359ce96cdf81",
      "parents": [
        "b33b2a93a0a2e51d94ebc844b81686e8ab2e3c64"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jun 19 23:16:12 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Jun 24 08:32:04 2025 +0000"
      },
      "message": "Canvas: Implement Agent Sketch node, update dodo-app.jsonschema\n\n- Add Gemini API key to the project\n- Update dodo schema to support Gemini API key\n- Update dodo schema to support Agent Sketch node\n\nChange-Id: I6a96186f86ad169152ca0021b38130e485ebbf14\n"
    },
    {
      "commit": "9b7421ac7ad75ad949e32d1606afcd685443ef8c",
      "tree": "97464a6c474781bd521c96e034733cec0c7b6ab5",
      "parents": [
        "dbabb10be6f6211d630e526d45aa54eae59756c9"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jun 18 12:31:13 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jun 18 15:19:21 2025 +0000"
      },
      "message": "Canvas: Generate Github nodes out of the dodo-app config\n\nChange-Id: Ifc5b09deb39352a3025f7ea66ce39b421daac94d\n"
    },
    {
      "commit": "c31bf14971e228b03f738dde4cbfc8ae34f88f9d",
      "tree": "13345409e55a4628c1228e7606c20158eef2239f",
      "parents": [
        "4b08eb7dd536c9c66263b3eea08bfeb43f035f74"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Jun 16 07:48:20 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jun 18 09:13:19 2025 +0000"
      },
      "message": "Canvas: Generate graph state out of dodo-app config\n\nRestructure code, create shared config lib.\n\nChange-Id: I2cf06d35c486d4557484daf8618a2c215316fa7e\n"
    },
    {
      "commit": "4b08eb7dd536c9c66263b3eea08bfeb43f035f74",
      "tree": "721713118e035fcb9d43dfa9ba2ff0abc3d7c5c5",
      "parents": [
        "8e74dc031c5490b736c96cec4dce7cf04725b9e2"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Jun 16 03:44:58 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Jun 17 07:56:02 2025 +0000"
      },
      "message": "Canvas: Add JSON schema for dodo-app configuration\n\nChange-Id: I7c562c41a05e370016e3d73b975d3cc8b0b5a5e2\n"
    },
    {
      "commit": "8e74dc031c5490b736c96cec4dce7cf04725b9e2",
      "tree": "eb236deefadf80968376e38f6b7cb9562a826678",
      "parents": [
        "e7734b234a6a4e3fd83fe32cbab250a5c1b1ef13"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Jun 13 10:19:26 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Jun 13 14:33:42 2025 +0000"
      },
      "message": "Canvas: Import modal\n\nChange-Id: I22928007c5b81d93be2eed2d133fed4d73e1703f\n"
    },
    {
      "commit": "e7734b234a6a4e3fd83fe32cbab250a5c1b1ef13",
      "tree": "e445dab82fb9a3d610793ffefed9028bf3b1c175",
      "parents": [
        "5fa669611b128b5365c3f92d6c330ecd06e897b9"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Jun 13 10:12:04 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Jun 13 10:12:04 2025 +0000"
      },
      "message": "Canvas: Show app tab titles in overview mode\n\nChange-Id: Iafbcfba04c53f033c091152392e724590b2f4e3f\n"
    },
    {
      "commit": "5fa669611b128b5365c3f92d6c330ecd06e897b9",
      "tree": "1908b7332df5cce12ce8a7f2661111ea8259598a",
      "parents": [
        "3fb133dff3380d8278bacd6b0a3e5cdb98f1edea"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Jun 13 09:30:40 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Jun 13 09:39:56 2025 +0000"
      },
      "message": "Canvas: Improve overview tab styling\n\nChange-Id: I1bb656e5d277c0e8c46da5d6be0748f964551049\n"
    },
    {
      "commit": "3fb133dff3380d8278bacd6b0a3e5cdb98f1edea",
      "tree": "bbbf363464fd20b57838fb5d0b5e91d793195fa2",
      "parents": [
        "08acd3ac799f73e9af2508d6532348f8b6af5aca"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Jun 13 07:20:24 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Jun 13 09:10:59 2025 +0000"
      },
      "message": "Canvas: Reuse Name component in node details\n\nChange-Id: Ide8094b50f9ac019e7bada9a000100f9233133da\n"
    },
    {
      "commit": "08acd3ac799f73e9af2508d6532348f8b6af5aca",
      "tree": "70e9ddb8ae6e6a2e7577ba684d16ae23ae157a05",
      "parents": [
        "3d0bf03a6396a7148b5e962aa65bac7958257337"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jun 12 12:15:30 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jun 12 12:15:30 2025 +0000"
      },
      "message": "Canvas: Refactor NodeDetails signature\n\nChange-Id: I78a07b130089e50df9524de0895210528b3e09b3\n"
    },
    {
      "commit": "3d0bf03a6396a7148b5e962aa65bac7958257337",
      "tree": "ae5a4454cf774626c5da1e40dfbba7dc8125dfa5",
      "parents": [
        "da12043e344890345c795ef90da783a3d51c620f"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jun 05 06:57:26 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jun 12 10:47:22 2025 +0000"
      },
      "message": "Canvas: Reuse node details component in overview\n\nMake app details tabular.\n\nChange-Id: I78a641e8e513eec44573bb8c8a391ef81a66e7fe\n"
    },
    {
      "commit": "da12043e344890345c795ef90da783a3d51c620f",
      "tree": "6e105d39ce3b941949e67600bc657b1ce903459e",
      "parents": [
        "a71316da2998b2972ace8a155d04333a00b330a9"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Jun 02 09:42:26 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Jun 02 17:44:25 2025 +0000"
      },
      "message": "Canvas: Overview tab\n\nChange-Id: Ie40ed4e26991b7915ec005681b92eb39fdc354c9\n"
    },
    {
      "commit": "a71316da2998b2972ace8a155d04333a00b330a9",
      "tree": "f4f036585ce8547ce0b3d23f4542f3b5ba543f53",
      "parents": [
        "842db3f5be99c6b700072911c49c7c03f48daca6"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat May 24 09:41:36 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Jun 02 09:27:31 2025 +0000"
      },
      "message": "Cavnas: Implement basic service discovery logic\n\nChange-Id: I71b25076dba94d6491ad4db748b259870991c526\n"
    },
    {
      "commit": "8fad76ab737dff9fc24d17b3b88ae491ed9af8b7",
      "tree": "387c24eab8357e5dc7418a2695ac0ec465b2e8b7",
      "parents": [
        "ea6d912dbfd4fbee839cc0d869347e707f19b132"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 22 14:01:23 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri May 23 07:50:58 2025 +0000"
      },
      "message": "Canvas: Use node full labels when monitoring\n\nChange-Id: I7b3bce3519c2a7b7780f43cf1c092fcca9e6ecd9\n"
    },
    {
      "commit": "918780d890086f65cf6a2c6bded71a26ce76cf96",
      "tree": "5bdba6814ee19d29ac5308e02295d7c672fea940",
      "parents": [
        "2539d9e43e842acb11a9f48ed9a72d829df28e6f"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 22 08:24:41 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 22 09:11:35 2025 +0000"
      },
      "message": "Canvas: Add Reload button on Monitoring page\n\nChange-Id: I593d9068870bcd5f0d43680af4a08d814a18a2a9\n"
    },
    {
      "commit": "0afbaee7098e4f014424d866897fbefc8c504484",
      "tree": "7077720891489144a48b0b34cb705ef3bf41a19b",
      "parents": [
        "9635ccbce34ce2e5a83168e8e0e0e77e4d79089a"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 22 04:34:33 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 22 04:48:03 2025 +0000"
      },
      "message": "Canvas: Display commit message\n\nChange-Id: Ifa2907c3377bd6174fa2c22a862dbae0eb8901fc\n"
    },
    {
      "commit": "c717e36a85298254f8de710245906b0ac9c9e171",
      "tree": "be1ebb523d8fb773214e4d4a803d07062822d046",
      "parents": [
        "5155c1a018373a76319f1a15f5fb18232b6c9ca6"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed May 21 16:02:03 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed May 21 16:02:03 2025 +0400"
      },
      "message": "Canvas: Restore .env file\n\nChange-Id: I570c5fec718e7e462cb2f719271041c6f97a5e55\n"
    },
    {
      "commit": "a1efbadf3c50d5d1e6615cf018e57d48c0e01d2b",
      "tree": "6aa811cb15af356d825689528171d5c468422371",
      "parents": [
        "48679461d25e1e81cd2f226cc215c4e5360d8988"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed May 21 07:16:45 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed May 21 09:08:21 2025 +0000"
      },
      "message": "Canvas: Rework monitoring page\n\nDisplay worker statuses with list of commands\nCommit hash\n\nChange-Id: I7054ecc5ce81f35cad3fe26fc20677b6f50d3147\n"
    },
    {
      "commit": "48679461d25e1e81cd2f226cc215c4e5360d8988",
      "tree": "fe77c80549048fbe07954c0a88fa242a8c1b4310",
      "parents": [
        "b1c5c454ffb0cda2b8458268d41d925b0c9e3ab6"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed May 21 04:27:27 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed May 21 08:52:18 2025 +0000"
      },
      "message": "Canvas: Consistent icons\n\nChange-Id: Ib33a4bb8c0dbafefae7a600b86900b60f6118340\n"
    },
    {
      "commit": "b1c5c454ffb0cda2b8458268d41d925b0c9e3ab6",
      "tree": "faa9d742aae329fd284f67bc4baa020ae127c1ed",
      "parents": [
        "6481c9095aef7c7d2a0554b1d1af8a55171a89c3"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed May 21 04:16:54 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed May 21 05:13:19 2025 +0000"
      },
      "message": "Canvas: Refresh env on remove deployment\n\nChange-Id: I1e09b50668a41ed11426fa0b8b0a600089e16c19\n"
    },
    {
      "commit": "b45b1866d422a31135a5d9af73ebc79381d0a0cb",
      "tree": "8d001086da42a8bb5e1e6fab5279c5f66678e287",
      "parents": [
        "bceb0853af62c5f23d62e4d51d7e097223527d12"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 20 11:42:20 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 20 11:42:20 2025 +0000"
      },
      "message": "Canvas: Fix project selection\n\nChange-Id: I34d68d06cc125acd1336fbd180bfdb6bfdfb2553\n"
    },
    {
      "commit": "bceb0853af62c5f23d62e4d51d7e097223527d12",
      "tree": "b3503e16d0b21b8cefe772fad3a8f72787cb70a3",
      "parents": [
        "6a49afc86b5d9626874146cb91225e4f941ae37b"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 20 13:15:18 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 20 13:15:18 2025 +0400"
      },
      "message": "Canvas: Expose nodejs 24.0.2\n\nChange-Id: Ie75960b47d067c24031741edc892ae8f30475ac9\n"
    },
    {
      "commit": "6a49afc86b5d9626874146cb91225e4f941ae37b",
      "tree": "489a36b4cb95860110c7f1e294af1db49e959a68",
      "parents": [
        "ec744fab02aea72142ad3f17b38c68957039e437"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 20 12:48:45 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 20 13:06:52 2025 +0400"
      },
      "message": "Canvas: Fix INTERNAL_API_ADDR\n\nChange-Id: I1079a5db68b1d850ab36314018b6c5a96dee1bc2\n"
    },
    {
      "commit": "376a81d467d707eb2bd98a35c16c0b784e5c2eb3",
      "tree": "478f885a744e24867b987ddd5871886d9cf18ca1",
      "parents": [
        "eb148c8066d00c73a012727d63c30e8c2b207eac"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 20 06:42:01 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 20 06:50:43 2025 +0000"
      },
      "message": "Canvas: Use volume to persist data\n\nChange-Id: Ia93299590885c91d6e44c1e8842ba2c259bfc8a0\n"
    },
    {
      "commit": "eb148c8066d00c73a012727d63c30e8c2b207eac",
      "tree": "13738767beb4ef48e3bd7bfc4fe71688511adc3e",
      "parents": [
        "76d8ae649ccecc0c24f90971cbd250cfd45b99c1"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 19 16:17:22 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 19 16:17:22 2025 +0000"
      },
      "message": "Canvas: Add info about webhooks\n\nChange-Id: Icbe3625f444349f394672d963185fcc7d10b6c19\n"
    },
    {
      "commit": "76d8ae649ccecc0c24f90971cbd250cfd45b99c1",
      "tree": "639016de4bb7b7c75bdcee356d5983f9e1b9c255",
      "parents": [
        "82afef1887f8ee11e84e27bdc7e435a98ef35ecf"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 19 15:21:54 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 19 15:50:38 2025 +0000"
      },
      "message": "Canvas: Auto register github webhook upon deploy\n\nChange-Id: I0321a032014d58016926189869b0fc24ad7ee2b1\n"
    },
    {
      "commit": "6d8b71c93b719eafeae28ad6fadc9165fe66a419",
      "tree": "dce23b09ab7d2151963e8b67e1d272516be45830",
      "parents": [
        "05a993c181ec17ac8004219360188291785e088d"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 19 12:57:35 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 19 13:29:46 2025 +0000"
      },
      "message": "Canvas: Check if network supports auto\n\nChange-Id: I19e06b70e3e1a59f6549fcf01b565bad8a7f5695\n"
    },
    {
      "commit": "05a993c181ec17ac8004219360188291785e088d",
      "tree": "032ef46d683bc6e174dc7e1265b21fcd2fa0077b",
      "parents": [
        "4037078c897d124b7e5209504e0e49493f534113"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 19 11:51:33 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 19 12:34:36 2025 +0000"
      },
      "message": "Canvas: Show count badge on Gateways tab\n\nChange-Id: If93a4425c0c7f3395ad6712a4658711668e03b92\n"
    },
    {
      "commit": "4037078c897d124b7e5209504e0e49493f534113",
      "tree": "225aad787f8fd35dbcc24a6c489d3e87a9bccf50",
      "parents": [
        "6223714336ad69a661483a2cdf0acd1585ea5fcf"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 19 11:04:52 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 19 11:11:04 2025 +0000"
      },
      "message": "Canvas: Do not render input on config tab\n\nChange-Id: I5ebe939457610546ae59894958dbac153fcefcdf\n"
    },
    {
      "commit": "6223714336ad69a661483a2cdf0acd1585ea5fcf",
      "tree": "a32c4ffb766a3e49995431015e460c57f6a9dcd6",
      "parents": [
        "97efd7256d5d4d12654be30c24500edbf4cf7556"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 19 10:39:40 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 19 10:39:40 2025 +0000"
      },
      "message": "Canvas: Refresh env on successful deployment\n\nChange-Id: I7e27b21dd4409eb76fb02ab3feaf35fb56d0b989\n"
    },
    {
      "commit": "97efd7256d5d4d12654be30c24500edbf4cf7556",
      "tree": "d2c257b3a1075e5fd7c7b84d6d3ff9936c513d75",
      "parents": [
        "b77cb93401adc282f70ad3e8e0481af67518f3f5"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 19 10:36:12 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 19 10:36:12 2025 +0000"
      },
      "message": "Canvas: Fix TCP gateway exposing DB\n\nChange-Id: I0aef6a4754b0b674820d479b85fc770987164b02\n"
    },
    {
      "commit": "b77cb93401adc282f70ad3e8e0481af67518f3f5",
      "tree": "de49d8f6d70f5e77ecf65a10c335a7fe19509c85",
      "parents": [
        "6ce4481b19e87a2b010ca9dd7247f894eea32448"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 19 09:37:14 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 19 10:13:30 2025 +0000"
      },
      "message": "Canvas: Rework Deployment/Gateways tab\n\nChange-Id: I938262b9a6ba2af060531e7dcdf91ddd66721385\n"
    },
    {
      "commit": "3304672099846c2323de7bdb26d8df9e14b5eaff",
      "tree": "a4f4aa86214615f42215e3e3154e00d5e3c8e95e",
      "parents": [
        "3ec9424fa7f67122f10540878b210a00b63e1ef7"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri May 16 14:49:55 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri May 16 14:50:01 2025 +0000"
      },
      "message": "Canvas: Get ready for trial\n\nChange-Id: I16088fa041dd0fb35ac801ddbbedf3c1c6e8563d\n"
    },
    {
      "commit": "3ec9424fa7f67122f10540878b210a00b63e1ef7",
      "tree": "3c7653d5742cd8f7deb0afcc74ff8ae6e1601d10",
      "parents": [
        "f8fa0f8785b498c88d0e168b65f30f593cd1501a"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri May 16 12:46:57 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri May 16 12:46:57 2025 +0000"
      },
      "message": "Canvas: Disable all inputs during non-edit mode\n\nChange-Id: Ifca28e7cb78cb38175d5463311ff3d5006d412f8\n"
    },
    {
      "commit": "f8fa0f8785b498c88d0e168b65f30f593cd1501a",
      "tree": "8fcf4b9075e09d90b9f095ac963d168044ae1261",
      "parents": [
        "9fc37c7c69a4a26cb38e597c643213d1d63c91dc"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri May 16 12:34:26 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri May 16 12:34:26 2025 +0000"
      },
      "message": "Canvas: Improve spacing on details component\n\nChange-Id: Id18e89c9413e5f6d988b68d1f6582cdbee980a9d\n"
    },
    {
      "commit": "9fc37c7c69a4a26cb38e597c643213d1d63c91dc",
      "tree": "ca1f514f36d187125e22cc2b468f238e31088dc6",
      "parents": [
        "dc2dfcfeeb08e15e6d3807f499af1f3667ab46f2"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri May 16 12:17:18 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri May 16 12:17:18 2025 +0000"
      },
      "message": "Canvas: Message type icons\n\nChange-Id: I54f9f79869e593d95cb7dcadc6085951629600a9\n"
    },
    {
      "commit": "dc2dfcfeeb08e15e6d3807f499af1f3667ab46f2",
      "tree": "087cd0325bc8d2cee1a9285c99e63cef86a573c6",
      "parents": [
        "8cadbc764ad65ea0ed6e691cfa6fa2e23541e8a9"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri May 16 09:41:04 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri May 16 10:06:10 2025 +0000"
      },
      "message": "Canvas: Improve diagram styling\n\nChange-Id: If1c3d48cd94b63de86c8d7ecdb40974af951367f\n"
    },
    {
      "commit": "8cadbc764ad65ea0ed6e691cfa6fa2e23541e8a9",
      "tree": "c1964a70a1a56e1662c5ccbc2dfcc7332bb5dce6",
      "parents": [
        "29050d6e9998c2c3aa3954684e66d4c07c8a8a03"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri May 16 07:51:02 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri May 16 09:28:06 2025 +0000"
      },
      "message": "Canvas: Fix messages and details scrolling issues\n\nChange-Id: Id7831f65b7e692c611228d5937412500c3beae21\n"
    },
    {
      "commit": "29050d6e9998c2c3aa3954684e66d4c07c8a8a03",
      "tree": "4751db572e67c530fa9b9937d5c15e7d1e3b8324",
      "parents": [
        "e2b955a7b215e78324ff0b57d859d99ad4c3e9da"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri May 16 04:49:26 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri May 16 04:49:26 2025 +0000"
      },
      "message": "Canvas: Use subdomain only as gateway labels\n\nChange-Id: I2ff225fe4c9ae42ef3999fc51760cf29ccb58bae\n"
    },
    {
      "commit": "e2b955a7b215e78324ff0b57d859d99ad4c3e9da",
      "tree": "d8208aa5d43da2aeaf7c0d895481b5616424627e",
      "parents": [
        "838bcb82ed8d7358aa35a7fb26cb98c82ba4b6c8"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 15 15:41:05 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri May 16 04:43:52 2025 +0000"
      },
      "message": "Canvas: Wait during deploy and reload\n\nChange-Id: I8f39a46e263c99dd342b640474de421043ff0d38\n"
    },
    {
      "commit": "bd37a2ba4b803524f80e07394666c046f86a8cd4",
      "tree": "d689881cc23eeccf4dce570f0c29ff9a83d0ce06",
      "parents": [
        "b1d3bd7a965316f19df79af9abc6f09c0a5cf682"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 15 04:28:42 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 15 06:38:02 2025 +0000"
      },
      "message": "Canvas: Remove deployment action\n\nChange-Id: I5887f130f5d11880271c943f58284d62f7d07a23\n"
    },
    {
      "commit": "3ed59599dde16dd593805dd41192efb7e9591d36",
      "tree": "abae56df3d1defebb8ce3c87dbb64f230227babe",
      "parents": [
        "a1f29474e3457e969c798f86402ea27e7f390334"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed May 14 16:51:09 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 15 03:07:41 2025 +0000"
      },
      "message": "Canvas: Handle repo diff\n\nRefactor github and appmanager clients.\nRemove dev mode ports/ingress definitions.\n\nChange-Id: I0ca15cec897d5a8cfa1c89b8ec9c09c408686c64\n"
    },
    {
      "commit": "48fde051ffe863cb452d770e915bc314e43150f2",
      "tree": "baa701b66f18c91b7fb2f5229bba3b7e137de72e",
      "parents": [
        "359a685c71da766e76673c80e6c82bfd6ff0574b"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed May 14 09:48:08 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed May 14 15:19:10 2025 +0000"
      },
      "message": "Canvas: Service dev UI\n\nChange-Id: I11968dbf5ec51c5fd234ad927d40b0b3983e71dd\n"
    },
    {
      "commit": "359a685c71da766e76673c80e6c82bfd6ff0574b",
      "tree": "ea91c76924db8c5c8ac429c8534a8c0f66ac1627",
      "parents": [
        "af8db83af791cb5abfca73735936c9a78be2f7e0"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed May 14 03:38:24 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed May 14 03:51:57 2025 +0000"
      },
      "message": "Canvas: Restore viewport on project select\n\nChange-Id: I3dd60983ca0abe5fd3b84011bad384d50fa90dc1\n"
    },
    {
      "commit": "af8db83af791cb5abfca73735936c9a78be2f7e0",
      "tree": "0ff70e5e28d8e1a9861319e2efec9516fcc12676",
      "parents": [
        "74ab785563086f5904cc9ef33c2acf6cea7b461a"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 13 14:43:05 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 13 16:18:28 2025 +0000"
      },
      "message": "Canvas: Add new nodes at random positions\n\nChange-Id: I17ba195065bf8c2f7d1eea2091793766f0e0ac65\n"
    },
    {
      "commit": "74ab785563086f5904cc9ef33c2acf6cea7b461a",
      "tree": "8233ce3823082a58bc03669351ba1b460f9f0b87",
      "parents": [
        "e440db8685c8f52b4813a6d934da234426c6a878"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 13 13:19:31 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 13 13:20:35 2025 +0000"
      },
      "message": "Canvas: Fix project creation flow\n\nChange-Id: I2373982b37807db17391149a7ad40ebd4a5894ed\n"
    },
    {
      "commit": "e440db8685c8f52b4813a6d934da234426c6a878",
      "tree": "55452a61f267d03672339ebd4d988dbf2429e48c",
      "parents": [
        "02f1cadce9f2081f90610cb757c2ca33c93396ca"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 13 12:21:44 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 13 12:21:44 2025 +0000"
      },
      "message": "Canvas: Fix deleting undeployed project\n\nChange-Id: Icc2221338bc021a40ba7aae14eea93c8909af120\n"
    },
    {
      "commit": "02f1cadce9f2081f90610cb757c2ca33c93396ca",
      "tree": "f28af0e915204a6fbccde88ef827b2d04892dfd5",
      "parents": [
        "fcefd7c02b1fc3b3a38c561bade7fc870b538bbf"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 13 11:51:55 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 13 11:52:16 2025 +0000"
      },
      "message": "Canvas: Improve spacing on Integrations tab\n\nChange-Id: Ib2b7c1f15dfecabc56e39269ea122fc4f3842c33\n"
    },
    {
      "commit": "fcefd7c02b1fc3b3a38c561bade7fc870b538bbf",
      "tree": "8a23695800107203f3e84e059a78811811801108",
      "parents": [
        "617b1ddbf28310cf3c8c7c064ec7804b08b6fb50"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 13 08:01:07 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 13 08:01:07 2025 +0000"
      },
      "message": "Canvas: Consistent spacing on node details component\n\nChange-Id: Ia008d918723bc77a97a1ce37cd02adcd2accc9fe\n"
    },
    {
      "commit": "617b1ddbf28310cf3c8c7c064ec7804b08b6fb50",
      "tree": "021b3d61156022c7574df56070d2b128a213dd63",
      "parents": [
        "818da4e1e7c3a5d338ce85a03386e5d7e0d759f7"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 13 05:45:41 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 13 05:45:41 2025 +0000"
      },
      "message": "Canvas: Improve messages component layout\n\nChange-Id: I5ae26b72f480fff0e4634c7fcc294c04ac4ce7c5\n"
    },
    {
      "commit": "818da4e1e7c3a5d338ce85a03386e5d7e0d759f7",
      "tree": "fef25bddeac2e84e51fd3f0c0eb2f6bed4342601",
      "parents": [
        "09fcab513feafb119a80063cb60cc4439055ddb8"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 12 14:45:35 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 13 05:32:15 2025 +0000"
      },
      "message": "Canvas: Edit/Deploy mode\n\nChange-Id: I51e5b6c2a1f06009433b0d0824ffcf3dfe39d34e\n"
    },
    {
      "commit": "09fcab513feafb119a80063cb60cc4439055ddb8",
      "tree": "92d70ab74ce88a7389d9df618ad9e77a9d559aa3",
      "parents": [
        "4b9b58a2dd57736d0fb74e8947f8cd8a43ba4fa5"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 12 14:05:07 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 12 14:07:18 2025 +0000"
      },
      "message": "Canvas: Implement authorization\n\nRun internal API server on a different port: DODO_PORT_API\n\nChange-Id: Ic5aa066c3fa06bd68a752704df4f73040d1aa0d0\n"
    },
    {
      "commit": "4b9b58a2dd57736d0fb74e8947f8cd8a43ba4fa5",
      "tree": "018043e914d602ff4ebe8e0bf034424d64eafb3d",
      "parents": [
        "7461e50b4373b68ac10e92458840cd1eba7ac311"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 12 11:46:08 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 12 11:47:20 2025 +0000"
      },
      "message": "Canvas: fix empty config tab\n\nChange-Id: I7b59790577478d0b75c0b62e970bc7e95282f65a\n"
    },
    {
      "commit": "7461e50b4373b68ac10e92458840cd1eba7ac311",
      "tree": "f796be82aec7f1e6d4c0607ef6244aea2cbe0da0",
      "parents": [
        "bc47f9f1fdd718ca7604b67405e6b6d1fd6abfd0"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 12 10:11:55 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 12 11:47:15 2025 +0000"
      },
      "message": "Canvas: Auto-select first project\n\nChange-Id: I1065b20f866f9fa7152ca65b7853a60c58ac5de2\n"
    },
    {
      "commit": "bc47f9f1fdd718ca7604b67405e6b6d1fd6abfd0",
      "tree": "c8b25377562bbf9c0694f4deaaa1421e844393e3",
      "parents": [
        "0b4002c49fd2a2d696d549cb2b71af6e46accda5"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 12 08:31:07 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 12 11:46:57 2025 +0000"
      },
      "message": "Canvas: Fix layout, get rid of scroll bars\n\nChange-Id: I3244784ee741e93565190e538472723ffadfb754\n"
    },
    {
      "commit": "0b4002c49fd2a2d696d549cb2b71af6e46accda5",
      "tree": "00a00e51861235df14ab2c0c5f7f893682202fb0",
      "parents": [
        "8d0f635f2fc0b1799daac09ad1da6f6df52b4007"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun May 11 15:48:51 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun May 11 15:52:24 2025 +0000"
      },
      "message": "Canvas: Center icons on details panel\n\nChange-Id: I8ef607f3bf756e028ddab00f79e4ec17bd4582bd\n"
    },
    {
      "commit": "8d0f635f2fc0b1799daac09ad1da6f6df52b4007",
      "tree": "e519ea69761f2940c46a874e6b62ec005e634afe",
      "parents": [
        "880de16983c918c987493ce6a760574ac484db74"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun May 11 13:29:33 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun May 11 13:34:20 2025 +0000"
      },
      "message": "Canvas: Enable ESLint\n\nChange-Id: Ia9e84976b6d237f34c773eb55054fe244c625624\n"
    },
    {
      "commit": "880de16983c918c987493ce6a760574ac484db74",
      "tree": "1866fce94e07a7d72d0125fb18e967f80e958048",
      "parents": [
        "3a921b87b82ac5df520aaebf26ab344b9d86e033"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun May 11 07:26:00 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun May 11 08:05:11 2025 +0000"
      },
      "message": "Canvas: Improve layout\n\nChange-Id: Ife4f14d23eefc0ef0cb6b189446590fc42b8d797\n"
    },
    {
      "commit": "3a921b87b82ac5df520aaebf26ab344b9d86e033",
      "tree": "d2298543125613d4f5e8ec2ece6f9acf2182e8b6",
      "parents": [
        "b87415ce8478284b94e9dbe501b3b8d6fd2c9932"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat May 10 07:36:09 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun May 11 07:07:51 2025 +0000"
      },
      "message": "Canvas: Logs tab\n\nChange-Id: Iddf52dbce6fb2090f095cecb04bafcb50c47e4a7\n"
    },
    {
      "commit": "7d81370d1949b9ffaf0b868c9c7a5b149e3f1436",
      "tree": "3817caf7ea73897995179e67381189d0ea15371f",
      "parents": [
        "5cf364c29b4ddfca0a1bf8fc6238493c4ec63b77"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 08 18:29:52 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 08 18:29:52 2025 +0000"
      },
      "message": "Canvas: Implement worker to manager communication\n\nRegister workers on manager side.\nLet user force reload service workers.\n\nChange-Id: I2635a04167e7c853151d8a1f5c3511646181a063\n"
    },
    {
      "commit": "5cf364c29b4ddfca0a1bf8fc6238493c4ec63b77",
      "tree": "3b11f8593e2033ae857e4a5a0ecf5deea94294e2",
      "parents": [
        "d002661f89c59edbc999b087338b122799bcd612"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 08 16:01:21 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 08 16:06:34 2025 +0000"
      },
      "message": "Canvas: Fix to run validation on change in nodes\n\nChange-Id: Ie1798e65c83e673c90d7df556729cc509a9d2d9c\n"
    },
    {
      "commit": "d002661f89c59edbc999b087338b122799bcd612",
      "tree": "d402604eb544d9dcbb35e8d03a1c98c038abdc22",
      "parents": [
        "a2a845ccefb8b903692e6d2ce2bc0bfa10020538"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 08 13:00:36 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 08 14:48:38 2025 +0000"
      },
      "message": "Canvas: Prettier\n\nChange-Id: I620dde109df0f29f0c85c6fe150e347d2c32a03e\n"
    },
    {
      "commit": "a2a845ccefb8b903692e6d2ce2bc0bfa10020538",
      "tree": "a60d522a2bcb6540df73d2ef97421a7ee8a86991",
      "parents": [
        "6cf8c27f545361e4a8a960719436e281c2f934a7"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 08 11:27:14 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 08 13:12:58 2025 +0000"
      },
      "message": "Canvas: UI polish\n\nChange-Id: I3c7ae930917213dee8dddffdd9b14be7a80dab0a\n"
    },
    {
      "commit": "6cf8c27f545361e4a8a960719436e281c2f934a7",
      "tree": "f417f3e284df4822576ce2146c79962b00ab345a",
      "parents": [
        "7f98e77c44ec4af976f5299a7056ffde1fc27744"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 08 09:01:38 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 08 09:57:05 2025 +0000"
      },
      "message": "Canvas: Fix linter errors\n\nChange-Id: I602c1562d4ab2d948bb4dcf6caf66f185585d720\n"
    },
    {
      "commit": "7f98e77c44ec4af976f5299a7056ffde1fc27744",
      "tree": "dc64c9a9402db679374fa5c18c22d51597e92551",
      "parents": [
        "fe746ddf83f56a8d125657361023081a0047c5a6"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed May 07 11:00:14 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 08 07:55:03 2025 +0000"
      },
      "message": "Canvas: Github repository picker\n\nChange-Id: Icb8f2ffbef2894b2fdea4e4c13c74c0f4970506b\n"
    },
    {
      "commit": "fe746ddf83f56a8d125657361023081a0047c5a6",
      "tree": "cfcbd005d555a7a03993d4fa9c5a533ee82cbe71",
      "parents": [
        "9b2d49654845dc39a0632045bd8a9011cbb5f4c1"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed May 07 09:57:40 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed May 07 09:57:40 2025 +0000"
      },
      "message": "Canvas: Sort resource details by node type\n\nChange-Id: Ie5f9a149bf9700a08922e355bf8ca541fc915a0a\n"
    },
    {
      "commit": "9b2d49654845dc39a0632045bd8a9011cbb5f4c1",
      "tree": "2c9cbd71624b2265a71d297b6ddcb3bc2fb10018",
      "parents": [
        "33990c6ebc130fbd0036595da9f9a3a1168bfb6c"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed May 07 04:59:39 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed May 07 04:59:39 2025 +0000"
      },
      "message": "Canvas: Expose ingress auth details\n\nChange-Id: I337163f5919db5c8e48d6d429dcdc6420b196d3d\n"
    },
    {
      "commit": "33990c6ebc130fbd0036595da9f9a3a1168bfb6c",
      "tree": "99eed7c2a6d8df650c5b44896cc629fd7f059153",
      "parents": [
        "c0b27cce9a248731cad64e81c26ca820ab654cf8"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 06 07:51:24 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 06 07:56:16 2025 +0000"
      },
      "message": "Canvas: Form to choose source repository\n\nChange-Id: I48011d6374e036ead934815ed8e88dc0d1bb914e\n"
    }
  ],
  "next": "911656100a3085f8a5edd5af1f5d393d4194450a"
}
