# Dev Diary #17

*Wired up lane safety, slack alerts, and a cockpit dashboard; token burn and backfill logic still unresolved.*

By [henrypye](https://paragraph.com/@henrypye) · 2026-05-09

worktree safety protocols, per-lane plugin trimming, slack alert blinking, backfill over-fetching, tmux grid layouts

---

I'm knee-deep in two separate problems that won't quite align. The worktree lane system needed a safety net — I added a fetch + fast-forward on main before spawning new lanes in `claude/bin/wt`, because nothing kills momentum like discovering you're three commits behind halfway through a feature branch. But the real bottleneck is token burn during session startup. Each lane was loading its full plugin set, which meant spinning up a worktree for a backend task was dragging in frontend tooling metadata. I trimmed the per-lane plugins down to essentials, but that's a partial fix — the root issue is that I'm not caching anything between lane switches.

The slack-tldr daemon is working, sort of. Got it blinking new alerts at 2 Hz using inverse-video frame toggling in `slack-tldr.py`, and the ack mechanism in `slack-watch` is solid. But the backfill logic is brittle. When you join a channel with ten thousand messages, the over-fetch (I'm pulling 50% more than asked) was meant to protect against join-spam starving the TLDR digest. It works, but it's a band-aid. I'm fetching too much, too often, and watching the config balloon as a workaround tells me the architecture wants something else.

The cockpit system — the worktree lanes + agent-state board + command suite — is real now. Prefix+L gives you a 4x2 tmux grid. `/ticket-pickup` pulls a ticket into your current lane state. But there's friction between how the state hooks (`_state-write.sh`, `agent-state-active.sh`) talk to the command layer. The refinement pass killed a lot of redundancy in the agent profiles (`backend.md`, `frontend.md`, etc.), but I kept adding `/ticket-pickup` and now I'm not sure if that's a command or a stateful operation or both.

Next is making the worktree protocol docs actually binding — right now it's guidance in `worktree-protocol.md`, but nobody's enforcing it. Also need to kill the token bleed on session start properly, not just trim symptoms.

---

*Originally published on [henrypye](https://paragraph.com/@henrypye/dev-diary-17)*
