Skip to content

Releases: selkies-project/pcmflux

8e04d04

8e04d04 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 27 Sep 11:45

docs: Put the README's badges on one line

e5d6f17

e5d6f17 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 26 Sep 13:50

fix(ogg): Say another account owns a sink path instead of logging its uid

CodeQL's rust/cleartext-logging flags the owner's uid written to the log
when a sink path belongs to another account. The line still names the
path, which is what an operator inspects, so the uid adds nothing the
path does not lead to.

Reproduced with CodeQL 2.27.1 and the rust-code-scanning suite, extracted
without a build as the CodeQL workflow does: one result at
ogg_sink.rs:130 on main, none after. cargo test --lib passes (29, one
ignored); a bind on a root-owned path returns None, leaves the file as it
was, and logs "ogg sink not bound on : another account owns it".

1e4d265

1e4d265 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 25 Sep 16:52
1e4d265

ci: Pin the Rust toolchain action by commit

ea1c3e0

ea1c3e0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 24 Sep 16:11
ea1c3e0

docs: Note the interpreter range through 3.15 in the agent instructions

77985c9

77985c9 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 24 Sep 03:29
77985c9

docs: Open the README with how to install, from a release wheel or from source

2.1.0

Choose a tag to compare

@github-actions github-actions released this 23 Sep 14:35
61ed920

pcmflux 2.1.0

A feature release adding an observable lifecycle to capture and playback, up-front settings validation, bytes-like input for the playback path, and a license inventory of the crate graph.

New Features

  • Observable lifecycle : state ("idle" / "starting" / "running" / "failed") and last_error on both AudioCapture and AudioPlayback. A run that fails after start_capture() / start() returns — PulseAudio taking longer than the start handshake, or dropping out mid-run and failing to reconnect — is now visible to the caller: state moves to "running" or to "failed" with the reason in last_error, so a caller can poll and restart. is_capturing / is_running are true only in the "running" phase
  • Up-front settings validation : invalid settings raise ValueError before any thread is spawned, rather than failing later on the worker. A device_name containing an interior NUL is rejected (it becomes a C string), and AudioPlaybackSettings.latency_ms / max_buffer_bytes must be positive
  • Bytes-like playback input : AudioPlayback.write() and write_red() accept any contiguous bytes-like object (bytes, memoryview, bytearray, or another buffer-protocol exporter), not just bytes, and raise BufferError for a non-contiguous buffer

Resilience & Fixes

  • The lifecycle state machine (IDLE → STARTING → RUNNING, then FAILED with a last_error or back to IDLE on a clean stop) is the single source of truth for a run's status, cleared when a new run is spawned so a stale error never leaks into the next start
  • write() / write_red() remain gated on a live worker, so feeding a dead or failed playback stream raises instead of silently swallowing audio

Build & CI

  • License inventory : LICENSES.md documents the crates and the linked native libraries — libpulse (LGPL-2.1-or-later) and libopus (BSD-3-Clause). pcmflux/deny.toml keeps the crate graph permissive, run by the new Licenses workflow; a crate that links native code must be listed before the check passes

61ed920

61ed920 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 23 Sep 14:00
61ed920

docs: Write every list of three or more with the serial comma

527b67a

527b67a Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 23 Sep 10:33
527b67a

ci(release): Refuse a tag whose commit is not on main

2055863

2055863 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 22 Sep 09:33
2055863

ci: Publish the release wheels to PyPI through a trusted publisher, by default for a release designated as the latest

a8673ac

a8673ac Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 22 Sep 17:12
a8673ac

ci: Confine deployments, releases, image pushes and tags to main and its tags, and build every other ref self-contained