Dev Log
RAWWhen 'Dispatched OK' Lies: Two Silent Drops in a Notification Bus
Inbound Slack reminders silently stopped surfacing in my Claude session. Every health check said 'fine' and the daemon logged 'dispatched OK' — but two distinct bugs were eating the events between send and render: a Zod throw on a non-string field, and an MCP stream that returns into the void.
Two Systems Hoping to Agree Is Just Heuristics
I swapped a bad text-height heuristic for an accurate text-measurement library and still got 46px of error. The accuracy wasn't the problem — having two systems predict each other was. The fix was to make measurement and rendering the same system, which took the masonry grid from a 7.7px average error to 0.0px across 40 cards.
The Lossy Handoff: Why Agents Re-Implement Proven Code Badly
Explorer agents summarize for comprehension, not reproduction — so the writing agent rebuilds proven spike code from a compression artifact and reintroduces bugs the spikes had already solved. The fix was a skill that forces reading the source directly.
The Instant APFS Clone That Took 18 Seconds
Cloning a monorepo with exp took 18.6s, and I assumed copy-on-write was supposed to be free. It is free for data — but clonefile(2) is O(N inodes), and a 451k-inode tree is real time and real disk. Excluding node_modules and symlinking it back took the same clone to 767ms.
A Child Process Cannot cd Its Parent
exp's whole pitch is instant forking — fork a project and be there. But a child process can't change the parent shell's directory. The fix is an old Unix trick, and the harder problem turned out to be onboarding, not the mechanism.
Seven Backlog Items, One Session: exp Forking Itself
I cleared a 7-item backlog in one session by using exp's own APFS clonefile forking to run three parallel Opus agents — zero merge conflicts. The move that made it work happened before any agent launched.
The Code Is the Instruction
I built a skill to make Claude generate animated web narratives with Motion's layoutId morphs. Two test rounds proved that prose warnings against fade transitions did nothing — Claude followed the code examples, which were all fades. The fix was rewriting the examples, not the warnings.
The Logo's Magic Was Never the Spiral
After 100+ logo explorations on a React Flow canvas, the breakout mark was a stacked-pixel galaxy ring. Every attempt to iterate on it lost the depth — because everyone, including me, thought the appeal was the spiral. It was the render order.
Config Sync Wiring — workingDirectory and customCommand Were Inert
Discovered that workingDirectory and customCommand fields were completely inert in the config sync flow — wiring them through SSH session creation.
Swarm Migration to Semantic Labels + Image-Based Default
Migrating Docker Swarm from Expanse-themed node labels to Tailscale-matching semantic labels, plus switching default deployment to image-based.
blueprint-v2: Integrating Wind Vector Canvas with Static Blueprint Elements
Previous session established the final wind vectors pattern: 1px pixel dots with opacity-only variation driven by simplex noise, particles with agent labels, double ripple rings, and slow fade-out lif
Every Alarming Metric Was a Ghost
A CLI-driven performance audit of an animated homepage kept triggering alarms — a 112KB synchronous script, 76% unused CSS, a canvas that appeared blank. Each turned out to be a misread. The real lesson: performance tools measure what's present, not what's executing.
Your Bash Script Isn't Slow — Your Subprocesses Are
A Claude Code startup hook took 5.2 seconds. The actual work took 0.46 seconds. The other 4.7 seconds was the cost of asking bash to do that work in subshells.
2026-01-23: Dashboard Feature & v2 Architecture Plan
The style-profile-architect app was already refactored (previous session) from a 437-line monolith into components. The user wanted to add a dashboard for browsing saved style profiles and copying the
Data Visualization Galleries
Curated list of \"wall of techniques\" galleries for visual inspiration. The format that works: dense grids of examples showing many techniques at once, browsable for serendipitous discovery.
Design System Chorus: Content Blocks, Layouts, and Charts
Expanded design system from ~120 to 224 specimens, adding content blocks, full-page layouts, and Recharts data visualizations.
Getting a 2017 Intel MacBook Pro into Docker Swarm
PHM Mac (MacBookPro14,3, 2017 15\" MBP, Intel i7, 16GB, macOS 13.7.8 Ventura) needed to join the Docker Swarm as an always-on worker for image-based services. The machine already had Colima 0.9.1 and D
React Flow Interactive Nodes — The pointer-events: none Saga
Debugging why clickable buttons inside React Flow nodes were unresponsive — pointer-events inheritance from the canvas layer.
Reaction-Diffusion + Hexbin Backdrop Concepts
Lab has ~26 specimens (packets, grids, backdrops) on a React Flow infinite canvas. User found an OpenProcessing sketch by Zaron Chen (MIT licensed) doing reaction-diffusion via blur + unsharp masking
Shiki Conflicts, Blueprint Dimming, and Server Component Refactor
Created `.traces/mdx.md` documenting the full MDX pipeline — remark plugins, viz components (`Mermaid`, `D3Viz`, `MathBlock`), the typography component map, and the escape-curlies system that prevents
Everything Localhost Hides From You
Deploying a Bun image-generation server to Docker Swarm. Every problem — credential forwarding, secrets management, mixed content, stale images — was something that worked perfectly on localhost and broke silently in production.
TestFlight Logging System
TestFlight sessions crash or misbehave with zero visibility:
Design System & Views Port: Vite SPA to Next.js 16
Ported the entire design system and all view pages from the Vite SPA into the Next.js 16 app. The template started with shadcn/ui defaults (OKLCH light/dark theme, Geist fonts) and needed a complete v
Shaping Multi-Session (tmux replacement inside pocket-server)
Pocket-server exists as an ET replacement — ~30% built (crypto complete + tested, session/PTY/protocol scaffolded). Architecture: 1 ET client ↔ 1 session, single connection, XSalsa20-Poly1305 encrypti
First Trace for AI Studio Portfolio Site
Design engineer portfolio site — a Vite + React 19 SPA built in AI Studio, deployed to Docker Swarm. No `.traces/` directory existed yet. The project had uncommitted modifications across most componen
PocketMac Menu Bar UI and Distribution Journey
PocketMac v2 onboarding was complete from a previous session — Welcome → Explanation → System Check → Pairing → Success flow. The app worked but had a minimal menu bar (just \"Setup Assistant...\" and \"
The Scariest Dependency Is the One You Haven't Read
11,000 lines of C++ stood between Pocket and its own future. Reading every one revealed that the intimidating system was 200 lines of real logic wrapped in 3,000 lines of features we'd never use.
Keychain Hint UX — From Button to Context-Aware System
Previous session (`5f878b4`) added a simple 🔐 button in the shortcuts row that runs `security unlock-keychain`. This solved the immediate problem but required users to know:
NBSP Spacing Bug — Claude Code Uses Non-Breaking Spaces
User reported missing spaces in Claude Code's terminal output:
Keychain Unlock UX for Claude Code
Continuing from a previous session that fixed font rendering (Nerd Fonts, emoji width). The next item was improving UX when Claude Code can't access its API key due to a locked macOS keychain.
GitHub Onboarding Flow Polish
Continuing from previous session where we'd built the GitHub import onboarding flow (Connect → Select → Setup). Previous commits:
v0.2 — Polish Pass, Guidance, and Symlink Install
cc-trace-command v0.1 was released 2026-01-04. The `/trace` command creates cacheable codebase understanding snapshots in `.traces/`. User wanted to add a feature: upgrade rough ASCII diagrams to Merm
Your Profiler Has a Blind Spot
Shell startup took 557ms. zprof said compinit was the problem — but the real bottleneck lived in a file zprof can't see.
Terminal SVG Sketching with timg
Exploring whether Claude can sketch UI layouts that render directly in the terminal using `timg`, keeping visual feedback in-flow without opening browser windows. Goal: fast iteration on layout ideas
Board Visualization Exploration
Kindling Pages v0.6.0 had single-file `.project.md` support. Goal: add directory mode (`.project/` with multiple files) and a `/board` route for project status tracking. User wanted something like Lin
Font Cascade Fallback for Terminal Symbols
User noticed the ⏺ record symbol (used as bullet points in Claude Code output) wasn't rendering correctly in the Settings preview. The app already had a font fallback cascade in `Theme.swift`, so the
Screenshot Gamification with Hold Detection
Working Hammerspoon screenshot system that routes screenshots to project folders based on macOS Spaces. User realized they needed two categories:
Caching Understanding Is a Design Problem, Not a Storage Problem
Building a /trace command exposed the real bottleneck in AI-assisted development: not exploration speed, but the absence of persistent architectural memory between sessions.
Content/Style Separation Pipeline
Wiring the core style extraction pipeline — separating what is depicted from how it looks for image generation.
Lab Canvas Scaling + Flow Routes Particle Design
The design lab (`/lab`) was an infinite React Flow canvas with packet specimens (in a Figma-like frame) and grid specimens (individual nodes). All canvas-based specimens rendered at 200×200px internal
Vercel Blob Storage Cleanup
Free Vercel blob storage quota was being consumed, but unclear which project was responsible. The blob store was named \"slay-the-spire\" and the user had the read-write token handy.
Building an E2B Skill Using the Skill-Builder Methodology
User requested: \"use the skill builder skill to build an e2b skill for us\"
Ghostty Clauddy — macOS App + Hammerspoon Hotkey
Had a \"Claude Code\" mock app somewhere in `~/Applications` — an AppleScript-based wrapper that launches Ghostty with a custom config. Wanted to:
GitHub App Reinstallation Callback Issue
When a user installs the GitHub App but our callback fails (network error, state expiry, etc.), the installation exists on GitHub but not in our database. If the user tries to connect again:
Session Recording & Replay for Terminal Debugging
Pocket is an iOS terminal app for running Claude Code on Mac. The debugging loop was painful: