Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
musterd
command
Command musterd is the Muster daemon: it owns the tmux sessions, ingests Claude Code hooks and status-line posts, derives session state, and serves the dashboard.
|
Command musterd is the Muster daemon: it owns the tmux sessions, ingests Claude Code hooks and status-line posts, derives session state, and serves the dashboard. |
|
internal
|
|
|
boundedwait
Package boundedwait holds the one piece of a background-loop shutdown that crosses package boundaries: bounded-wait-with-warn — "cancel (or close), wait for the goroutine to exit, but give up and warn once ctx is done", needed by internal/session's liveness poll and by internal/server's ingest queue, update apply and background loop (bgloop.go, which every poller runs on).
|
Package boundedwait holds the one piece of a background-loop shutdown that crosses package boundaries: bounded-wait-with-warn — "cancel (or close), wait for the goroutine to exit, but give up and warn once ctx is done", needed by internal/session's liveness poll and by internal/server's ingest queue, update apply and background loop (bgloop.go, which every poller runs on). |
|
claudecode
Package claudecode is the adapter boundary for everything Claude-Code-specific: hook payloads, the status-line payload, CLI invocation and version pinning.
|
Package claudecode is the adapter boundary for everything Claude-Code-specific: hook payloads, the status-line payload, CLI invocation and version pinning. |
|
claudecode/claudecodetest
Package claudecodetest builds Claude-Code-wire-format request bodies for tests in other packages.
|
Package claudecodetest builds Claude-Code-wire-format request bodies for tests in other packages. |
|
commentpass
Package commentpass strips every comment a plan branch added to production code, hands them to a judge as text, and reconstructs each file from its snapshot minus the drops.
|
Package commentpass strips every comment a plan branch added to production code, hands them to a judge as text, and reconstructs each file from its snapshot minus the drops. |
|
evict
Package evict holds the one generic map-eviction rule two packages need on opposite sides of a layering boundary: internal/server's captureStore and internal/reader's WriteLog each cap a map at a size limit by dropping its single oldest entry per insert.
|
Package evict holds the one generic map-eviction rule two packages need on opposite sides of a layering boundary: internal/server's captureStore and internal/reader's WriteLog each cap a map at a size limit by dropping its single oldest entry per insert. |
|
ghissue
Package ghissue is a minimal GitHub Issues client: obtaining a bearer token and filing one issue.
|
Package ghissue is a minimal GitHub Issues client: obtaining a bearer token and filing one issue. |
|
gitutil
Package gitutil shells out to the `git` CLI (docs/conventions.md: "Git/GitHub: never go-git") to answer the small set of questions the daemon needs about a launch directory: is it a git checkout, where is its top level, what branch is it on, is it a linked worktree, and (for the reader) which files does git see there.
|
Package gitutil shells out to the `git` CLI (docs/conventions.md: "Git/GitHub: never go-git") to answer the small set of questions the daemon needs about a launch directory: is it a git checkout, where is its top level, what branch is it on, is it a linked worktree, and (for the reader) which files does git see there. |
|
keyedlock
Package keyedlock holds one small primitive internal/session's Manager and internal/server's shellRegistry and terminalRegistry each need: a lazily-created, per-key mutex that serialises one key's whole check-then-act without blocking any other key's (kb:adr/actions-serialized-per-session).
|
Package keyedlock holds one small primitive internal/session's Manager and internal/server's shellRegistry and terminalRegistry each need: a lazily-created, per-key mutex that serialises one key's whole check-then-act without blocking any other key's (kb:adr/actions-serialized-per-session). |
|
locate
Package locate resolves a dropped file's original on-disk path from its bytes alone (kb:spec/drop): a browser hands a page a dropped file's name and bytes, never its path, so the daemon locates the original by asking a sequence of Finders for basename+size candidates and verifying each one byte-for-byte before it counts.
|
Package locate resolves a dropped file's original on-disk path from its bytes alone (kb:spec/drop): a browser hands a page a dropped file's name and bytes, never its path, so the daemon locates the original by asking a sequence of Finders for basename+size candidates and verifying each one byte-for-byte before it counts. |
|
reader
Package reader holds the reader feature's filesystem scope and confinement rules — which paths a session's reader may list and serve — independent of HTTP handling (kb:spec/reader).
|
Package reader holds the reader feature's filesystem scope and confinement rules — which paths a session's reader may list and serve — independent of HTTP handling (kb:spec/reader). |
|
selfupdate
Package selfupdate is to GitHub Releases what internal/claudecode is to Claude Code: the one place that knows the redirect shape of {base}/latest, GoReleaser's asset naming and checksums.txt format, and the minisign signature file format.
|
Package selfupdate is to GitHub Releases what internal/claudecode is to Claude Code: the one place that knows the redirect shape of {base}/latest, GoReleaser's asset naming and checksums.txt format, and the minisign signature file format. |
|
server
Package server wires up musterd's HTTP+WS surface.
|
Package server wires up musterd's HTTP+WS surface. |
|
session
Package session holds the state machine (kb:anchor/state) and the in-memory session registry that feeds it.
|
Package session holds the state machine (kb:anchor/state) and the in-memory session registry that feeds it. |
|
store
Package store owns Muster's SQLite database: opening it in WAL mode, applying migrations, and the hand-written SQL for the kv and event tables.
|
Package store owns Muster's SQLite database: opening it in WAL mode, applying migrations, and the hand-written SQL for the kv and event tables. |
|
termbridge
Package termbridge owns the daemon-side PTY lifecycle for one terminal socket (kb:anchor/terminal.ws): spawning `tmux attach-session` under a `creack/pty`-managed pseudo-terminal, streaming raw bytes both directions, and resizing with pty.Setsize then tmux resize-window, never the pane-level primitive (kb:adr/surfaces-shared-attach-single-pty).
|
Package termbridge owns the daemon-side PTY lifecycle for one terminal socket (kb:anchor/terminal.ws): spawning `tmux attach-session` under a `creack/pty`-managed pseudo-terminal, streaming raw bytes both directions, and resizing with pty.Setsize then tmux resize-window, never the pane-level primitive (kb:adr/surfaces-shared-attach-single-pty). |
|
tmux
Package tmux wraps the `tmux` CLI operations Muster needs, always against a dedicated socket (CLAUDE.md hard rule: never the user's default server).
|
Package tmux wraps the `tmux` CLI operations Muster needs, always against a dedicated socket (CLAUDE.md hard rule: never the user's default server). |
|
tmux/tmuxtest
Package tmuxtest is the one shared per-test tmux socket helper (plan v1-cleanup REQ-4): internal/tmux, internal/termbridge, internal/server and cmd/musterd's tests all built their own copy of the same os.MkdirTemp + t.Cleanup(kill-server) idiom, so this replaces all of them.
|
Package tmuxtest is the one shared per-test tmux socket helper (plan v1-cleanup REQ-4): internal/tmux, internal/termbridge, internal/server and cmd/musterd's tests all built their own copy of the same os.MkdirTemp + t.Cleanup(kill-server) idiom, so this replaces all of them. |
|
triage
Package triage reduces public GitHub issue bodies to validated, enumerated data before any model holding tools can act on them.
|
Package triage reduces public GitHub issue bodies to validated, enumerated data before any model holding tools can act on them. |
|
tty
Package tty answers one narrow question about a controlling terminal: is its line discipline canonical (line-buffered, "cooked") or raw.
|
Package tty answers one narrow question about a controlling terminal: is its line discipline canonical (line-buffered, "cooked") or raw. |
|
usage
Package usage holds the account-level usage aggregator: a neutral Sample shape plus one in-memory Aggregator, the kb:adr/usage-no-source-interface seam for a second usage source down the line.
|
Package usage holds the account-level usage aggregator: a neutral Sample shape plus one in-memory Aggregator, the kb:adr/usage-no-source-interface seam for a second usage source down the line. |
|
webui
Package webui embeds the built dashboard (web/vite.config.ts's outDir) into the musterd binary, so a copy of the binary moved away from the checkout still serves its own frontend (kb:adr/connection-dashboard-embedded-in-binary).
|
Package webui embeds the built dashboard (web/vite.config.ts's outDir) into the musterd binary, so a copy of the binary moved away from the checkout still serves its own frontend (kb:adr/connection-dashboard-embedded-in-binary). |
|
plans
|
|
|
_audit/test-audit-tools
command
mutate writes one mutant file per mutation of each input Go file: operator swaps (comparison boundary, negation, &&/||, +/-, ++/--) and statement deletion.
|
mutate writes one mutant file per mutation of each input Go file: operator swaps (comparison boundary, negation, &&/||, +/-, ++/--) and statement deletion. |
|
test
|
|
|
rig/capture
command
Command capture is the interface-probe capture server.
|
Command capture is the interface-probe capture server. |
|
rig/failapi
Package failapi is the injected-failure half of a fault-injection stand-in for the Anthropic API: every request it serves gets one status, an Anthropic-shaped error body and any extra response headers.
|
Package failapi is the injected-failure half of a fault-injection stand-in for the Anthropic API: every request it serves gets one status, an Anthropic-shaped error body and any extra response headers. |
|
rig/failproxy
command
Command failproxy is a fault-injection stand-in for the Anthropic API, used by interface probes to induce API errors inside a Claude Code turn (point ANTHROPIC_BASE_URL at it — honoured under subscription OAuth, spikes/FINDINGS.md §3).
|
Command failproxy is a fault-injection stand-in for the Anthropic API, used by interface probes to induce API errors inside a Claude Code turn (point ANTHROPIC_BASE_URL at it — honoured under subscription OAuth, spikes/FINDINGS.md §3). |
|
tools
|
|
|
commentpass
command
Command commentpass is the orchestrator's comment pass over a plan branch (kb:adr/process-comment-pass-owns-code-comments):
|
Command commentpass is the orchestrator's comment pass over a plan branch (kb:adr/process-comment-pass-owns-code-comments): |
|
gatelock
command
Command gatelock is the machine-wide gate lock: a Playwright sweep needs the machine to itself (two sweeps in two worktrees, or a sweep beside `make test-race`, go red — kb:lesson/concurrent-e2e-across-worktrees-goes-red), while Go unit-test runs may overlap each other.
|
Command gatelock is the machine-wide gate lock: a Playwright sweep needs the machine to itself (two sweeps in two worktrees, or a sweep beside `make test-race`, go red — kb:lesson/concurrent-e2e-across-worktrees-goes-red), while Go unit-test runs may overlap each other. |
|
triage
command
Command triage is the program half of /triage.
|
Command triage is the program half of /triage. |
|
versions
command
Command versions keeps internal/claudecode/observed_versions.txt and the generated fragments in README.md and docs/claude-code-versions.md in sync (docs/claude-code-versions.md "The green ritual").
|
Command versions keeps internal/claudecode/observed_versions.txt and the generated fragments in README.md and docs/claude-code-versions.md in sync (docs/claude-code-versions.md "The green ritual"). |
Click to show internal directories.
Click to hide internal directories.
