From 75c68be5f884711f9a7185101fd71e2064ccb20f Mon Sep 17 00:00:00 2001 From: m-szymanska Date: Sun, 28 Jun 2026 20:22:10 -0700 Subject: [PATCH 1/4] chore: collapse private author identities to vetcoders Replace personal author names and private email (Maciej Gad , Monika Szymanska) with the collapsed org identity "vetcoders " in Cargo.toml and the CHANGELOG entry that mirrors it. Normalize the historical camelCase brand URL (VetCoders -> vetcoders) and repoint changelog commit links from the private LibraxisAI org to the canonical public Loctree/rust-mux repo. Co-Authored-By: Claude Opus 4.8 (1M context) --- CHANGELOG.md | 16 ++++++++-------- Cargo.toml | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1f24369..479c387 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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 ", "Monika Szymanska "]` 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 "]` 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. diff --git a/Cargo.toml b/Cargo.toml index ab6b8f0..e713801 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,7 +2,7 @@ name = "rust-mux" version = "0.1.5" edition = "2021" -authors = ["Maciej Gad ", "Monika Szymanska "] +authors = ["vetcoders "] 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" From e3551700624da210e1b8993862459ad22441754c Mon Sep 17 00:00:00 2001 From: m-szymanska Date: Sun, 28 Jun 2026 20:22:10 -0700 Subject: [PATCH 2/4] chore: repoint install/docs URLs and launchd label at public org Replace private LibraxisAI org references with the canonical public Loctree/rust-mux repo in the README install snippet and install.sh (REPO_URL + curl line), and change the sample launchd label from the private com.libraxis.* domain to com.loctree.rust-mux.*. Co-Authored-By: Claude Opus 4.8 (1M context) --- README.md | 2 +- tools/install.sh | 4 ++-- tools/launchd/rmcp_mux.sample.plist | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index a355262..ab8473f 100644 --- a/README.md +++ b/README.md @@ -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 ``` - 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`. diff --git a/tools/install.sh b/tools/install.sh index 9b7b688..a5e58a9 100644 --- a/tools/install.sh +++ b/tools/install.sh @@ -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) @@ -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" # Allow pinning a branch/tag/commit; defaults to main. MUX_REF=${MUX_REF:-"main"} diff --git a/tools/launchd/rmcp_mux.sample.plist b/tools/launchd/rmcp_mux.sample.plist index d2b1d93..e890146 100644 --- a/tools/launchd/rmcp_mux.sample.plist +++ b/tools/launchd/rmcp_mux.sample.plist @@ -3,7 +3,7 @@ Label - com.libraxis.mcp-mux.general-memory + com.loctree.rust-mux.general-memory ProgramArguments From a1cb3ca2055c7a46fb98d7cecb626fc425d85a4a Mon Sep 17 00:00:00 2001 From: m-szymanska Date: Sun, 28 Jun 2026 23:49:23 -0700 Subject: [PATCH 3/4] fix(ci): satisfy clippy -D warnings on current stable The latest stable clippy flags a collapsible match guard in wizard.rs that the code predates; CI runs clippy with -D warnings. Machine-applicable autofix. Pre-existing, not from the de-privatization scrub. Behaviour unchanged: clippy clean, cargo test passes. Co-Authored-By: Claude Opus 4.8 (1M context) --- src/wizard.rs | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/wizard.rs b/src/wizard.rs index fa557ba..0d77077 100644 --- a/src/wizard.rs +++ b/src/wizard.rs @@ -325,11 +325,9 @@ fn handle_key(app: &mut AppState, key: crossterm::event::KeyEvent) -> Result { - 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; From facbbd7f39d66b48e6ec611efb24e2e97a8d6007 Mon Sep 17 00:00:00 2001 From: m-szymanska Date: Mon, 29 Jun 2026 00:02:33 -0700 Subject: [PATCH 4/4] fix(ci): match tarpaulin lcov output filename for artifact upload The coverage upload hard-failed (if-no-files-found: error) because current cargo-tarpaulin writes lcov.info, not tarpaulin-report.lcov. Match both names so the artifact uploads regardless of tarpaulin version. fmt/clippy/tests already pass; this was the only red step. Pre-existing, unrelated to the scrub. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/ci.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 471aff6..c32c931 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -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