Files
peerspeak/CHANGELOG.md
T
molluskandClaude Opus 4.8 8014edf91c
CI / check (push) Failing after 3m41s
cargo-deny / cargo-deny (push) Has been cancelled
windows-build / windows-build (push) Has been cancelled
Release 0.6.2 + AppImage packaging
Bump to 0.6.2 (Cargo + Inno .iss), promote CHANGELOG [Unreleased] -> [0.6.2].
0.6.2 rolls up the licensing (MIT + THIRD_PARTY_LICENSES) and the friends-list
liveness fixes (active offline marking, 15s refresh, manual Rescan) on the
0.6.x wire format (gossip v5, compatible with 0.6.0/0.6.1).

Adds packaging/appimage: a thin AppImage recipe (linuxdeploy) that bundles the
pixelpass screen-share helper in usr/bin so peerspeak's $PATH lookup finds it
with no code change. Assets are include_bytes!-embedded; the graphics stack and
pixelpass's gstreamer/mpv tools are left to the host. Built on Ubuntu 24.04
(glibc 2.39) for reach across Debian 13+/Fedora 40+/rolling.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 16:07:41 -04:00

5.2 KiB

Changelog

All notable changes to PeerSpeak are documented here.

0.6.2 — 2026-07-03

Fixed

  • Friends list now reflects status changes without a restart. A presence probe that fails now actively marks the friend offline, so a friend who goes offline, leaves a room, or turns invisible no longer lingers showing a stale "online" / "in a room" status until PeerSpeak is relaunched. Previously only successful probes updated the list, so it could ratchet a friend's status up but never down. The auto-refresh interval was also shortened from 60s to 15s so the list tracks changes more closely.

Added

  • Manual "⟳ Rescan" button on the Friends panel that refreshes everyone's presence immediately, instead of waiting for the next auto-refresh.

Licensing

  • PeerSpeak is now released under the MIT License (previously an unlicensed private build). Added a LICENSE file and a THIRD_PARTY_LICENSES file enumerating the full dependency manifest plus the canonical text of every referenced license, with notices for the statically bundled Opus codec and the embedded fonts (Iced-Icons, Cantarell/OFL-1.1). Both files ship in the Arch and Debian packages.

0.6.0 — 2026-06-28

Added

  • Shared music listening (W22). A new Playlist panel lets you build a personal queue of local audio files and play them on a dedicated music player — Browse to add tracks, play/pause, previous/next, seek, per-track reorder, remove, and a local volume slider, all persisted across sessions. .pls and .m3u playlists can be imported (remote and non-audio entries are skipped).
  • Tune in to a friend's music. Flip "Let others tune in" and peers see your current track under the Public tab; one click on Listen streams it to them. Playback is timeline-synced — play, pause, skip, and seek mirror across everyone with no drift — and the next track is prefetched for gapless transitions. Each listener gets an independent per-source volume, so music sits under voice at whatever level they like; voice chat stays fully audible throughout.
  • Standalone Playlist card in the 3-Column layout. The playlist now lives in its own card stacked under the chat, with a draggable divider to resize it and its own scrollbar when space is tight. The other layouts keep the playlist in the Controls panel.

Security

  • Shared-music metadata is treated as untrusted: the broadcast track name is sanitized and its size is cap-checked at gossip ingest, fetched bytes are confirmed to be audio before decoding, and only a small descriptor ever rides gossip — track bytes move point-to-point over the existing files plane, one fetch in flight at a time.

Changed

  • Wire protocol bump (gossip v5). Shared listening adds presence fields, so 0.6.0 peers cannot share a swarm with 0.5.x peers — everyone in a room must update together.

0.5.1 — 2026-06-27

Added

  • Volume control for inline chat audio clips. A master volume slider plus a Universal volume toggle now sit in the Chat panel header, and every audio attachment gets its own 🔊 slider on its play row. With Universal volume on (the default), one level applies to all clips and persists across sessions; turn it off to give each clip its own independent level.

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.

Earlier releases: see git tags v0.4.0, v0.3.0, v0.2.0.