Resume point for the remaining FDR-0017 spinclass-side work. The chat cutover (Piece 4) is shipped + verified live, and the conformist full-coverage sequence is done; this tracks what's left. Canonical design: docs/features/0017-clown-session-attach-grouping-chat-rescope.md (+ clown RFC-0013).
1. Piece 1 — drop the [session-entry] mux defaults ← START HERE (unblocked)
clown's [attach] landed (clown#145, RFC-0013 §1.3 amended to the full mux layer), so clown now drives the multiplexer attach from the clownfile. spinclass should stop shipping its [session-entry] multiplexer templates.
- Move out (clown owns now):
spawn, start, resume, spawn-entry, spawn-window templates + the multiplexer choice, and resume-title (clown drives resume attach).
- Stays spinclass (the seam):
liveness-probe, tombstone-retention, worktree creation + SPINCLASS_SESSION_ID/identity-env, and remote attach (internal/remote/FDR-0011 — decided "not now").
- Files:
internal/sweatfile/sweatfile.go (the [session-entry] defaults: GetDefault, SessionSpawn/Start/Resume/SpawnEntry/SpawnWindow/ResumeTitle), and the apply sites in internal/executor/session.go + internal/spawn/.
- Care: confirm
sc spawn/fork/resume still work once the templates are gone — clown reads the clownfile [attach] and wraps itself in the mux; spinclass just creates the worktree + sets identity env. Coordinate the exact [attach] schema with clown (clown#145).
2. Presence-consume in sc list (clown#137)
Have sc list read clown's presence index to surface the clowns-running-per-worktree (1-to-many display). clown exposes presence via clown chat list (the MCP chat_list returns {sessionKey, channelId, decoration, description, lastSeen}). Files: cmd/spinclass/commands_query.go (the list rendering). Tracked clown-side as clown#137.
3. SPINCLASS_DESCRIPTION launch-time staleness (refinement)
A mid-session update-this-session-description rename doesn't reach clown's presence label — the description is captured in the env at launch and env can't be mutated. Adjacent to #93. Needs a non-env channel (clown reads spinclass session state, or a push) if live labels are wanted. Optional/minor.
4. Promotion to testing
FDR-0017 experimental → testing: a message addressed to a whole spinclass session reaches every clown under it (a multi-clown group-send), and a per-clown directed message reaches exactly one, for ~1 week with no #118-class sender-flip.
References: FDR-0017, clown RFC-0013, clown#145 ([attach] landed), clown#137 (presence), clown#140 (system-prompt appends, would help inject session id), #93 (auto-update descriptions).
:clown: filed by Clown 0.4.1+5123117
Resume point for the remaining FDR-0017 spinclass-side work. The chat cutover (Piece 4) is shipped + verified live, and the conformist full-coverage sequence is done; this tracks what's left. Canonical design:
docs/features/0017-clown-session-attach-grouping-chat-rescope.md(+ clown RFC-0013).1. Piece 1 — drop the
[session-entry]mux defaults ← START HERE (unblocked)clown's
[attach]landed (clown#145, RFC-0013 §1.3 amended to the full mux layer), so clown now drives the multiplexer attach from the clownfile. spinclass should stop shipping its[session-entry]multiplexer templates.spawn,start,resume,spawn-entry,spawn-windowtemplates + the multiplexer choice, andresume-title(clown drives resume attach).liveness-probe,tombstone-retention, worktree creation +SPINCLASS_SESSION_ID/identity-env, and remote attach (internal/remote/FDR-0011 — decided "not now").internal/sweatfile/sweatfile.go(the[session-entry]defaults:GetDefault,SessionSpawn/Start/Resume/SpawnEntry/SpawnWindow/ResumeTitle), and the apply sites ininternal/executor/session.go+internal/spawn/.sc spawn/fork/resumestill work once the templates are gone — clown reads the clownfile[attach]and wraps itself in the mux; spinclass just creates the worktree + sets identity env. Coordinate the exact[attach]schema with clown (clown#145).2. Presence-consume in
sc list(clown#137)Have
sc listread clown's presence index to surface the clowns-running-per-worktree (1-to-many display). clown exposes presence viaclown chat list(the MCPchat_listreturns{sessionKey, channelId, decoration, description, lastSeen}). Files:cmd/spinclass/commands_query.go(the list rendering). Tracked clown-side as clown#137.3.
SPINCLASS_DESCRIPTIONlaunch-time staleness (refinement)A mid-session
update-this-session-descriptionrename doesn't reach clown's presence label — the description is captured in the env at launch and env can't be mutated. Adjacent to #93. Needs a non-env channel (clown reads spinclass session state, or a push) if live labels are wanted. Optional/minor.4. Promotion to
testingFDR-0017
experimental → testing: a message addressed to a whole spinclass session reaches every clown under it (a multi-clown group-send), and a per-clown directed message reaches exactly one, for ~1 week with no #118-class sender-flip.References: FDR-0017, clown RFC-0013, clown#145 (
[attach]landed), clown#137 (presence), clown#140 (system-prompt appends, would help inject session id), #93 (auto-update descriptions).:clown: filed by Clown 0.4.1+5123117