
Today’s issue: Merge topologies, finding the courage to go full ESM, and the colorless, odorless gas that makes up 1% of Earth’s atmosphere.
Welcome to #526.


Just a developer and their beloved agent harness
I’ve always thought that developers loving their tools was a form of Stockholm Syndrome, but over the past year few tools have gotten more admiration than Pi, which just released version 1.0 this past week.
If you haven’t heard of it or used it, Pi is a minimalist agent harness written in TypeScript whose original claim to fame was powering OpenClaw. Like most harnesses, it has a TUI, CLI and SDK but I never really “got” why developers liked it so much. Then I remembered how many developers I’ve met who exclusively wear conference t-shirts and cargo shorts, that can’t wait to tell you about their custom Neovim config. For these developers, Pi is perfection.
Why developers love Pi:
Of the major harnesses that support multiple models, only OpenCode and Pi are open source. And we all know open source is developer catnip. But what sets Pi apart is your ability to customize the tool. Its core is intentionally minimal and until v0.99, it didn’t even support MCP. Instead, it exposes an extension API which lets you install custom packages, or more impressively, lets you extend Pi directly via a prompt.
What’s new in Pi 1.0
Pi Durable: The Pi team created a new package that allows developers to create and deploy long-running agents to the cloud that can survive crashes. It handles durable storage and memory for your agent via SQLite and JSONL, and provides a small adapter that allows you to connect to whatever runtime and storage solution you’re using.
Codemode: This new Pi feature allows models to generate scripts that run in a QuickJS sandbox. These scripts can call Pi or MCP tools directly and transform the results, saving you precious tokens. It can even be used to run other non-LLM models such as classifiers and image models.
Virtual models: Pi lets you create “virtual models” you can select with the /model selector, but under the hood, they’re just extensions. These extensions can use a classifier or some other mechanism to route queries to different models, giving you control over the speed and cost of each type of query.
Bottom line: If you’re the type of developer who keeps your dotfile config on GitHub and you haven’t tried Pi yet, what are you even doing with your life? Also maybe take a shower today.


Being flooded with PRs isn't a problem if you've got power tools.
Review the PR that matters most. CodeRabbit Triage ranks work across repositories, tells you what to review next and what needs your action. It also flags low-risk PRs that may be ready to close, so your queue shrinks effectively.
Prioritize your PR flood with CodeRabbit Triage.

Want AI agents to call your website directly? Modern React sites can add WebMCP support with webmcp-react. Zod-first and Strict Mode safe.
const products = [
{ name: 'Grapes', price: 2 },
{ name: 'Banana', price: 1 },
{ name: 'Apple', price: 3 },
{ name: 'Cherry', price: 2 },
{ name: 'Date', price: 1 }
];
products.sort((a, b) => a.price > b.price);

OpenAI hosted its annual developer conference where it announced all the products it copied from competitors the Decisions API (Jev), Dots (Muse), and GPT-6.1 Sol (Opus 5.5). Gotta sell that IPO baby.
GitHub wrote a blog about Git 2.56. It’s educational if flattening merge topologies is your passion.
Sentry is hosting a free workshop on October 20 to teach you how to speed up your debugging process by connecting your OpenTelemetry traces and logs to Sentry. Sign up today. [sponsored]
Josh Larson whipped up a little guide for making your own personal agent presumably to distract him from the start that Iowa State Football is off to this season.
After 6+ years of work, Jovi De Croock and the team released Preact 11, which has a new hydration system, automatic ref forwarding, and improved React compatibility. Well done 👏.
Speaking of major releases, Artem Zakharchenko released MSW (Mock Service Worker) v3, which is now pure ESM. #courage
For engineers leveraging coding agents, trusted infrastructure is key to security and governance. With Coder Agents, your teams can delegate tasks and research to AI agents, all on a self-hosted platform you already trust. [sponsored]
Big G released their latest frontier model Gemini 4 Argon, which, according to the TMBBs, scores higher than Astra, Fable, and Opus. The real question is, do we believe them?
Declan Chidlow covers all the new HTML and CSS features you should be using in your design system.
Only idiots write manual tests – modern engineering teams like Notion, Dropbox and LaunchDarkly use Meticulous to maintain e2e UI tests that cover every edge case of your web app. [sponsored]
Amelia Wattenberger wrote another visual essay about how AI is still in its terminal era. If you’re not familiar with her game, these are always good.
The Effect.ts team rebuilt the library from the ground up and released version 4.0, which is 5x smaller, 6.4x faster, and uses 86% less memory. My brain also uses 86% less memory than before but now I can’t remember what this library even does. Something with types?
When using the Array.sort method, the compare function should return a number, not a boolean. Returning a negative number will sort the first item before the second, a positive number will sort the second item before the first, and returning 0 will leave the items in the same order.
const products = [
{ name: 'Grapes', price: 2 },
{ name: 'Banana', price: 1 },
{ name: 'Apple', price: 3 },
{ name: 'Cherry', price: 2 },
{ name: 'Date', price: 1 }
];
products.sort((a, b) => a.price - b.price);