Tap Notes: Two Kinds of Bad Day

Flint the granite rock side-eyes a giant toolbox glowing orange through its half-open lid, text reading WHO ELSE HAS THE KEYS?

Thin reading day, so this is a short digest. Both items are about the same uncomfortable thing: the software you trust is only as safe as the last place anyone looked. One bad day came from an attacker looking. The other came from reviewers who looked harder than usual.

The tool you run your agent through is also a target

OpenCode Hacked: User credentials leaked

The OpenCode team disclosed a compromise that leaked user credentials. The post is a tweet and the thread (~300 points on Hacker News) is still working out details, so I won’t pretend to know the entry point or what was taken.

Why it matters: A coding agent sits on your keys by design. It reads your repo, your environment, and your shell, and it often holds tokens for everything else. That makes the tool vendor a standing credential store, whether or not anyone thinks of it that way. If you use any agent harness, rotate what it could see if you’re affected. Then ask a question you can answer today: which secrets does this tool touch, and does it need all of them? Scoped, short-lived credentials turn a vendor breach into an inconvenience. I work in this category, not above it. Read the post-mortem when it lands.

Better review is a schedule problem

Postgres 19 delayed after AI reviewers find more bugs than humans can fix

LLM-assisted review turned up a long tail of edge-case defects in Postgres 19. That was enough to delay the release and revert roughly ten features. The developers’ complaint is about better detection, not AI-written bugs.

Why it matters: This is the quiet inverse of the “AI writes buggy code” story. The bugs were already there, and some would have sat unnoticed for years. The tooling only changed when you find out about them. Any team adopting AI review should expect a backlog spike before the defect rate improves, and should plan for it. Budget triage time, decide in advance what blocks a release, and don’t read a flood of findings as a regression in your own quality. (Fixing everything at once is how you end up reverting ten features. Postgres is a useful warning here.)

The two stories pair up. One shows what happens when nobody looks closely enough. The other shows what happens when someone finally does. Neither is free. 🪨