Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,5 +47,10 @@ jobs:
uses: actions/upload-artifact@v4
with:
name: coverage-lcov
path: target/tarpaulin/tarpaulin-report.lcov
# tarpaulin --out Lcov writes lcov.info on current versions; older
# builds used tarpaulin-report.lcov. Match both so a tarpaulin version
# bump doesn't break the upload.
path: |
target/tarpaulin/lcov.info
target/tarpaulin/tarpaulin-report.lcov
if-no-files-found: error
16 changes: 8 additions & 8 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,23 +4,23 @@

### Changed
- **Rebranded: `rmcp_mux` → `rust-mux`.** Crate name hyphenated on crates.io per convention; module path `rust_mux`. Binary `rmcp_mux_proxy` → `rust_mux_proxy`. All internal imports `use rmcp_mux::` → `use rust_mux::`. User-facing `RMCP_MUX_*` environment variables preserved for backward compatibility.
- **Moved to Loctree org:** `https://github.com/VetCoders/rmcp-mux` → `https://github.com/Loctree/rust-mux`.
- **Moved to Loctree org:** `https://github.com/vetcoders/rmcp-mux` → `https://github.com/Loctree/rust-mux`.

### Added
- Package metadata: `description`, `repository`, `homepage`, `documentation`, `readme`, `keywords`, `categories`, `license = "MIT OR Apache-2.0"`, and `authors = ["Maciej Gad <void@div0.space>", "Monika Szymanska <hello@vetcoders.io>"]` in `Cargo.toml` for proper crates.io listing and discovery.
- Package metadata: `description`, `repository`, `homepage`, `documentation`, `readme`, `keywords`, `categories`, `license = "MIT OR Apache-2.0"`, and `authors = ["vetcoders <hello@vetcoders.io>"]` in `Cargo.toml` for proper crates.io listing and discovery.

## 0.2.0 - 2025-11-24

### Added
- Optional tray icon (`--tray`) showing live server status, client and pending counts, and restart reasons. ([5eefde4](https://github.com/LibraxisAI/rust_mux/commit/5eefde4))
- Config file support (JSON/YAML/TOML) with auto-detection and CLI overrides. ([5eefde4](https://github.com/LibraxisAI/rust_mux/commit/5eefde4))
- `rust_mux_proxy` helper binary plus launchd template and installer tweaks for easier setup. ([04e5402](https://github.com/LibraxisAI/rust_mux/commit/04e5402))
- GitHub Actions CI workflow for formatting, linting, testing, and coverage, including an async proxy forwarding test. ([ad2b9aa](https://github.com/LibraxisAI/rust_mux/commit/ad2b9aa))
- Mux hooks, Semgrep rules, and expanded README documentation. ([e80083c](https://github.com/LibraxisAI/rust_mux/commit/e80083c))
- Optional tray icon (`--tray`) showing live server status, client and pending counts, and restart reasons. ([5eefde4](https://github.com/Loctree/rust-mux/commit/5eefde4))
- Config file support (JSON/YAML/TOML) with auto-detection and CLI overrides. ([5eefde4](https://github.com/Loctree/rust-mux/commit/5eefde4))
- `rust_mux_proxy` helper binary plus launchd template and installer tweaks for easier setup. ([04e5402](https://github.com/Loctree/rust-mux/commit/04e5402))
- GitHub Actions CI workflow for formatting, linting, testing, and coverage, including an async proxy forwarding test. ([ad2b9aa](https://github.com/Loctree/rust-mux/commit/ad2b9aa))
- Mux hooks, Semgrep rules, and expanded README documentation. ([e80083c](https://github.com/Loctree/rust-mux/commit/e80083c))
- `health` subcommand to resolve config and assert socket reachability, plus unit tests for healthy/missing sockets.

### Changed
- Refactored mux state management and tray functionality into dedicated `state` and `tray` modules, with tray dependencies gated behind an optional `tray` feature; CI updated to run with `--no-default-features`. ([0d60764](https://github.com/LibraxisAI/rust_mux/commit/0d60764), [ad2b9aa](https://github.com/LibraxisAI/rust_mux/commit/ad2b9aa))
- Refactored mux state management and tray functionality into dedicated `state` and `tray` modules, with tray dependencies gated behind an optional `tray` feature; CI updated to run with `--no-default-features`. ([0d60764](https://github.com/Loctree/rust-mux/commit/0d60764), [ad2b9aa](https://github.com/Loctree/rust-mux/commit/ad2b9aa))

## 0.1.5
- Added JSON status snapshots (`--status-file` / `status_file`) including PID, queue depth, request limits, restart/backoff settings.
Expand Down
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name = "rust-mux"
version = "0.1.5"
edition = "2021"
authors = ["Maciej Gad <void@div0.space>", "Monika Szymanska <hello@vetcoders.io>"]
authors = ["vetcoders <hello@vetcoders.io>"]
description = "Transport multiplexer for Rust MCP servers — tray, proxy, and runtime supervisor"
license = "MIT OR Apache-2.0"
repository = "https://github.com/Loctree/rust-mux"
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ Binaries live in `target/release/rust_mux`.

## Install (curl | sh)
```
curl -fsSL https://raw.githubusercontent.com/LibraxisAI/rust_mux/main/tools/install.sh | sh
curl -fsSL https://raw.githubusercontent.com/Loctree/rust-mux/main/tools/install.sh | sh

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

Throughout the README, the binary is referred to as rust_mux (with an underscore) in the usage examples and paths (e.g., ./target/release/rust_mux, rust_mux wizard, etc.).

Since the package name in Cargo.toml has been rebranded to rust-mux (with a hyphen), the compiled binary will actually be named rust-mux. Please update the README examples to use rust-mux to avoid confusing users who copy-paste the commands.

```
- Places wrapper in `$HOME/.local/bin/rust_mux` and ensures PATH contains cargo bin + wrapper dir.
- Env overrides: `INSTALL_DIR`, `CARGO_HOME`, `MUX_REF` (branch/tag, default main), `MUX_NO_LOCK=1` to skip `--locked`.
Expand Down
8 changes: 3 additions & 5 deletions src/wizard.rs
Original file line number Diff line number Diff line change
Expand Up @@ -325,11 +325,9 @@ fn handle_key(app: &mut AppState, key: crossterm::event::KeyEvent) -> Result<boo
app.editing = Some(app.current);
}
}
KeyCode::Char(' ') => {
if app.current == Field::Tray {
app.form.tray = !app.form.tray;
app.form.dirty = true;
}
KeyCode::Char(' ') if app.current == Field::Tray => {
app.form.tray = !app.form.tray;
app.form.dirty = true;
}
KeyCode::Esc => {
app.editing = None;
Expand Down
4 changes: 2 additions & 2 deletions tools/install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ umask 022

# rust_mux install script
# Usage:
# curl -fsSL https://raw.githubusercontent.com/LibraxisAI/rust_mux/main/tools/install.sh | sh
# curl -fsSL https://raw.githubusercontent.com/Loctree/rust-mux/main/tools/install.sh | sh
# Env overrides:
# INSTALL_DIR where to place the runnable `rust_mux` wrapper (default: $HOME/.local/bin)
# CARGO_HOME override cargo home (default: ~/.cargo)
Expand All @@ -14,7 +14,7 @@ umask 022
INSTALL_DIR=${INSTALL_DIR:-"$HOME/.local/bin"}
CARGO_HOME=${CARGO_HOME:-"$HOME/.cargo"}
CARGO_BIN="$CARGO_HOME/bin"
REPO_URL="https://github.com/LibraxisAI/rust_mux"
REPO_URL="https://github.com/Loctree/rust-mux"

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

high

While updating the repository URL is correct, the installation script will fail because it still references rust_mux (with an underscore) instead of the rebranded rust-mux (with a hyphen).

Specifically:

  • Line 34: cargo install ... rust_mux needs to be rust-mux because cargo install expects the package name defined in Cargo.toml.
  • Line 36: installed_bin="$CARGO_BIN/rust_mux" needs to be rust-mux because the compiled binary name defaults to the package name.

Please update these references in the script to ensure the installation works correctly.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Match cargo install target to the public crate

When this script is fetched from the new Loctree/rust-mux repository, it still later runs cargo install ... rust_mux; cargo install --help says the trailing [CRATE] selects the package from the given source, and this repo's metadata reports package/binaries rust-mux and rust-mux-proxy, not rust_mux. The documented curl | sh path therefore fails with could not find rust_mux (and would also check the wrong installed binary path) instead of installing from the public repo.

Useful? React with 👍 / 👎.

# Allow pinning a branch/tag/commit; defaults to main.
MUX_REF=${MUX_REF:-"main"}

Expand Down
2 changes: 1 addition & 1 deletion tools/launchd/rmcp_mux.sample.plist
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.libraxis.mcp-mux.general-memory</string>
<string>com.loctree.rust-mux.general-memory</string>

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

high

The plist template still references /Users/YOUR_USER/.cargo/bin/rust_mux (with an underscore) on line 11. Since the package has been rebranded to rust-mux (with a hyphen), the compiled binary will be named rust-mux.

Please update line 11 to use rust-mux so that launchd can locate and execute the binary correctly:

<string>/Users/YOUR_USER/.cargo/bin/rust-mux</string>

Additionally, consider renaming this file from rmcp_mux.sample.plist to rust-mux.sample.plist to match the new branding.


<!-- Adjust paths below to your environment -->
<key>ProgramArguments</key>
Expand Down
Loading