From 93359644943008e0b840d305515cc754e0c1e4b8 Mon Sep 17 00:00:00 2001 From: Brian Krabach Date: Tue, 7 Apr 2026 10:01:34 -0700 Subject: [PATCH] =?UTF-8?q?chore:=20release=20prep=20v0.1.1=20=E2=80=94=20?= =?UTF-8?q?version=20bump,=20changelog,=20README=20update?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bump version 0.1.0 → 0.1.1. Add CHANGELOG.md covering all changes since initial release. Update README clipboard section to reflect native xterm.js paste handling. --- CHANGELOG.md | 35 +++++++++++++++++++++++++++++++++++ README.md | 4 ++-- pyproject.toml | 2 +- 3 files changed, 38 insertions(+), 3 deletions(-) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..0bffea5 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,35 @@ +# Changelog + +## v0.1.1 (2026-04-07) + +### Features +- **TLS/HTTPS support** — `muxplex setup-tls` auto-detects Tailscale → mkcert → self-signed certificates +- **TLS nudge** in `doctor` and `service install` when clipboard requires HTTPS +- **Session device selector** — create sessions on remote devices when multi-device enabled +- **Activity count in page title** — browser tab shows `(2) hostname - muxplex` for unseen bells +- **Favicon activity badge** — amber dot overlay on favicon for unseen notifications +- **Terminal search** — Ctrl+F to search scrollback (xterm-addon-search) +- **Clickable URLs** — Ctrl+Click / Cmd+Click opens URLs in terminal output (xterm-addon-web-links) +- **Inline image rendering** — Sixel and iTerm2 graphic protocols (xterm-addon-image) + +### Bug Fixes +- **Federation SSL** — federation client accepts self-signed TLS certificates on remote instances +- **Federation empty key** — skip Authorization header when federation key is empty +- **Federation WebSocket SSL** — WebSocket proxy accepts self-signed certs on wss:// remotes +- **Remote session connect** — terminal reconnect uses federation connect path for remote sessions +- **Remote session restore** — persist `active_remote_id` in state for page refresh restore +- **Bell clearing for remote sessions** — federation bell-clear endpoint + unique sessionKey +- **Service crash-loop prevention** — kill stale port holders on startup, TimeoutStopSec in systemd +- **UTF-8 terminal display** — decode WebSocket output with TextDecoder before xterm.js write +- **Clean clipboard handling** — removed custom paste handlers per COE review, native xterm.js paste +- **Guard empty session name** — openSession bails on empty name from unreachable federation tiles +- **Clean Ctrl+C exit** — `muxplex service logs` exits cleanly on keyboard interrupt + +### Infrastructure +- **PyPI publish** — available as `pip install muxplex` +- **GitHub Actions CI** — tests run on push/PR (Python 3.11-3.13) +- **Self-hosted vendor libs** — eliminates Edge Tracking Prevention console noise + +## v0.1.0 (2026-04-04) + +Initial release. diff --git a/README.md b/README.md index ce52d5d..62caa46 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ ### Terminal - **Full interactive terminal** — powered by xterm.js + ttyd -- **Native clipboard** — Ctrl+Shift+C to copy, Ctrl+Shift+V to paste +- **Native clipboard** — Ctrl+Shift+C to copy, Cmd+V (macOS) / Ctrl+Shift+V (Linux) to paste - **Mouse select auto-copy** — selecting text copies to system clipboard on release - **OSC 52 tmux clipboard bridge** — tmux copy mode selections go to system clipboard - **Search** — Ctrl+F opens a search bar to find text in terminal scrollback (xterm-addon-search) @@ -254,7 +254,7 @@ All settings are stored in `~/.config/muxplex/settings.json`. | Shortcut | Action | |---|---| | Ctrl+Shift+C | Copy terminal selection to system clipboard | -| Ctrl+Shift+V | Paste from system clipboard into terminal | +| Cmd+V / Ctrl+Shift+V | Paste from system clipboard (native browser paste) | | Ctrl+F | Open terminal search bar | | Enter / Shift+Enter | Next / previous search match | | Ctrl+Click (Cmd+Click) | Open URL in new tab | diff --git a/pyproject.toml b/pyproject.toml index 3dffe07..d207d99 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "muxplex" -version = "0.1.0" +version = "0.1.1" description = "Web-based tmux session dashboard — access all your tmux sessions from any browser" readme = "README.md" license = { text = "MIT" }