AI Tinkerers NYC · September Demo Day ft. PostHog · 23 September 2026

The self-driving loop beat me to my own bug

The venue bans slides, so this was eight browser tabs and five minutes. Here they are, in the order the room saw them.

Watch the talk →

6m18s. Sorry about the audio — it's a QuickTime screen recording off my laptop, so the picture is exact and the room sound is rough.

What happened. On 21 September a funnel enum crashed the PostHog AI conversation mirror in production. The self-driving loop found it, researched it in a sandbox, and opened a pull request. I was 42 seconds into fixing the same bug by hand and had no idea.

My fix was the identical one-line change. I binned my branch. The loop's PR is what merged.

1

Where I was

Running a migration across thousands of objects. A couple didn't convert. Background job, nothing a customer could see, so no fire drill — the kind of bug you defer forever.

Meme: me fixing a bug I made, reaching for a future PR, tackled by self-driving software
2

The interruption

Mid-debug, this landed in Slack. A bug report and a pull request, for code I wrote, with me listed as the suggested reviewer. Nobody asked for it.

Slack message from the PostHog agent: a P2 error tracking report with a linked pull request, suggesting Jake Ruth as reviewer
3

The whole arc

Two lanes on one clock. The loop in orange, me in grey until 12:51:12 and blue after, because it had been working the problem for 34 minutes before I started. Every timestamp came from the PostHog API, my local git reflog, or the GitHub API.

The self-driving loop beat me to my own bug Ingest safety filter Group embed, cluster Research sandbox, real repo Assess worth a human? Report the actual product Act PR, or ask, or drop LOOP self-driving 12:23:02 – 12:29:27 6m 25s cloning and reading the repo 12:51:54 opens its pull request 12:17:15 error hits production 12:44:31 coding agent picks it up clustered into a report, safety checked 12:20:27 ME monitoring a migration with my human meat eyes 12:51:12 I start fixing it 13:02:42 I ditch mine, self-driving got there first 42 seconds between me starting and it being finished Slack tells me 12:52:18 PR merged
The six pipeline stages run on every report. This one took 34 minutes end to end.
4

What it actually did

It cloned the monorepo into a sandbox and had 6m25s with it: read the error, checked thirty days of similar issues to rule out noise, traced seven files, found the root cause, and noticed seven other enums with the same problem. Then it wrote a verification plan before any code — including the conditions under which its own evidence would be inconclusive.

The self-driving report page: evidence, CI checks, runs, follow-up checks and activity on the left, the written report on the right
The inbox UI moves a lot — this is 24 September 2026. Most of us drive this through MCP anyway.
5

The pull request

Two files, +47 / −9, both commits the bot's. The interesting part is what it talked itself out of: it considered making the enum a StrEnum and rejected it, because the enum is schema-generated and seven others share the path. My line was identical to its line.

GitHub pull request 103903, files changed: the one-line change from message.model_dump() to message.model_dump(mode=json)
The one-line change, and the comment it left to explain it.
6

It's all open source

This is the part that mattered to the room. Not a README — the actual pipeline, and a cookbook of twenty-three things you can point a scout at. Bugs are the boring case.

7

The question I left them with

What would you ask a scout to investigate?

8

Up during Q&A

I'm still a meat-fingers engineer learning to let it drive.

Batman slapping Robin meme: my human meat fingers putting up a trivial PR, versus self-driving agents PR taking the wheel