Skip to content

mux 0.15.2#313

Draft
ThomasK33 wants to merge 6 commits intomasterfrom
homebrew-cask-5f99
Draft

mux 0.15.2#313
ThomasK33 wants to merge 6 commits intomasterfrom
homebrew-cask-5f99

Conversation

@ThomasK33
Copy link
Member

Adds the Mux Homebrew cask to this tap.

  • New Casks/mux.rb (v0.15.2) with per-arch sha256 values for the GitHub release DMGs.
  • CI: run brew audit --cask --strict --online --tap coder/coder mux on macOS PR jobs.
  • README: document installation via brew install --cask coder/coder/mux.

📋 Implementation Plan

Plan: Add mux Homebrew Cask to coder/homebrew-coder

Context / Why

We want brew install --cask coder/coder/mux to work for the Mux macOS DMG releases, and for future Mux release automation to be able to open PRs against this tap that update only version + sha256.

Scope here is only the coder/homebrew-coder (tap) changes (not the Mux repo workflow/script).

Evidence (repo inspection)

  • Existing cask conventions + formatting:
    • Casks/coder-desktop.rb
    • Casks/coder-desktop-preview.rb
  • Current CI uses brew test-bot --only-tap-syntax and does not have a dedicated “only casks” mode:
    • .github/workflows/test.yml
    • Homebrew test-bot CLI options (no --only-casks): cmd/test-bot.rb from Homebrew/homebrew-test-bot (fetched via functions.web_fetch).
  • Tap default branch appears to be master (remote HEAD): remotes/origin/HEAD -> origin/master.

Implementation plan

1) Add the cask: Casks/mux.rb

Create a new cask file modeled after existing casks in this tap, using per-arch sha256 and the Mux release DMG filename convention.

Key decisions to bake in:

  • Use arch arm: "arm64", intel: "x64" to match Mux release assets.
  • Set auto_updates true (Mux uses in-app update via GitHub releases).
  • Be conservative with zap: include only ~/Library/... app data by default; do not delete ~/.mux unless we explicitly decide to make that a supported “nuclear cleanup”.

File shape (fill in real values before merge):

cask "mux" do
  arch arm: "arm64", intel: "x64"

  version "0.15.2" # example; set to the release being bootstrapped
  sha256 arm:   "<sha256-arm64-dmg>",
         intel: "<sha256-x64-dmg>"

  url "https://github.com/coder/mux/releases/download/v#{version}/mux-#{version}-#{arch}.dmg"
  name "Mux"
  desc "Electron desktop app for parallel agent workflows"
  homepage "https://mux.coder.com/"

  auto_updates true

  # Verify exact bundle name inside the DMG (likely "Mux.app")
  app "Mux.app"

  # Verify bundle identifier matches Mux’s `appId` (expected: "com.mux.app")
  uninstall quit: "com.mux.app"

  zap trash: [
    "~/Library/Application Support/mux",
    "~/Library/Caches/mux",
    "~/Library/Preferences/com.mux.app.plist",
    "~/Library/Logs/mux",
    # Optional but commonly correct for macOS apps:
    # "~/Library/Saved Application State/com.mux.app.savedState",
  ]
end

Bootstrapping the initial version + sha256:

  • Download both DMGs for the chosen release tag (e.g. v0.15.2):
    • mux-<version>-arm64.dmg
    • mux-<version>-x64.dmg
  • Compute SHA-256s and populate the two sha256 values.

2) Validate locally (pre-PR)

On macOS (both architectures if possible):

  • brew tap coder/coder
  • brew audit --cask --strict --online --tap coder/coder mux
  • brew install --cask coder/coder/mux
  • Launch the app, confirm it starts.
  • brew uninstall --cask mux and (optionally) brew uninstall --zap mux to sanity-check zap paths.

3) Ensure PRs get useful CI signal for cask-only changes

Current workflow runs brew test-bot --only-tap-syntax and --only-formulae on PRs (see .github/workflows/test.yml). brew test-bot doesn’t have an --only-casks mode, so cask changes may only get syntax validation.

Recommended adjustment (small, cask-focused):

  • Add a brew audit --cask --strict --online --tap coder/coder mux step on the macOS runner for PRs.
  • Keep it scoped to this tap’s casks to avoid auditing everything.

4) (Optional) Documentation tweak

Add a short “Install Mux” snippet to README.md:

brew install --cask coder/coder/mux

Acceptance criteria

  • Casks/mux.rb exists and passes brew audit --cask --strict --online --tap coder/coder mux.
  • brew install --cask coder/coder/mux installs and launches Mux successfully.
  • Tap PR CI provides a meaningful signal for cask updates (at minimum: syntax; ideally: audit).

Generated with mux • Model: openai:gpt-5.2 • Thinking: xhigh

Comment on lines +7 to +8
x86_64_linux: "76e73b8aa2cd67d8618aa6d56060554967704c58f1393133b7b8e783b6ca85f4",
arm64_linux: "4e0b9fefc123a3fb81fbd91d9e787bdb73813779985dc5cf3f572052def07a83"
Copy link
Member

Choose a reason for hiding this comment

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

having identical linux hashes is definitely incorrect


app "mux.app"

uninstall quit: "com.mux.app"
Copy link
Member

Choose a reason for hiding this comment

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

we definitely do not own mux.com. is this actually our bundle identifier? it should be com.coder.mux instead

@ThomasK33
Copy link
Member Author

@aslilac, thanks for the review, and I'm sorry, but this wasn’t meant to be reviewed yet. I need to do a few things on the Mux side first, and didn’t realize it had already turned itself into a PR. My bad 😓 .

@ThomasK33 ThomasK33 marked this pull request as draft February 5, 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