From abc8531cfac30f23bef3b90c53f3d2b6d56f9df7 Mon Sep 17 00:00:00 2001 From: Mollusk Date: Sat, 27 Jun 2026 17:18:36 -0400 Subject: [PATCH] chore(release): bump to 0.5.0 + add CHANGELOG Version bump 0.4.0 -> 0.5.0 (Cargo.toml/lock, Windows .iss, PKGBUILD placeholder) and a new CHANGELOG.md covering the 21 commits since v0.4.0 (A9 context menu, W21 selectable text, A25 clock-skew, A23 screen-share per-app audio, A15 reliable critical commands, A24 per-peer volume, Tier-C security caps, Debian/Arch packaging). Co-Authored-By: Claude Opus 4.8 --- CHANGELOG.md | 27 +++++++++++++++++++++++++++ Cargo.lock | 2 +- Cargo.toml | 2 +- packaging/PKGBUILD | 2 +- packaging/windows/peerspeak.iss | 2 +- 5 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..c9e123e --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,27 @@ +# Changelog + +All notable changes to PeerSpeak are documented here. + +## [0.5.0] — 2026-06-27 + +### Added +- **Right-click context menu** (Cut / Copy / Paste / Select All) on every text-entry field. (A9) +- **Selectable, copyable text** for values that used to be read-only: your full node ID and the room ticket can now be click-selected and copied, and **chat messages are drag-selectable** (highlight + Ctrl+C / Ctrl+A) while clickable links keep working. (W21 Phase 1 + 2) +- **Clock-skew warning**: when a peer can't be seen because the two systems' clocks differ by more than the replay-protection window, PeerSpeak now shows a "your clocks are out of sync" banner instead of failing silently. (A25) +- **Per-application audio capture for screen-share**, removing the call-audio loopback echo when sharing a window, plus surfacing of pixelpass startup errors. (A23) + +### Changed / Fixed +- **Critical commands are now delivered reliably under load** — muting, releasing push-to-talk, and leaving a room can no longer be silently dropped while a slider is being dragged (prevents a hot-mic state mismatch). (A15) +- Screen-share now passes `--strict-audio` and surfaces app-audio drop warnings; the source picker state machine and pactl handling were hardened. (A23) +- Per-peer volume control path verified and covered by regression tests. (A24) + +### Security +- Hardened against insider resource-exhaustion: bounded + author-keyed chat attachment cache, capped recovery-identity state, and other Tier-C caps (F-01 / F-02 / F-03 / F-12). + +### Packaging +- Added Debian/Ubuntu `.deb` packaging (cargo-deb metadata); the official `.deb` is now built on **Debian 12 (bookworm)** for wide compatibility. +- Arch `PKGBUILD` clones over anonymous HTTPS. + +[0.5.0]: https://gitbutter.xyz/mollusk/peerspeak/releases/tag/v0.5.0 + +Earlier releases: see git tags `v0.4.0`, `v0.3.0`, `v0.2.0`. diff --git a/Cargo.lock b/Cargo.lock index 0dbff5f..910a24b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4871,7 +4871,7 @@ checksum = "35fb2e5f958ec131621fdd531e9fc186ed768cbe395337403ae56c17a74c68ec" [[package]] name = "peerspeak" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "async-trait", diff --git a/Cargo.toml b/Cargo.toml index 04ee9ee..dc690ac 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "peerspeak" -version = "0.4.0" +version = "0.5.0" edition = "2024" description = "Decentralized peer-to-peer voice chat (Rust/iroh/PipeWire/Opus/iced)" # Application crate, not a crates.io library — refuse `cargo publish` and let diff --git a/packaging/PKGBUILD b/packaging/PKGBUILD index 72ac02a..f13b583 100644 --- a/packaging/PKGBUILD +++ b/packaging/PKGBUILD @@ -1,7 +1,7 @@ # Maintainer: mollusk pkgname=peerspeak-git _pkgname=peerspeak -pkgver=0.4.0.r254.g913b0b6 +pkgver=0.5.0.r0.g0000000 pkgrel=1 pkgdesc="Decentralized peer-to-peer voice chat (Rust/iroh/PipeWire/Opus/iced)" arch=('x86_64') diff --git a/packaging/windows/peerspeak.iss b/packaging/windows/peerspeak.iss index a8e38d6..32339fb 100644 --- a/packaging/windows/peerspeak.iss +++ b/packaging/windows/peerspeak.iss @@ -12,7 +12,7 @@ ; (x86_64-pc-windows-gnu, statically linked -- no extra DLLs needed). #define MyAppName "PeerSpeak" -#define MyAppVersion "0.4.0" +#define MyAppVersion "0.5.0" #define MyAppPublisher "mollusk" #define MyAppExeName "peerspeak.exe"