From 25be3354c0f77018d9d7d8e8c71fced5460a0483 Mon Sep 17 00:00:00 2001 From: Benjamin Date: Fri, 7 Aug 2026 16:31:22 -0400 Subject: [PATCH] chore(release): v2.24.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bump every version reference from 2.23.2 to 2.24.0 (backend __version__, frontend package.json and lock, both image-pinning compose files, prereq.sh, README and USER_MANUAL callouts, the docs/index.html footer stamp). scripts/check_version_sync.py passes. Docs for the release: - README gains a Features bullet for dated message timestamps (#140). The station-positions bullet (#141) landed with that PR and is unchanged. - USER_MANUAL section 3 gains a Timestamps paragraph covering the same behaviour, including the midnight rollover. - docs/legality.html moves its reviewed date to August 2026: the #positions section was added after the July review. No transmission behaviour changed in this release, so the compliance content itself is untouched. The docs/index.html feature grid is deliberately left alone — it is a curated marketing grid, not a changelog, and the positions card is already there. --- README.md | 7 ++++++- USER_MANUAL.md | 4 +++- backend/__init__.py | 2 +- docker-compose.images.yml | 4 ++-- docker-compose.portainer.yml | 8 ++++---- docs/index.html | 2 +- docs/legality.html | 2 +- frontend/package-lock.json | 4 ++-- frontend/package.json | 2 +- prereq.sh | 2 +- 10 files changed, 22 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index f089cd8..febcdbf 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ show how it's done. Hearthwave is a fork of GMRS-TTY that replaces the desktop PySide6 UI with a browser-based React frontend communicating over WebSocket. -> **Latest release:** v2.23.2 +> **Latest release:** v2.24.0 ## Who uses it @@ -52,6 +52,11 @@ browser-based React frontend communicating over WebSocket. none of them has a transmit path, and each is off by default (see [Position reports](https://xpiatio.github.io/Hearthwave/legality.html#positions) for why "APRS on GMRS" is not what it sounds like) +- **Dated message timestamps** — a message from an earlier day now carries its + date next to the time, so a transcript left up overnight, a long net log, or a + wall display that has been running for a week no longer reads as though + everything arrived in the last few minutes. Timestamps roll over on their own + at midnight without a reload. - **Audio devices remembered by name** — device selections are stored by name rather than by index, so they survive new hardware being plugged in or a card that was busy at boot instead of silently shifting the station onto the wrong diff --git a/USER_MANUAL.md b/USER_MANUAL.md index 25cd25f..4c911eb 100644 --- a/USER_MANUAL.md +++ b/USER_MANUAL.md @@ -1,6 +1,6 @@ # Hearthwave User Manual -> **Version:** v2.23.2 +> **Version:** v2.24.0 This manual covers day-to-day operation of Hearthwave as a GMRS family hub or neighborhood watch base station — a shared radio operating station where every household member or watch volunteer connects from their own device. For installation and server setup, see [README.md](README.md). @@ -206,6 +206,8 @@ Each received entry is labelled **[RX]** in the chat (in green). Outgoing entrie **Read Aloud:** Enable the **READ ALOUD** button in the top bar to have finalized RX transcripts spoken aloud through your browser. The station's TTS voice is used. Useful for eyes-busy operation or hearing-accommodated operators. This is a per-account preference and does not affect other users. +**Timestamps:** Every entry carries the time it arrived, in your browser's timezone. Anything from today shows the time alone; anything older also shows its date, so scrolling back through a long net — or glancing at a wall display that has been up for a week — never leaves you guessing which day a message belongs to. The change happens by itself at midnight; you do not need to reload. + --- ## 4. Sending a message (TX) diff --git a/backend/__init__.py b/backend/__init__.py index 2e61bcc..f2a05cf 100644 --- a/backend/__init__.py +++ b/backend/__init__.py @@ -1,3 +1,3 @@ """Hearthwave backend package.""" -__version__ = "2.23.2" +__version__ = "2.24.0" diff --git a/docker-compose.images.yml b/docker-compose.images.yml index fe2a942..67ccdc1 100644 --- a/docker-compose.images.yml +++ b/docker-compose.images.yml @@ -10,10 +10,10 @@ services: backend: build: !reset null - image: ghcr.io/xpiatio/hearthwave-backend:v2.23.2 + image: ghcr.io/xpiatio/hearthwave-backend:v2.24.0 pull_policy: always frontend: build: !reset null - image: ghcr.io/xpiatio/hearthwave-frontend:v2.23.2 + image: ghcr.io/xpiatio/hearthwave-frontend:v2.24.0 pull_policy: always diff --git a/docker-compose.portainer.yml b/docker-compose.portainer.yml index 6f0a762..e6e3afd 100644 --- a/docker-compose.portainer.yml +++ b/docker-compose.portainer.yml @@ -1,4 +1,4 @@ -# Hearthwave v2.23.2 — Portainer stack (pre-built images, no source required) +# Hearthwave v2.24.0 — Portainer stack (pre-built images, no source required) # # QUICK START # ----------- @@ -49,7 +49,7 @@ # CUDA (GPU) VARIANT # ------------------ # If the host has an NVIDIA GPU, swap the backend image tag to the -cuda suffix: -# image: ghcr.io/xpiatio/hearthwave-backend:v2.23.2-cuda +# image: ghcr.io/xpiatio/hearthwave-backend:v2.24.0-cuda # The CUDA image uses onnxruntime-gpu for accelerated Whisper inference. # Requires the NVIDIA Container Toolkit on the host and the `deploy` section: # deploy: @@ -62,7 +62,7 @@ services: backend: - image: ghcr.io/xpiatio/hearthwave-backend:v2.23.2 + image: ghcr.io/xpiatio/hearthwave-backend:v2.24.0 volumes: - hearthwave-data:/data - hearthwave-voices:/app/Voices:ro @@ -89,7 +89,7 @@ services: start_period: 30s frontend: - image: ghcr.io/xpiatio/hearthwave-frontend:v2.23.2 + image: ghcr.io/xpiatio/hearthwave-frontend:v2.24.0 ports: - "80:8080" volumes: diff --git a/docs/index.html b/docs/index.html index 5f44889..6ed0cf8 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1190,7 +1190,7 @@

Bring the whole family on
- © 2026 Hearthwave · MIT licensed · v2.23.2 + © 2026 Hearthwave · MIT licensed · v2.24.0 Open source · FCC Part 95 · WCAG 2.2 AA · No cloud, no fees
diff --git a/docs/legality.html b/docs/legality.html index ff11fe0..ae16674 100644 --- a/docs/legality.html +++ b/docs/legality.html @@ -748,7 +748,7 @@

Primary sources

- © 2026 Hearthwave · MIT licensed · Reviewed July 2026 + © 2026 Hearthwave · MIT licensed · Reviewed August 2026 Informational only — not legal advice
diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 41c820d..7c62f22 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -1,12 +1,12 @@ { "name": "hearthwave-frontend", - "version": "2.23.2", + "version": "2.24.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "hearthwave-frontend", - "version": "2.23.2", + "version": "2.24.0", "dependencies": { "@dnd-kit/core": "^6.3.1", "@dnd-kit/sortable": "^10.0.0", diff --git a/frontend/package.json b/frontend/package.json index c9971ff..18ce729 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,7 +1,7 @@ { "name": "hearthwave-frontend", "private": true, - "version": "2.23.2", + "version": "2.24.0", "type": "module", "engines": { "node": ">=22.12" diff --git a/prereq.sh b/prereq.sh index a3c6445..ebd065f 100644 --- a/prereq.sh +++ b/prereq.sh @@ -37,7 +37,7 @@ while [[ $# -gt 0 ]]; do esac done -BACKEND_IMAGE="ghcr.io/xpiatio/hearthwave-backend:v2.23.2" +BACKEND_IMAGE="ghcr.io/xpiatio/hearthwave-backend:v2.24.0" VOICES_VOL="hearthwave-voices" MODELS_VOL="hearthwave-models" DATA_VOL="hearthwave-data"