Observed on the MacBook after a reboot on 2026-09-06 13:22 local while chasing a "claudemb shows a blank screen" report (that one turned out to be the desktop app window, not this).
What is wrong
bin/iak-claude-tail.mjs is the only feeder for the daemon's /ide-chat/<handle> ring buffer, which is what CodeWatch renders as the agent's IDE session view. Nothing installs or starts it: no launchd agent, no tmux job, no reference from claudemb_poll.sh or the poll plist. On this machine it has never run (/ide-chat/claudemb and /ide-chat/codexmb both return {"events":[]}, shell history has no trace).
- The buffer is in-memory, so even where the tail runs, a daemon restart empties it until the tail re-primes.
GET and POST /ide-chat/<handle> answer 200 with no Bearer token, although the tail's own comment says every :8788 route is token-gated. The daemon binds 127.0.0.1 only, so this is not exposed today, but it means the transcript route cannot be opened to the phone (Tailscale) as it stands.
Product fix (new-user defaults, not local tuning)
- Ship a launchd agent for the tail next to
com.claudemb.poll, with IAK_HANDLE taken from the config, RunAtLoad and KeepAlive, and register it in the check/install path.
- Gate
/ide-chat/* with the same Bearer check as /sessions/* (CodeWatch already sends PREF_IAK_GATE_TOKEN).
- Optional: persist the ring buffer to disk (or replay from the tail's prime window on daemon start) so a reboot does not blank the channel.
Repro: reboot, open CodeWatch IDE session view for @claudemb, see "No session events yet".
Observed on the MacBook after a reboot on 2026-09-06 13:22 local while chasing a "claudemb shows a blank screen" report (that one turned out to be the desktop app window, not this).
What is wrong
bin/iak-claude-tail.mjsis the only feeder for the daemon's/ide-chat/<handle>ring buffer, which is what CodeWatch renders as the agent's IDE session view. Nothing installs or starts it: no launchd agent, no tmux job, no reference fromclaudemb_poll.shor the poll plist. On this machine it has never run (/ide-chat/claudemband/ide-chat/codexmbboth return{"events":[]}, shell history has no trace).GETandPOST /ide-chat/<handle>answer 200 with no Bearer token, although the tail's own comment says every :8788 route is token-gated. The daemon binds 127.0.0.1 only, so this is not exposed today, but it means the transcript route cannot be opened to the phone (Tailscale) as it stands.Product fix (new-user defaults, not local tuning)
com.claudemb.poll, withIAK_HANDLEtaken from the config, RunAtLoad and KeepAlive, and register it in thecheck/install path./ide-chat/*with the same Bearer check as/sessions/*(CodeWatch already sendsPREF_IAK_GATE_TOKEN).Repro: reboot, open CodeWatch IDE session view for @claudemb, see "No session events yet".