Wire-compatible refinement release (GOSSIP_PROTO stays 5). Highlights: honest chat send status + sender-side pacing (chat-hardening Phase 5), completing the chat-hardening plan; playlist drawer de-clutter + auto-resize; plus the FEC-gap and network-restart fixes already on the branch. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -4,6 +4,30 @@ All notable changes to PeerSpeak are documented here.
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
## [0.6.4] — 2026-07-18
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- **Chat now tells you when a message didn't send.** A message that couldn't go
|
||||||
|
out — because you weren't in a room, or the broadcast failed — is marked
|
||||||
|
**"⚠ Not sent"** with a **Retry** button, instead of sitting in the transcript
|
||||||
|
looking delivered. A successful send shows nothing (PeerSpeak has no
|
||||||
|
delivery/read receipts, so anything else would be a false promise).
|
||||||
|
- **Fast typing no longer loses messages.** When you fire off a quick burst,
|
||||||
|
messages past the first few are held as **"queued…"** and sent a moment apart,
|
||||||
|
matching the rate other people's clients accept. Previously a fast burst could
|
||||||
|
look sent on your end while some messages silently never reached the room.
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- **Tidier music playlist drawer.** The slide-out playlist no longer repeats the
|
||||||
|
play/skip controls already on the player bar, and the track list now grows to
|
||||||
|
fill the drawer instead of being boxed into a short scroll area, so you can see
|
||||||
|
more of your playlist at once.
|
||||||
|
- **Safer chat under the hood.** A round of chat hardening tightened how incoming
|
||||||
|
messages, display names, links, and file/image attachments are validated and
|
||||||
|
bounded, so a malformed or hostile message from a peer can't spoof a name,
|
||||||
|
replay, flood, or run the app out of memory. No change to how normal chat looks
|
||||||
|
or works.
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- **Burst packet loss no longer splices the wrong audio into the gap.** Loss
|
- **Burst packet loss no longer splices the wrong audio into the gap.** Loss
|
||||||
concealment used Opus in-band FEC even when the next packet to arrive wasn't
|
concealment used Opus in-band FEC even when the next packet to arrive wasn't
|
||||||
@@ -19,6 +43,8 @@ All notable changes to PeerSpeak are documented here.
|
|||||||
so, and only gives up (with a clear error telling you to restart) if even
|
so, and only gives up (with a clear error telling you to restart) if even
|
||||||
the fallback fails.
|
the fallback fails.
|
||||||
|
|
||||||
|
[0.6.4]: https://gitbutter.xyz/mollusk/peerspeak/releases/tag/v0.6.4
|
||||||
|
|
||||||
## [0.6.3] — 2026-07-06
|
## [0.6.3] — 2026-07-06
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|||||||
Generated
+1
-1
@@ -4871,7 +4871,7 @@ checksum = "35fb2e5f958ec131621fdd531e9fc186ed768cbe395337403ae56c17a74c68ec"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "peerspeak"
|
name = "peerspeak"
|
||||||
version = "0.6.3"
|
version = "0.6.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"async-trait",
|
"async-trait",
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "peerspeak"
|
name = "peerspeak"
|
||||||
version = "0.6.3"
|
version = "0.6.4"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
description = "Decentralized peer-to-peer voice chat (Rust/iroh/PipeWire/Opus/iced)"
|
description = "Decentralized peer-to-peer voice chat (Rust/iroh/PipeWire/Opus/iced)"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
; (x86_64-pc-windows-gnu, statically linked -- no extra DLLs needed).
|
; (x86_64-pc-windows-gnu, statically linked -- no extra DLLs needed).
|
||||||
|
|
||||||
#define MyAppName "PeerSpeak"
|
#define MyAppName "PeerSpeak"
|
||||||
#define MyAppVersion "0.6.3"
|
#define MyAppVersion "0.6.4"
|
||||||
#define MyAppPublisher "mollusk"
|
#define MyAppPublisher "mollusk"
|
||||||
#define MyAppExeName "peerspeak.exe"
|
#define MyAppExeName "peerspeak.exe"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user