a73x

wall: a pane that CREATES a session on an auto-started daemon looks identical to one that joined the real one

open   by a73x

Labels: backlog

[claude 2026-09-04] Seen 2026-09-04 13:45. The running daemon's unix socket file vanished
(cause unknown; see the logging issue filed today). The user quit and restarted
their wall. The entry dial got FileNotFound, the local client's entry ask ran
`mux d start -d --sock PATH`, and the new daemon bound the path fresh —
correct by every rule in CLAUDE.md. Then `seedLayout` seated the layout's
local leaves `--sock PATH#0`, `#7`, `#1`, and because `mux --session NAME`
attaches OR CREATES, the new daemon minted three empty shells under those
names. The wall painted three prompts. The three claude sessions the user was
looking for were alive on the OLD daemon (pid 2562370), still listening on an
orphaned inode, reachable only via its QUIC arm.

Two things compound here:

1. A pane cannot tell the user whether it JOINED a session or CREATED one.
   `wall_picker.pickAdd` joins-never-creates and `pickBirth` creates, but the
   seed path and the entry dial go through attach-or-create with no signal.
   A pane born by creation where the layout named an existing session is a
   fact worth a notice line, at minimum.
2. An auto-start where the hosts file already lists that daemon is itself
   suspicious: "the path I have used for days answered nothing" is a
   different situation from "first run on a new box", and the wall treats
   them the same. Starting a daemon here hid the user's work behind
   look-alikes; refusing to seed until the user says so would have left an
   empty wall with a clear line on it.

Related: 777e346e (recycled-name detection; the epoch mechanism there would
catch this case too, since a fresh daemon's epochs match nothing).