From 71bb7c0cf26ee874d47d3020674bc219fec26863 Mon Sep 17 00:00:00 2001 From: Greg Gauthier Date: Sat, 6 Jun 2026 11:59:28 +0100 Subject: [PATCH] docs: document per-favorite volume persistence and narrow scope; prepare v2.1.1 --- CHANGELOG.md | 13 +++++++++++++ README.md | 10 ++++++---- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7037490..eb766ad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,19 @@ All notable changes to gostations will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [2.1.1] - 2026-06-07 + +### Added +- Per-favorite volume persistence: the last volume set while playing a station that is in your favorites list is remembered and restored the next time you play that specific favorite. Non-favorited stations continue to use the global last volume (from `radiostations.ini` or the default). +- Volumes for favorites are stored inside `favorites.json` (no separate file), using the existing atomic save/load pattern. + +### Changed +- Playback entry now prioritizes: per-favorite saved volume (if the station is favorited) > live session volume (for stickiness across `s`/`x` within a run) > global last volume. +- Volume changes while playing a favorite also update the per-favorite volume (saved immediately, like global). +- Explicit saves of per-favorite volume on `s`/`x` stop and on quit (in addition to per-change saves). + +See the `todo/queued/per-station-volume.md` for implementation details and the narrowed scope (favorited stations only). + ## [2.1.0] - 2026-06-06 ### Added diff --git a/README.md b/README.md index 62e4e3b..88ca88d 100644 --- a/README.md +++ b/README.md @@ -60,7 +60,7 @@ A compact, Winamp-inspired screen: - A vertical volume bar to the right of the metadata (dark gray background, green fill from the bottom; same height as the viewer; small gap). - Keyboard-driven on-screen controls: - `←` / `→` (or `h`/`l`) — skip back/forward. - - `↑` / `↓` — volume up/down. + - `↑` / `↓` — volume up/down (per-favorite volume is restored when starting a favorited station; changes are saved for that favorite). - `m` / `M` — mute / unmute. - `Space` or `p` / `P` — play / pause. - `s` / `S` / `x` / `X` — stop playback and return to the station list. @@ -113,6 +113,8 @@ Notable keys: Favorites are stored as JSON (`favorites.json`) in the same directory. The TUI prefers loading favorites first when any exist. +Per-favorite volume preferences are also stored in the same `favorites.json` file (only for stations you have explicitly favorited). When you start playback for a favorited station, its last-used volume is restored (falling back to the global last volume or the default). Volume changes while playing a favorite are persisted for that station. Non-favorites always use the global last volume. + ## Develop (for power users & developers) ### Prerequisites @@ -140,10 +142,10 @@ See the `Makefile` for the exact ldflags, per-platform `go mod download`, and th ### Releasing ```bash -./release.sh v2.1.0 +./release.sh v2.1.1 # or manually -git tag -a v2.1.0 -m "..." -git push origin v2.1.0 +git tag -a v2.1.1 -m "..." +git push origin v2.1.1 ``` `release.sh` does a clean-tree check, creates the annotated tag, optionally runs `grokkit changelog` (best-effort), and pushes. The Gitea Actions workflow (`.gitea/workflows/release.yml`) then: