v1.0.0 — Stability milestone

No functional change from 0.7.6. Version bump signals that the
public API (wp_usermeta storage shape, 4-button search URL
templates, stations registry shape, dedup + cap + (unknown) skip
rules) is locked. Breaking changes from here go in 2.0.0.

Five days live on wp.org, 50+ downloads, pattern ported to Tuner
(Chrome Web Store live the same day) and Buddy (wp.org r2 review).
The architecture has been validated across two marketplaces and
three family siblings. 0.x semantics no longer accurate.

Same day: Tuner v0.3.0 LIVE on Chrome Web Store ~15.5h after
submission. Radio v1.0.0 ships as the foundation that proved the
pattern.
This commit is contained in:
2026-06-09 21:38:35 +01:00
parent 63c8c060b2
commit 8b531910f6
3 changed files with 52 additions and 3 deletions
+43
View File
@@ -9,6 +9,49 @@ Format: [Keep a Changelog 1.1.0](https://keepachangelog.com/en/1.1.0/) — versi
---
## [1.0.0] — 2026-06-09 — Stability milestone
The plugin reaches version 1.0.0. **There are no functional changes from 0.7.6.** This release is a deliberate version-number signal that the public API is stable.
### What 1.0.0 commits to
From this release forward, the following surfaces are considered the **public API** and will not break in any 1.x release:
- **`wp_usermeta` storage shape**: `radio_state`, `radio_history`, `radio_favourites` — the key names, the per-user model, and the JSON shape of each entry (artist / title / station / station_id / at).
- **The 4-button search URL templates** (`radio_search_urls( $artist, $title )` → spotify / youtube / apple / bandcamp). These have already been ported byte-for-byte to RangerHQ Tuner; locking them here means downstream family members can mirror them indefinitely.
- **The Stations registry shape** (`radio_get_stations_flat()` / `radio_get_stations_grouped()` / `radio_find_station( $id )` return shapes). Custom adapter authors can rely on these.
- **The dedup rule** (sig = lowered `artist|title|station_id`, dedup against the last entry only). This is what `radio_log_track()` enforces; it's stable.
- **The cap rule** (`RADIO_HISTORY_CAP = 500`, FIFO from the front). Stable.
- **The `(unknown)` artist skip** (SomaFM dead-air placeholder is silently dropped from history). Stable.
Breaking changes to any of the above will go in 2.0.0 — not in 1.x.
### Why ship 1.0.0 now
Five days after going live on WordPress.org (2026-06-04) the plugin has 50+ downloads and the architecture has been re-used byte-for-byte by **RangerHQ Tuner** (Chrome Web Store, live 2026-06-09) and structurally re-used by **RangerHQ Buddy** (in wp.org review at time of writing). The pattern has crossed three surfaces (WordPress / Chrome browser / family-shared) and held; the public API is no longer changing every release.
The 0.x version range implicitly meant *"still iterating, might break things."* That is no longer accurate for this codebase. The 1.0.0 number is honest about what the plugin already is in practice: a mature, stable product backed by a proven cross-platform pattern.
### What 1.0.0 does NOT change
- No code touched in any source file
- No new permissions, settings, or admin UI
- No database migration required (storage shape was already locked)
- Existing user state (station / volume / history / favourites) survives intact
- Existing custom CSS / theme integrations continue to work
### Family context
This release ships the same day **Tuner v0.3.0 went LIVE on the Chrome Web Store**. Three RangerHQ family members shipped to or staying-in two marketplaces on 2026-06-09:
- **Radio** v1.0.0 (this release) — wp.org, live
- **Tuner** v0.3.0 — Chrome Web Store, live (the morning of 2026-06-09, ~15.5 hours after submission)
- **Buddy** v0.1.5 — wp.org, in round-2 review
The family pattern is now publicly proven across two platforms.
---
## [0.7.6] — 2026-06-03 — Plugin metadata cleanup (wp.org pre-review fix)
The WordPress.org Plugin Review Team's automated pre-review flagged two issues on 2026-06-03, both metadata-only — none touching the plugin code itself: