commit 3ddd368093593dd26ad3895c08b45628c01dc65d
parent 43d574f447e1f9f22a947bf9116586cc2a494a6c
Author: Andreas Gruhler <agruhl@gmx.ch>
Date: Mon, 16 Mar 2026 18:44:45 +0100
feat: release version 0.9
Diffstat:
3 files changed, 25 insertions(+), 4 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
@@ -1,6 +1,12 @@
-## [0.9 Unreleased]
+## [0.10 Unreleased]
### Added
-* `private` heats only visible to judges. DB migrations:
+### Changed
+### Fixed
+
+## [0.9] - 2026-03-16
+### Added
+* `private` heats only visible to judges. Toggle heat visibility. DB
+ migrations:
- [`schema/migrations/01-heats.sql`](schema/migrations/01-heats.sql)
- [`schema/migrations/02-distinct-startlist-private-heats.sql`](schema/migrations/02-distinct-startlist-private-heats.sql)
- [`schema/migrations/03-score-summary-function.sql`](schema/migrations/03-score-summary-function.sql)
@@ -8,8 +14,23 @@
### Changed
* PostgreSQL 17 in docker-compose dev setup
* Remove API echo endpoint
+* feat(leaderboard): cleanup websocket on component change
+ - This stores the websocket connection in the Leaderboard as a state
+ variable. The variable is cleaned up when the component Leaderboard is
+ exited. For example, when a judge switches to a different tab/component (e.g.,
+ Scoring), the socket to the server is closed and only recreated when the
+ tab/component is changed again (to the Leaderboard).
+* Swap navigation active colors for styles (darker is active)
+* feat: new title setting (see [`README.md`](./README.md)) and slightly change
+ blue color style
### Fixed
+* Fix input alignment, align checkboxes
+* fix(139): first scoring js error
+* fix(141): undefined input var
+ - Lead to strange behavior for different API paths, where the POST body of a
+ first request was used as "input" for a subsequent request
+* Fix unreachable return (introduced in `ddf659b0`)
## [0.8] - 2026-01-07
* fix: CVE-2024-47764 and CVE-2024-21538
diff --git a/package.json b/package.json
@@ -1,7 +1,7 @@
{
"name": "myheats",
"private": true,
- "version": "0.9.0-nightly",
+ "version": "0.9.0",
"type": "module",
"scripts": {
"dev": "vite",
diff --git a/src/frontend/App.jsx b/src/frontend/App.jsx
@@ -112,7 +112,7 @@ function Layout() {
<footer>
<br />
{showVersion === 'true' ?
- <span>MyHeats <a href="https://code.in0rdr.ch/myheats/refs.html">v0.9-nightly</a></span> : '' }
+ <span>MyHeats <a href="https://code.in0rdr.ch/myheats/refs.html">v0.9</a></span> : '' }
{showLogo === 'true' ?
<span className="logo"><img src={logoUrl} alt="Logo" /></span> : '' }
<span>