)]}'
{
  "log": [
    {
      "commit": "a8ac1500f4313203d0b0d453a59aa016a2b93859",
      "tree": "2fe098765aa9f7115b3bcfbde6e70138b480f0fa",
      "parents": [
        "693c9503f202a76c41f96aa6fd501664a1f8f134"
      ],
      "author": {
        "name": "Philip Zeyliger",
        "email": "philip@bold.dev",
        "time": "Sun Jul 27 21:24:42 2025 -0700"
      },
      "committer": {
        "name": "Philip Zeyliger",
        "email": "philip@bold.dev",
        "time": "Sun Jul 27 21:24:42 2025 -0700"
      },
      "message": "sketch/mcp: fix mcp sse stream context cancellation\n\nThe SSE stream was being started with a timeout context that got canceled\nimmediately after connection establishment, causing \u0027context canceled\u0027 errors\nand breaking MCP tool execution with \u0027Could not find session\u0027 errors.\n\nSeparate connection establishment timeout from long-running SSE stream context:\n- Use agent\u0027s main context for mcpClient.Start() (SSE stream lifecycle)\n- Use separate timeout context for Initialize() and ListTools() (connection only)\n\nFixes SSE stream persistence and enables successful MCP tool execution.\n\nCo-Authored-By: sketch \u003chello@sketch.dev\u003e\nChange-ID: sb595ea17e6f1205ck\n"
    },
    {
      "commit": "c540df7f730eb0e07a5aa543ec128dba38a7cf81",
      "tree": "02c00aabebdb39b72cc272a33c3d787f1809a602",
      "parents": [
        "e67e3b65003d21f68c3736a563a94e5ad1ba26b0"
      ],
      "author": {
        "name": "Philip Zeyliger",
        "email": "philip@bold.dev",
        "time": "Fri Jul 25 09:21:56 2025 -0700"
      },
      "committer": {
        "name": "Philip Zeyliger",
        "email": "philip@bold.dev",
        "time": "Fri Jul 25 09:21:56 2025 -0700"
      },
      "message": "sketch/mcp: increase connection and tool timeouts\n"
    },
    {
      "commit": "43b60b9b6906a2077175bcb1c3ea53b90d92a9f8",
      "tree": "14ecadd5c94db811087f97b0e7858f1482ff5f4e",
      "parents": [
        "95354b15c6469f871ecabd778c04304bcce16195"
      ],
      "author": {
        "name": "Josh Bleecher Snyder",
        "email": "josharian@gmail.com",
        "time": "Mon Jul 21 14:57:10 2025 -0700"
      },
      "committer": {
        "name": "Josh Bleecher Snyder",
        "email": "josharian@gmail.com",
        "time": "Mon Jul 21 19:46:45 2025 -0700"
      },
      "message": "llm: make Tool.Run return ToolOut\n\nThis is preliminary work towards\nallowing tools to add additional information.\nNo functional changes (at least, that\u0027s the intent).\n"
    },
    {
      "commit": "44de46c38652047d3ff70b59f69d00bad4985561",
      "tree": "ada533469ed18d0e3ccc29870a620e5b5edef219",
      "parents": [
        "15a0ffa7a68f5915eaed6044260edc794c806283"
      ],
      "author": {
        "name": "Josh Bleecher Snyder",
        "email": "josharian@gmail.com",
        "time": "Mon Jul 21 16:14:34 2025 -0700"
      },
      "committer": {
        "name": "Josh Bleecher Snyder",
        "email": "josharian@gmail.com",
        "time": "Mon Jul 21 19:46:45 2025 -0700"
      },
      "message": "mcp: fix ineffectual break\n\nCaught by gopls, surfaced by sketch.\n"
    },
    {
      "commit": "08b073b79f4372e2f61c03ba17e5d86a5cf7a769",
      "tree": "9cafdbc3e14006f1d338ec350035a3d905e266a7",
      "parents": [
        "d11714374f290a693b724a3e2b7d5b81b49da803"
      ],
      "author": {
        "name": "Philip Zeyliger",
        "email": "philip@bold.dev",
        "time": "Fri Jul 18 10:40:00 2025 -0700"
      },
      "committer": {
        "name": "Autoformatter",
        "email": "bot@sketch.dev",
        "time": "Fri Jul 18 17:41:06 2025 +0000"
      },
      "message": "sketch/mcp: add docs and test out playwright, and extend timeouts.\n"
    },
    {
      "commit": "4201bde20034516105d17deca502c6e76e7db603",
      "tree": "7c39dbc55cfc88e3aa2f6866f5400c7790fd7fb6",
      "parents": [
        "cad67b0ac0e374dd687ca4ef8abddbc9c4323fd5"
      ],
      "author": {
        "name": "Philip Zeyliger",
        "email": "philip@bold.dev",
        "time": "Fri Jun 27 17:22:43 2025 -0700"
      },
      "committer": {
        "name": "Philip Zeyliger",
        "email": "philip@bold.dev",
        "time": "Fri Jun 27 17:22:43 2025 -0700"
      },
      "message": "Replace skaband tools with a sketch.dev MCP client\n\nsketch.dev provides seeing recent sessions and reading a past\nsession as tool.\n"
    },
    {
      "commit": "194bfa8cc3970d28f2d072dc82142e24b7e56c9f",
      "tree": "8cf0872d8d1d6b1ab5eec4ef1f20ab7b201a7de9",
      "parents": [
        "ba351be3a9e50c67baef59af5ee35e3b654727e1"
      ],
      "author": {
        "name": "Philip Zeyliger",
        "email": "philip@bold.dev",
        "time": "Tue Jun 24 06:03:06 2025 -0700"
      },
      "committer": {
        "name": "Philip Zeyliger",
        "email": "philip@bold.dev",
        "time": "Tue Jun 24 06:03:06 2025 -0700"
      },
      "message": "sketch: add MCP support\n\nLets you initialize extra tools via MCP. This is additive, so it\u0027s\nharmless enough.\n\nHere are some examples of the kind of things you can pass to the -mcp\nflag.\n\n  {\"name\": \"context7\", \"type\": \"http\", \"url\": \"https://mcp.context7.com/mcp\"}\n  {\"name\": \"context7-http\", \"type\": \"http\", \"url\": \"https://mcp.context7.com/mcp\"}\n  {\"name\": \"context7-stdio\", \"type\": \"stdio\", \"command\": \"npx\", \"args\": [\"-y\", \"@upstash/context7-mcp\"]}\n  {\"name\": \"context7-sse\", \"type\": \"sse\", \"url\": \"https://mcp.context7.com/sse\"}\n  {\"name\": \"local-tool\", \"type\": \"stdio\", \"command\": \"my_tool\", \"args\": [\"--option\", \"value\"], \"env\": {\"TOKEN\": \"secret\"}}\n  { \"name\": \"playwright\", \"command\": \"npx\", \"args\": [ \"@playwright/mcp@latest\" ]}\n\nCo-Authored-By: sketch \u003chello@sketch.dev\u003e\nChange-ID: s259a35d11e7bd660k\n"
    }
  ]
}
