Releases: maxlhuber/streamcontroller-pipeweaver-target-status
Release list
v0.2.1 — Live dropdowns & icon-only button
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.EntryRowdoes not supportset_subtitle()— replaced withset_tooltip_text() get_settings()returningNonefor a freshly placed action caused crashes in_settings()and_save_setting()— both now guard withor {}
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
What's changed
Bug fixes
- Eliminated double HTTP request per toggle/tick —
_get_current_targetnow 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
KeyErrorand reports the missing key with a helpful message - "Configure" state on first run — button shows
— Configureinstead ofERRuntil master/speaker/headphone names are set - Icon selection uses consistent matching —
refresh_statenow 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
mainand 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
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