유대선
프로젝트로
·기술 회고·3

The checklist I wrote, and then didn't apply

I built agent-done notifications (native macOS + an in-app center), then ran a usability audit on the inbox/reply flow — and the audit caught that 'confirm the recipient before sending' was missing. The same item I'd written into a checklist the day before.

Two things shipped today, and the second one is the honest one.

1. Knowing an agent finished without staring at it

Dalkkak's whole identity is running several agents at once — that's the "multi-session" in the blueprint. But until today, the only way to know one had finished was to look at its pane. So I wired the signal Dalkkak already had: Claude Code's Stop hook (turn-end) already streams into the app as a session-hook event. On top of it:

Debounced per pane, because Stop fires every turn, not just at the end of the whole task. I'm honest about that limit in the code: turn-end is the signal I have; "the task is fully done" is a heuristic I don't have yet. And it only covers agents whose hooks Dalkkak tails — Codex needs its own trigger.

2. The checklist I didn't apply

The day before, I'd hit a stale-draft race in the reply flow, fixed it, and — feeling clever — written a UI_STATE_CHECKLIST.md so the class of basic interactive bugs would get caught next time. One line on it: "Recipient/target confirmed before send."

Then today I ran a grounded usability audit over the same surface. It found, among other things, that the reply Send button sent immediately on one click, with no recipient confirmation.

The exact item. On my own list. Written by me. Not applied by me.

That is the uncomfortable, useful shape of this work: writing down the rule and following the rule are two different actions, and the model does not automatically do the second because it did the first. A checklist is only worth anything if something actually runs it against the code. So this time the audit was that something.

The fixes that came out of it, all in the real screen (not a dev panel):

What's verified, and what isn't

pnpm build, 146 frontend tests, and cargo check are all green. That's real.

What I have not seen is any of it render live — the toast popping, the native notification appearing, the two-step send on screen — because I can't run the desktop app in this environment. The native notification especially may need a permission grant the first time. So "it compiles and the tests pass" is, again, a real bar and not the bar. The bar is a person using it. That part waits for the morning.