avatar vian's notes

Learning in public, one post at a time

  • HOME
  • TAGS
  • ARCHIVES
  • ABOUT
Home
vian's notes

CC BY-NC 4.0: The License I Chose for This Blog

You know that little badge at the bottom of every post? The one that says a Creative Commons license and links somewhere? I didn’t put it there. It came with the theme. I’m using Chirpy, a Jekyll...

Aug 30, 2026

Stop Watching Five Tabs: A Terminal-First Approach to K8s Logs

The Five-Tab Problem You know the drill. A request hits five microservices. Something breaks. You open five terminal tabs — kubectl logs -f pod/foo-abc123, kubectl logs -f pod/foo-xyz789 — and sc...

Aug 25, 2026

The Server Split That Almost Didn't Happen

The first import was the first failure: ‘ERR_MODULE_NOT_FOUND’. The code wouldn’t even boot. But back up. Three months ago I wrote about the monorepo split. API server, dashboard, CLI — three work...

Aug 20, 2026

Your PID File Is a Lie: What Cloudflare Tunnel Taught Me About Process Supervision

Two ways to start the same server. One worked. The other gave me Bad Gateway. They ran the same code, listened on the same port, used the same config. The difference was invisible. Context I am ...

Aug 15, 2026

I Opened My First Open Source PRs. None of Them Are Merged Yet.

I’ve been writing software professionally for years, but somehow I had never really contributed to an open-source project. I’ve used plenty of them. Forked them. Patched them. Built things on top ...

Aug 13, 2026

Headroom, Round Two: Four Walls Between Me and a Working Token Saver

Three days ago I wrote an autopsy about ripping a dead Headroom integration out of my 9router fork. The endpoint I was calling didn’t exist in the version I was running, the failure was swallowed s...

Aug 10, 2026

Checking Upstream: What v0.5.50 Gained for 9router

I hadn’t checked upstream in a while. My fork had accumulated enough custom code — combos, middleware, the memory layer — that pulling updates felt like asking for trouble. Easier to stay isolated....

Aug 9, 2026

Debugging 9router Headroom: The Silent 404 That Masked a Version Mismatch

I found Headroom in a random LinkedIn post. It looked great — a compression proxy that sits between your app and the LLM providers, strips redundant context, saves tokens. The pitch was compelling....

Aug 7, 2026

The 403 That Wasn't: How Warp, 9router, and Cloudflare Masked Two Separate Failures

My Warp agent stopped talking to 9router. Quick background: 9router is my AI routing layer — a Hono server that proxies LLM requests through fallback providers. It runs locally via a Cloudflare tu...

Jul 31, 2026

Building Memory Into 9router: A Proxy-Layer Experiment

Every coding AI I tried was great at problems, terrible at context. I’d start a new session and describe my stack, my preferences, my ongoing projects — everything the AI needed to be useful. Next...

Jul 24, 2026
  • 1
  • 2
  • 3
  • 2 / 3

Recently Updated

  • OpenCode V2: Deciding to Upgrade and the Journey There
  • What Changed in OpenCode V2
  • OpenCode V2 + 9router: 9 Traps in a Custom Provider Setup
  • Your MCP Server Isn't Timing Out. Your Laptop Is Asleep.
  • Saving OpenCode Sessions After Laptop Swap

Trending Tags

9router technical tooling opencode postmortem ade ai personal warp agents

© 2026 Alvian. Some rights reserved.

This blog is open source — view on GitHub

Using the Chirpy theme for Jekyll.

Trending Tags

9router technical tooling opencode postmortem ade ai personal warp agents