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

Open
opened 2026-09-04 13:04:50 +00:00 by a73x · 0 comments
a73x commented 2026-09-04 13:04:50 +00:00 (Migrated from git.a73x.sh)

[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).


Migrated from git-collab issue 55ca6e6d160414e9d6de7c712424eb69d7485460.

Original author: a73x dev@a73x.sh.

[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). --- Migrated from git-collab issue `55ca6e6d160414e9d6de7c712424eb69d7485460`. Original author: a73x <dev@a73x.sh>.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
a73x/mux#80
No description provided.