Notes from the lab

Build logs, architecture decisions, and the occasional rabbit hole. Every post is in English and Korean, and the tape says which unit it's about.

November 2026

  1. Nov 3
    More Rules Made It Worse. A Ledger Fixed It.

    Riroa Live has one LLM write a five-character social feed, one day at a time. Characters forgot promises, let grudges fade, and kept repeating the same invitation. Server-held state fixed that, prompt rules didn't, and most of the score I gained on one scenario turned out to be fitted to it.

    한국어로 규칙을 더할수록 꼬였고, 고친 건 장부였다

    Riroa

October 2026

  1. Oct 29
    Korean IME in macOS WebKit Leaves Only the First Consonant (xterm.js, Monaco)

    Type Korean into xterm.js inside a Tauri app and most syllables come out as just their first consonant, because macOS WebKit sends Hangul composition without composition events. In the Monaco editor the same cause made the line shake, and the fix was different.

    한국어로 macOS WebKit에서 한글이 자음만 남는 문제 (xterm.js, Monaco)

    vaquita
  2. Oct 25
    Reading Agent Status Without Hooks

    Claude Code and Codex now tell the terminal when they're working, waiting on you, or finished, through OSC 7501, an escape sequence not yet three weeks old. Listening to it takes no hooks, but the two agents speak it differently, and the hard part turns out to be knowing when a turn is done.

    한국어로 hook 없이 에이전트 상태 읽기

    vaquita
  3. Oct 6
    The Like Never Moved

    When a song's upload dies, YouTube Music seems to move your like to a replacement. It doesn't. Liked songs is your YouTube likes shown in the same order, and lining the two lists up shows which like is behind every song.

    한국어로 좋아요는 옮겨진 적이 없었다

    like-surgeon
  4. Oct 4
    Renderable Isn't Good

    Getting an agent to draw and rig a 2D character that looks right took a reference to aim at, a critic that isn't the artist, and a second reference for the head turn. The turn is still the weakest score.

    한국어로 렌더된다고 잘 만든 건 아니다

    Iki
  5. Oct 3
    From 0.52 to 0.90: Five Steps to a Better Chord Analyzer

    How chordotomy's chord accuracy climbed, from a DSP-only first version to a pretrained model with better beats, and what each step cost.

    한국어로 0.52에서 0.90까지: 코드 인식 정확도를 올린 다섯 단계

    chordotomy
  6. Oct 3
    The Model Already Knew

    Three bugs in my chord analyzer, two of them found with one J-pop song. Each time, the model had the right answer and my code dropped it.

    한국어로 모델은 이미 알고 있었다

    chordotomy

September 2026

  1. Sep 28
    The CPUs Weren't Rigged. My Emulator Was.

    Every CPU duelist in an old Yu-Gi-Oh! DS game has a rating that moves, and nobody had written down how. Pinning it down took a sum that came out exact, an emulator with nobody at the controls, and a tournament draw that only looked rigged.

    한국어로 조작된 건 대진이 아니라 내 에뮬레이터였다

    WC2008 Rating Lab
  2. Sep 17
    The Server Finished. The Character Didn't.

    My voice character's face kept resetting mid-sentence. Fixing it took a deleted heuristic, a barge-in that asked the wrong question, and a mock that tested an event order the SDK can't produce.

    한국어로 서버는 끝났는데 캐릭터는 아직 말하고 있었다

    Charivo

August 2026

  1. Aug 18
    My 300-Line Agent Protocol Was Working Around One Parameter

    I measured why an autonomous loop burned a 5-hour limit so fast, found an upstream bug, and dropping the one parameter behind it deleted most of the protocol I'd just written about.

    한국어로 내 300줄짜리 에이전트 프로토콜은 파라미터 하나를 우회하고 있었다

    hyperclaude

May 2026

  1. May 22
    How My Agent-Team Revise Loop Earned a 300-Line Protocol

    Five dogfooded failure modes that turned seven lines of pseudocode into a state machine — inside hyperclaude's plan-loop and implement-loop.

    한국어로 내 agent-team 리바이즈 루프가 300줄짜리 프로토콜을 갖게 된 이유

    hyperclaude
  2. May 9
    Three ways to generate Open Graph images, and the one I built

    Hand-designed PNGs, param-driven services like vercel/og-image, and a URL-driven generator built on @vercel/og — why the third one won.

    한국어로 Open Graph 이미지 만드는 세 가지 방법, 그중 내가 만든 하나

    DOGimg
  3. May 7
    Why Google Search Console can't fetch your github.io sitemap

    Why every diagnostic on the artifact came back green, why the public theories don't quite agree on the cause, and the custom domain that finally fixed it.

    한국어로 Google Search Console이 github.io 사이트맵을 못 가져오는 이유

  4. May 5
    Chrome Extension OAuth: From getAuthToken to launchWebAuthFlow

    Why Chrome's account chooser sometimes silently swallows your cancel callback, why the obvious band-aid races itself, and the primitive that side-steps both.

    한국어로 Chrome 확장 프로그램 OAuth: getAuthToken에서 launchWebAuthFlow로

    Commentarium
  5. May 4
    Three Agents, One Document: A Claude Code Multi-Agent Doc Pipeline

    A lightweight content pipeline for a Korean backend interview guide — why splitting writer, reviewer, and consistency-checker beats a single all-in-one agent.

    한국어로 에이전트 셋, 문서 하나: Claude Code 멀티 에이전트 문서 파이프라인

    Backend Interview Guide
  6. May 3
    Chrome Extension Iframe Auth: From chrome.cookies to CHIPS

    How a Chrome extension's iframe survives third-party cookie blocking — without bypassing the browser.

    한국어로 Chrome 확장 프로그램 iframe 인증: chrome.cookies에서 CHIPS로

    Commentarium