)]}'
{
  "log": [
    {
      "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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"
    },
    {
      "commit": "911656100a3085f8a5edd5af1f5d393d4194450a",
      "tree": "024925d54ac0d43b73c466afa57896a9fb657c08",
      "parents": [
        "a6024622a8f30cce101bf3ddca0e64e552f1e91c"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat May 03 17:07:38 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat May 03 17:07:38 2025 +0000"
      },
      "message": "Canvas: Process pre-build commands\n\nChange-Id: I236f154c430b9ea29a4e0e491e1de27e78438440\n"
    },
    {
      "commit": "aba9a968f7d5f9dba7859834a0510c00f03e1127",
      "tree": "958592c8de697d2e4939b50d81f2a30b859f0454",
      "parents": [
        "b68003c7a77599e167ac4294d6c9dabfa6594683"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Apr 25 14:19:40 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Apr 25 15:19:04 2025 +0000"
      },
      "message": "Canvas: Render network nodes\n\nChange-Id: I63938da205af9377a1e210c0e972591142211a68\n"
    },
    {
      "commit": "1dc800a666122965d7ea81d5e1c96bbea37cf98f",
      "tree": "c263d81b18c1cf9e1a4980d729f13bd9805ad73e",
      "parents": [
        "268787aa0dc98f3fa5388bd71b453552a8c57d34"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Apr 24 17:15:43 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Apr 24 17:21:52 2025 +0000"
      },
      "message": "Canvas: Monitor deployment\n\nChange-Id: If5895724025e8e4082a372563c159cbf2216b97f\n"
    },
    {
      "commit": "b41ecae932b01a4749deb9ee9bff12f7e0f61435",
      "tree": "6702bde696abc9efa510b3044b7457825872fb52",
      "parents": [
        "355883e7e506c7fc1da4ff942f4e4baad60982d3"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Apr 24 08:46:50 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Apr 24 08:46:50 2025 +0000"
      },
      "message": "Canvas: Update edges on port removal\n\nChange-Id: I5f550f0511257207db4a2f0469957cc4449514bd\n"
    },
    {
      "commit": "355883e7e506c7fc1da4ff942f4e4baad60982d3",
      "tree": "da73698f6896bd66d2c1e572853b08c0a6e09ba5",
      "parents": [
        "4e3b24d8aa1e06d9e0bcc00e645195006206df27"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Apr 23 14:10:51 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Apr 23 14:10:55 2025 +0000"
      },
      "message": "Canvas: Include service ports in self env vars\n\nChange-Id: Iaef1b27069bc2672429e0b23ea42d6a305bf4e6d\n"
    },
    {
      "commit": "218e81323ccf3ce1ec70de849ea42dde8d7dc43b",
      "tree": "4ed8738fac63d66b87ffa13f8dde6c94f15d592a",
      "parents": [
        "a421b06990b7c323b4ef5fe84f7415a4fab820de"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Apr 22 17:11:58 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Apr 22 17:44:09 2025 +0000"
      },
      "message": "Canvas: Organize back and front components\n\nChange-Id: I0f2c0bbe47b2693127a367a72321b24eb1af7796\n"
    },
    {
      "commit": "5f2f100451baee800b04a0871f6c268ed0dc7daa",
      "tree": "2da0211831c380f04989725167520f96fe24d9d4",
      "parents": [
        "9c43d0c4d9840f1d914313064f02f71c9de76f4a"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Mar 20 18:38:48 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Mar 27 14:49:06 2025 +0400"
      },
      "message": "Canvas: build application infrastructure with drag and drop\n\nChange-Id: I5cfd12e67794f3376c5c025af29470d52d77cf16\n"
    }
  ]
}
