Repository navigation
feat(xum): rebrand mux module to xum following coder/xum rename - #1126
Merged
Merged
Conversation
Contributor
Module Scorecard Check
|
| Presentation & Onboarding | Agent Integration | Credential Hygiene | Restricted-Environment Readiness | Engineering Quality | Overall |
|---|---|---|---|---|---|
| 17 / 17 | 10 / 25 | 16 / 16 | 18.5 / 20 | 10 / 10 | 81 / 100 |
Drilldown
Presentation & Onboarding — 17 / 17
| Criterion | Max | Score | Notes |
|---|---|---|---|
| Configuration-mode examples | 12 | 12 | README has 10+ worked examples covering distinct modes: version pinning, package-manager selection (package_manager), custom registry (registry_url), restart-on-kill with delay/cap, add-project/additional-arguments, custom port, cached install (use_cached), and skip-install (install=false). Each shows sensible defaults. |
| Visual preview | 5 | 5 | README embeds , verified to exist (249.1 KB). |
Credential Hygiene — 16 / 16 (Non-hardcoded auth path marked N/A — concern does not exist; module requires no user-supplied credential)
| Criterion | Max | Score | Notes |
|---|---|---|---|
| Secrets marked sensitive | 16 | 16 | No module variable carries a raw secret; the per-session auth token is generated internally via random_password.xum_auth_token (sensitive by default in the random provider) and never shown as a literal/placeholder value in any README example. |
| Non-hardcoded auth path | 4 | N/A | Module takes no external API keys/credentials as input, so there is nothing requiring a non-hardcoded auth path to document. |
Restricted-Environment Readiness — 18.5 / 20
| Criterion | Max | Score | Notes |
|---|---|---|---|
| Mirrorable artifact source | 5 | 5 | registry_url variable overrides the exact URL used for install, both as the --registry flag for npm/pnpm/bun and as the base for the tarball-metadata/tarball-fetch fallback (${REGISTRY_URL}/@coder%2Fxum/..., ${REGISTRY_URL}/@coder/xum/-/xum-$VERSION.tgz). Documented under "Custom Registry." |
| Bring-your-own binary | 10 | 10 | install = false documented in the "Skip Install" example; run.sh reads an existing ${INSTALL_PREFIX}/xum binary and skips network install entirely. |
| Egress transparency | 3 | 1.5 | No dedicated network/egress/air-gapped section. Endpoints (npm registry, nodejs.org for Node bootstrap) are only inferable from scattered "Notes" bullets, not enumerated together — capped at half per calibration. |
| Runs without sudo | 2 | 2 | run.sh never invokes sudo; all installs/writes target $HOME/.coder-modules/..., workable as an unprivileged user. |
Engineering Quality — 10 / 10
| Criterion | Max | Score | Notes |
|---|---|---|---|
| Input quality | 6 | 6 | All variables have clear descriptions and sensible defaults; validations present for restart_delay_seconds, max_restart_attempts (whole-number check), package_manager, open_in, and share. |
| Test coverage | 4 | 4 | main.test.ts runs real container installs (npm-present, no-package-manager fallback), restart-on-kill/signal-exit behavior, and argument parsing end-to-end; xum.tftest.hcl thoroughly covers business logic (validations, script-content assertions, path defaults, registry/package-manager wiring). |
Agent Integration — 10 / 25
| Criterion | Max | Score | Notes |
|---|---|---|---|
| AI governance | 10 | 0 | No mention of Coder AI Gateway or Agent Firewall anywhere in the README. |
| Dashboard entry point | 5 | 5 | coder_app resource is created with healthcheck, and its configuration (slug, display_name, subdomain, share, order, group, open_in) is documented via module variables/examples. |
| Session continuity | 5 | 2.5 | "Long-Running Processes: Resume AI work after interruptions" is listed as a feature bullet, but no detail on how resumption works; restart_on_kill only restarts the Xum server process itself, not documented as session/conversation continuity. Under-documented — half credit. |
| Managed configuration | 5 | 2.5 | add_project lets the workspace start with a specific project/workdir pre-opened, but this is a single narrow option — no broader settings/MCP/policy config documented. Half credit. |
Overall — 81 / 100
Raw 71.5 / 88 → round(71.5 / 88 × 100) = 81
Tip
You can run this locally by telling your agent: "review this module against .github/scorecard/SCORECARD.md".
Scored against SCORECARD.md with solstice-1. Language-model scores are advisory.
phorcys420
force-pushed
the
phorcys/xum-rebrand
branch
from
September 21, 2026 11:32
4ae0e33 to
b6dfe5a
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Renames the
coder/muxmodule tocoder/xum, following the upstreamcoder/mux→coder/xumrepo/product rename (done after a trademark concern from Mux.com). The module already installed@coder/xum; this brings the module identity, branding, binary, and runtime paths in line with the canonicalxumnaming.What changed
registry/coder/modules/mux→registry/coder/modules/xum(mux.tftest.hcl→xum.tftest.hcl), history preserved via rename.registry.coder.com/coder/xum/coder; version reset to1.0.0.xumnaming throughout:xumbinary,XUM_SERVER_AUTH_TOKEN/XUM_BINARY/XUM_NODE_VERSION, install prefix~/.coder-modules/coder/xum, log~/.coder-modules/coder/xum/logs/xum.log, TF resourcescoder_script.xum/coder_app.xum/random_password.xum_auth_token, display nameXum, slugxum.~/.xum/server.lock(canonical) and~/.mux/server.lock(legacy)..icons/xum.svg(Xum mark), removed the orphaned.icons/mux.svg; icon references now/icon/xum.svg.xum-product-hero.webp.Intentionally retained
muxreferences: the legacy npm-package guard in tests, the dualxum/muxbin note (the npm package still ships both), the legacy~/.muxlock cleanup, and the historical "legacymuxpackage name" note.Breaking change
The module source path changes from
coder/mux/codertocoder/xum/coder. Existing references toregistry.coder.com/coder/mux/coderwill no longer resolve — registry modules can't redirect. The oldmuxmodule is removed rather than kept as a shim.Testing
terraform test: 24/24 passbun test main.test.ts: 8/8 pass (real@coder/xuminstall via npm + tarball fallback)bun run fmt: cleanFollow-ups / reviewer notes
.icons/xum.svguses the brand's black mark; if it renders on a dark surface it'll be low-contrast (the oldmux.svgwas white-filled). Easy to swap to a white/themed variant.xum-product-hero.webpis the previous hero image bytes renamed; if it still shows Mux branding it should be replaced with a real Xum asset.Decision log
1.0.0as a fresh module identity.xumbinary/env names (both work today since@coder/xumshipsxumandmuxbins and acceptsMUX_*env aliases, but canonical is future-proof)..xumand.muxlockfiles so restarts work whether the running CLI wrote the canonical or legacy path.This PR was generated by Coder Agents on behalf of @phorcys420.