Skip to content

feat(xum): rebrand mux module to xum following coder/xum rename - #1126

Merged
phorcys420 merged 3 commits into
mainfrom
phorcys/xum-rebrand
Nov 4, 2026
Merged

phorcys420 merged 3 commits into
mainfrom
phorcys/xum-rebrand

Conversation

@phorcys420

Copy link
Copy Markdown
Member

Renames the coder/mux module to coder/xum, following the upstream coder/mux → coder/xum repo/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 canonical xum naming.

What changed

  • Module moved registry/coder/modules/mux → registry/coder/modules/xum (mux.tftest.hcl → xum.tftest.hcl), history preserved via rename.
  • Source path is now registry.coder.com/coder/xum/coder; version reset to 1.0.0.
  • Canonical xum naming throughout: xum binary, XUM_SERVER_AUTH_TOKEN / XUM_BINARY / XUM_NODE_VERSION, install prefix ~/.coder-modules/coder/xum, log ~/.coder-modules/coder/xum/logs/xum.log, TF resources coder_script.xum / coder_app.xum / random_password.xum_auth_token, display name Xum, slug xum.
  • Server-lock cleanup removes both ~/.xum/server.lock (canonical) and ~/.mux/server.lock (legacy).
  • Added .icons/xum.svg (Xum mark), removed the orphaned .icons/mux.svg; icon references now /icon/xum.svg.
  • Hero image renamed to xum-product-hero.webp.

Intentionally retained mux references: the legacy npm-package guard in tests, the dual xum/mux bin note (the npm package still ships both), the legacy ~/.mux lock cleanup, and the historical "legacy mux package name" note.

Breaking change

The module source path changes from coder/mux/coder to coder/xum/coder. Existing references to registry.coder.com/coder/mux/coder will no longer resolve — registry modules can't redirect. The old mux module is removed rather than kept as a shim.

Testing

  • terraform test: 24/24 pass
  • bun test main.test.ts: 8/8 pass (real @coder/xum install via npm + tarball fallback)
  • bun run fmt: clean

Follow-ups / reviewer notes

  • .icons/xum.svg uses the brand's black mark; if it renders on a dark surface it'll be low-contrast (the old mux.svg was white-filled). Easy to swap to a white/themed variant.
  • xum-product-hero.webp is the previous hero image bytes renamed; if it still shows Mux branding it should be replaced with a real Xum asset.
Decision log
  • Full rename (dir + source path) rather than rebrand-in-place, per maintainer direction, accepting the breaking source-path change.
  • Version reset to 1.0.0 as a fresh module identity.
  • Switch to canonical xum binary/env names (both work today since @coder/xum ships xum and mux bins and accepts MUX_* env aliases, but canonical is future-proof).
  • Clean both .xum and .mux lockfiles so restarts work whether the running CLI wrote the canonical or legacy path.

This PR was generated by Coder Agents on behalf of @phorcys420.

@github-actions

github-actions Bot commented Sep 18, 2026 •

Copy link
Copy Markdown
Contributor

Module Scorecard Check

coder/xum: first scorecard, 81 / 100

No existing scorecard discussion found for Xum; this is the initial score. A dedicated discussion is created after merge.

Full scorecard for this PR
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 ![Xum](../../.images/xum-product-hero.webp), 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.

@matifali matifali left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@phorcys420
phorcys420 marked this pull request as ready for review November 4, 2026 17:47
@phorcys420
phorcys420 merged commit c9b265a into main Nov 4, 2026
5 checks passed
@phorcys420
phorcys420 deleted the phorcys/xum-rebrand branch November 4, 2026 18:14
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