Skip to content

docs: XMPP-MUC per-session messaging integration note - #185

Open
friedenberg wants to merge 1 commit into
masterfrom
claude/spinclass-xmpp-prototype-ch8gfh
Open

docs: XMPP-MUC per-session messaging integration note#185
friedenberg wants to merge 1 commit into
masterfrom
claude/spinclass-xmpp-prototype-ch8gfh

Conversation

@friedenberg

Copy link
Copy Markdown
Contributor

Design note for the deferred spinclass-side full session-lifecycle integration of the XMPP-MUC messaging prototype.

docs/plans/2026-06-17-xmpp-muc-session-integration.md covers:

  • room-name sanitization (SPINCLASS_SESSION_ID repo/branch → a JID-safe room localpart; why --group and --room are separate flags on trapeze xmpp-bridge);
  • launch of the per-session bridge on session start (sweatfile hook / SessionStart / detached helper options) and teardown on close;
  • optional sc list reachability surfacing;
  • explicit non-goals (replacing clown's chat store wholesale, remotes, multi-human rooms).

Docs only — no code change. The vertical slice runs one bridge by hand; this note scopes the automation.

Related

  • amarbel-llc/circus — krone Prosody + dev harness + architecture doc
  • amarbel-llc/trapezetrapeze xmpp-bridge
  • amarbel-llc/clownclown chat (the agent-side surface, unchanged)

🤖 Generated with Claude Code

https://claude.ai/code/session_01U5aBpoX43KwauCMRMR5UPR


Generated by Claude Code

Design note for the deferred spinclass-side full session-lifecycle
integration of the XMPP-MUC messaging prototype (room naming/sanitization,
launch on session start, teardown on close, sc list surfacing). Companion
to the circus prototype doc and trapeze xmpp-bridge.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U5aBpoX43KwauCMRMR5UPR
friedenberg added a commit that referenced this pull request Aug 26, 2026
Bridges purse-first/libs/dewey (mesa, RFC 0003 List-Table renderer) the
same way clown did for `clown list`: purse-first promoted to a direct
flake input (ringmaster's transitive pin predates pkgs/mesa), bridged
via gomod.nix's goFlakeInputs, go.mod's require promoted from indirect
to direct.

cmd/spinclass/list_view.go: modePretty and modePlain now both build a
mesa.Table and render it via mesa.ForceStyle()/mesa.ForcePlain() rather
than an implicit writer-type check; --watch renders each frame through
the same table, styled. modeJSON is untouched — still the original
session.ListRow array via runListResult, byte-identical to the MCP
tool's output. The old hand-rolled lipgloss table/legend-footer/width
math is removed in favor of mesa's own column-width negotiation, which
truncates an overlong Flex cell with an ellipsis instead of wrapping it
across multiple lines (list_view_test.go updated to match).

🤡 Clown (0.4.4+b9d1cc7) — https://code.linenisgreat.com/clown/commit/b9d1cc79214eb5d702c622bc5d4109b9edd38fda
friedenberg added a commit that referenced this pull request Aug 26, 2026
Caught by the pre-merge hook's full bats suite (three lanes, same
failure): "spawn launches a hello-gated worker in a sibling repo"
asserted on the old runListResult TSV's trailing `spawned-by:<key>`
column, which piped (non-TTY) `sc list` no longer emits since modePlain
now renders the mesa summary table (#185) — the spawn-lineage hint moved
into the DESCRIPTION column as a "↰<driver-key>" suffix. --format json/tap
and the MCP tool are unaffected (still runListResult, unchanged).

🤡 Clown (0.4.4+b9d1cc7) — https://code.linenisgreat.com/clown/commit/b9d1cc79214eb5d702c622bc5d4109b9edd38fda
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants