chore: release v0.3.0 -- federation state propagation

This commit is contained in:
Brian Krabach
2026-04-08 22:06:20 -07:00
parent 2ebd3b9929
commit c4ff5c618f
2 changed files with 15 additions and 1 deletions
+14
View File
@@ -1,5 +1,19 @@
# Changelog # Changelog
## v0.3.0 (2026-04-08)
### Features
- **Federation settings sync** -- user preferences (font size, sort order, hidden sessions, etc.) now sync across all connected muxplex servers using a P2P last-write-wins protocol with per-server timestamps; offline servers catch up automatically on reconnect
- **Heartbeat-driven bell clearing across federation** -- viewing a remote session now clears its activity bell on the remote server automatically; no more stale activity indicators for federated sessions
### Bug Fixes
- **`remoteId: 0` falsy bug** -- sessions from the first remote instance were incorrectly subject to the hidden-sessions filter due to a JavaScript falsy-0 check; fixed `!s.remoteId` to `s.remoteId == null`
- **Browser indicators ignore hidden sessions** -- tab title `(N)` count and favicon activity badge now filter through `getVisibleSessions()` so hidden sessions don't contribute to activity counts
### API
- **`GET /api/settings/sync`** -- returns syncable settings + timestamp for federation sync (Bearer token auth)
- **`PUT /api/settings/sync`** -- accepts synced settings; applies if incoming timestamp is newer (200), rejects if older (409 with local state)
## v0.2.0 (2026-04-08) ## v0.2.0 (2026-04-08)
### Features ### Features
+1 -1
View File
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
[project] [project]
name = "muxplex" name = "muxplex"
version = "0.2.1" version = "0.3.0"
description = "Web-based tmux session dashboard — access all your tmux sessions from any browser" description = "Web-based tmux session dashboard — access all your tmux sessions from any browser"
readme = "README.md" readme = "README.md"
license = { text = "MIT" } license = { text = "MIT" }