)]}'
{
  "log": [
    {
      "commit": "254c49faa2537d79e1394c4109f48a6e0990967c",
      "tree": "3b13d86f48e45846dc225ccd24253f5b0dca0398",
      "parents": [
        "55b4ab50d0ee61e15825cb4254cfc63b8f5489bd"
      ],
      "author": {
        "name": "Philip Zeyliger",
        "email": "philip@bold.dev",
        "time": "Thu Jul 17 17:26:24 2025 -0700"
      },
      "committer": {
        "name": "Autoformatter",
        "email": "bot@sketch.dev",
        "time": "Fri Jul 18 00:40:30 2025 +0000"
      },
      "message": "sketch: \"git push\" button\n\nUltimately, we want to allow users to push their changes to github, and\nthereby do a good chunk of work without resorting to the terminal (and\nfiguring out how to move the git references around, which requires a\nbunch of esotiric and annoying expertise).\n\nThis commit introduces:\n\n1. For outtie\u0027s HTTP server (which is now comically Go HTTP -\u003e\n   CGI-effing-bin -\u003e git -\u003e shell script -\u003e git in this case), there\u0027s a\n   custom git hook that forwards changes to refs/remotes/origin/foo to\n   origin/foo. This is a git proxy of sorts. By forwarding the\n   SSH_AUTH_SOCK, we can use outtie\u0027s auth options without giving innie\n   the actual credentials. This works by creating a temporary directory\n   for git hooks (for outtie).\n\n2. Innie sets up a new remote, \"upstream\" when a \"passthrough-upstream\"\n   flag is pasksed. This remote kind of looks like the real upstream (so\n   upstream/foo) is fetched. This will let the agent handle rebases\n   better.\n\n3. Innie exposes a /pushinfo handler that returns the list of remotes\n   and the current commit and such. These have nice display names for\n   the outtie\u0027s machine and github if useful.\n\n   There\u0027s also a /push handler. This is the thing that knows about the\n   refs/remotes/origin/foo thing. There\u0027s no magic git push refspec that\n   makes this all work without that, I think. (Maybe there is? I don\u0027t\n   think there is.)\n\n   Note that there\u0027s been some changes about what the remotes look like,\n   and when we use the remotes and when we use agent.GitOrigin().\n   We may be able to simplify this by using git\u0027s insteadof\n   configurations, but I think it\u0027s fine.\n\n4. The web UI exposes a button to push, choose the remote and branch,\n   and such. If it can\u0027t do the push, you\u0027ll get a button to try to get\n   the agent to rebase.\n\n   We don\u0027t allow force pushes in the UI. We\u0027re treating those\n   as an advanced feature, and, if you need to do that, you can\n   figure it out.\n\nThis was collaboration with a gazillion sketch sessions.\n"
    },
    {
      "commit": "e79a44b8334dd9196105e26d446e44de7ef5d255",
      "tree": "efb6536262c9d3b469fc8d21bc2287bcd63c1c93",
      "parents": [
        "0269340cb3925dd8c5f5ed8ad7ebcd743f66fe6c"
      ],
      "author": {
        "name": "Philip Zeyliger",
        "email": "philip@bold.dev",
        "time": "Wed Jul 16 21:00:43 2025 -0700"
      },
      "committer": {
        "name": "Philip Zeyliger",
        "email": "philip@bold.dev",
        "time": "Thu Jul 17 12:59:54 2025 -0700"
      },
      "message": "Updating Sketch\u0027s dear_llm\n"
    },
    {
      "commit": "322dae94823e6e55ee8e5d0c567cb972f231695c",
      "tree": "e9f514f654fe1451ee0c7fff10c9eedd1a27ff81",
      "parents": [
        "43448c674f4cf1f6de7950f6ec9e2d197d7f700a"
      ],
      "author": {
        "name": "Josh Bleecher Snyder",
        "email": "josharian@gmail.com",
        "time": "Wed Jun 04 12:27:07 2025 -0700"
      },
      "committer": {
        "name": "Josh Bleecher Snyder",
        "email": "josharian@gmail.com",
        "time": "Wed Jun 04 14:00:10 2025 -0700"
      },
      "message": "dear_llm: simplify, shorten\n"
    },
    {
      "commit": "d9b1eb4d5342d6be3b4f975463a3831abb581f7f",
      "tree": "318125d6d8c1081d89f5f8a6a5cc6ed2a48cb633",
      "parents": [
        "9500617d20b037b9ad1f88eb7550068679832a4d"
      ],
      "author": {
        "name": "Josh Bleecher Snyder",
        "email": "josharian@gmail.com",
        "time": "Wed May 28 21:59:54 2025 -0700"
      },
      "committer": {
        "name": "Josh Bleecher Snyder",
        "email": "josharian@gmail.com",
        "time": "Thu May 29 06:39:30 2025 -0700"
      },
      "message": "dear_llm.md: more hints about how to take screenshots"
    },
    {
      "commit": "78e7cf986aa461b62a923f6f5175ab94a12e2536",
      "tree": "e01e7b04262ec71ae290ca77eb883f69acf1b3af",
      "parents": [
        "dbfd36a4149c03a501be12aacfecdbe237c7b7bf"
      ],
      "author": {
        "name": "Josh Bleecher Snyder",
        "email": "josharian@gmail.com",
        "time": "Fri May 23 14:33:34 2025 -0700"
      },
      "committer": {
        "name": "Josh Bleecher Snyder",
        "email": "josharian@gmail.com",
        "time": "Sat May 24 12:06:12 2025 -0700"
      },
      "message": "dear_llm.md: help prevent industrial accidents"
    },
    {
      "commit": "6e35332ceac45166d6dd549d1e3d94937f683320",
      "tree": "87b4eeea74b9f6d9786d99983a976c1cf0f7ff05",
      "parents": [
        "8d8b7ac6b00b1d0b3a2c6d3a4079e2c2fb76cc8a"
      ],
      "author": {
        "name": "Josh Bleecher Snyder",
        "email": "josharian@gmail.com",
        "time": "Wed May 21 18:21:24 2025 +0000"
      },
      "committer": {
        "name": "Josh Bleecher Snyder",
        "email": "josharian@gmail.com",
        "time": "Wed May 21 11:36:32 2025 -0700"
      },
      "message": "all: remove testify\n\nCo-Authored-By: sketch \u003chello@sketch.dev\u003e\nChange-ID: s51244611964f2413k"
    },
    {
      "commit": "385da541a187a3499bf8d6368a66c2ba1109c398",
      "tree": "611b347ce238f4201ba998d331f4798a35e73b6c",
      "parents": [
        "31785aed38e0f63fa736430c6240c8a76b8285dc"
      ],
      "author": {
        "name": "Josh Bleecher Snyder",
        "email": "josharian@gmail.com",
        "time": "Mon May 12 19:18:10 2025 -0700"
      },
      "committer": {
        "name": "Josh Bleecher Snyder",
        "email": "josharian@gmail.com",
        "time": "Mon May 12 19:18:10 2025 -0700"
      },
      "message": "dear_llm: point out the meta\n\nHopefully this will reduce some of the confusion I\u0027ve been seeing..."
    },
    {
      "commit": "6d4c7eadb2d465aa665288acc3f45e693d9a76d3",
      "tree": "2e5128fc06d72237a292d038008ab15bf59e9b59",
      "parents": [
        "98b64d1b30d8715a9238fcda7ecedd313c37b5b7"
      ],
      "author": {
        "name": "Josh Bleecher Snyder",
        "email": "josharian@gmail.com",
        "time": "Mon May 12 12:14:24 2025 -0700"
      },
      "committer": {
        "name": "Josh Bleecher Snyder",
        "email": "josharian@gmail.com",
        "time": "Mon May 12 17:36:19 2025 -0700"
      },
      "message": "dear_llm: update\n\nCo-Authored-By: sketch \u003chello@sketch.dev\u003e\nChange-ID: s9141e33d762836c9k"
    }
  ]
}
