Skip to content

Releases: maxlhuber/streamcontroller-pipeweaver-target-status

v0.2.1 — Live dropdowns & icon-only button

Choose a tag to compare

@maxlhuber maxlhuber released this 11 May 19:25

What's new

✨ Live dropdowns in config

All three config fields (PipeWeaver target name, speaker device, headphone device) are now dropdowns populated live from the PipeWeaver API when the config panel is opened. The first available option is auto-saved on first use. Falls back to free-text entry if PipeWeaver is unreachable.

🎨 Icon-only button

All text labels have been removed from the button — the speaker/headphone/unknown icons speak for themselves.

🐛 Bug fixes

  • Config panel failed to open silently: Adw.EntryRow does not support set_subtitle() — replaced with set_tooltip_text()
  • get_settings() returning None for a freshly placed action caused crashes in _settings() and _save_setting() — both now guard with or {}

Upgrading from 0.2.0

No manual steps needed. Open the config panel once after upgrading — your devices will be detected automatically and the dropdowns pre-populated.

v0.2.0 — Bug fixes & UX improvements

Choose a tag to compare

@maxlhuber maxlhuber released this 11 May 19:02

What's changed

Bug fixes

  • Eliminated double HTTP request per toggle/tick_get_current_target now accepts pre-fetched API data, halving API load and removing a race condition
  • Settings no longer written to disk on every tick — initialisation moved to on_ready, plain read-only access on polling cycles
  • Descriptive errors for API schema mismatches — deep JSON path access now catches KeyError and reports the missing key with a helpful message
  • "Configure" state on first run — button shows — Configure instead of ERR until master/speaker/headphone names are set
  • Icon selection uses consistent matchingrefresh_state now uses _match_text (case-insensitive substring) instead of raw equality comparisons

UI / UX

  • Removed dead poll-interval row from the config UI — it was visible but had no effect
  • Config subtitles are now English — were previously German while titles were English

CI

  • Ruff lint job added to the GitHub Actions workflow; runs on every push to main and must pass before a release ZIP is built

Upgrading from 0.1.1

No manual migration needed. On first launch after update the plugin will show "Configure" if your device names are not yet stored — simply open the action settings and confirm them once.

v0.1.1

Choose a tag to compare

@maxlhuber maxlhuber released this 10 May 17:05

Initial public release of the PipeWeaver Target Status StreamController plugin.\n\nHighlights:\n- dynamic speaker/headphone status icon\n- toggles a PipeWeaver target between two physical outputs\n- uses the PipeWeaver HTTP API directly for better compatibility with current daemon versions