ringmaster
The job platform: a durable job journal + wake-on-completion channel, and its MCP tool surface, extracted from clown into a standalone, forge-native Go module. It is upstream of both clown and troupe — troupe's messaging rides on the wake channel to notify sessions, and clown runs llama-server as a job over it.
What's here
jobwake/— the substrate (public packagecode.linenisgreat.com/ringmaster/jobwake): the JSONL job journal, the lossy UDS-datagram nudge, session-key/channel resolution, the output spool and status probe, the wake monitor, presence, and GC. Durable at-least-once correctness from disk; sub-second liveness from a best-effort socket.jobmcp/— the RFC-0011 MCP tool surface: a hand-rolled JSON-RPC stdio server exposing thejob_*job-control tools overjobwake, served asringmaster mcp. (Messaging — chat +job_message— moved to troupe, which serves its own chat MCP.)cmd/ringmaster/— the job-control binary: producer verbs (start/progress/done/read/spool-path/wait/whoami), operator verbs (ls/status/tail/cancel), the per-session wakemonitor, and themcpserver.
Messaging (chat, troupe send/read/list) lives in the separate troupe
repo now; it builds on ringmaster's public jobwake primitives and rides this
wake channel to notify sessions.
The module is pure-stdlib (no third-party Go dependencies). On-disk state lives
under $XDG_STATE_HOME/ringmaster/jobs/ with the nudge socket under
$XDG_RUNTIME_DIR/ringmaster/jobs/.
Consuming ringmaster (igloo go-pkgs)
ringmaster is published via igloo's flake-input-go_mod protocol (RFC 0001). It
exposes packages.${system}.go-pkgs and go-pkgs-test. A consumer bridges it
as a Go dependency via goFlakeInputs on buildGoApplication/mkGoEnv:
# flake input
ringmaster.url = "git+https://code.linenisgreat.com/ringmaster.git";
# in the gomod.nix bridge
goFlakeInputs = {
"code.linenisgreat.com/ringmaster" = {
src = inputs.ringmaster.packages.${system}.go-pkgs;
};
};
nix supplies the source through the bridge, so the module path
code.linenisgreat.com/ringmaster is never fetched over the network (no
GitHub mirror; the forge is SSOT).
Build
nix build .#default # ringmaster binary + manpages
nix flake check # full gate: go tests + bats conformance lanes
just # == nix flake check (the pre-merge gate)
Normative specs
The wire contracts are specified in RFC-0009 (wakeup channel), RFC-0010 (output
spool + status), RFC-0011 (MCP tools), and RFC-0015 (the ringmaster/troupe
binary surface), currently in clown's docs/rfcs/.