Files
courtside/CHANGELOG.md
T
bkvargyas 6a3f966758 Release 0.2.0: changelog, version reporting, push-to-deploy
- CHANGELOG.md following Keep a Changelog, covering 0.1.0 and 0.2.0
- server/version.js reads the version from package.json; /healthz returns it
  and the footer renders it, so a deployment always states what it is serving
- bump package.json 0.1.0 -> 0.2.0
2026-09-03 17:31:21 -04:00

2.4 KiB

Changelog

All notable changes to Courtside are recorded here. The format follows Keep a Changelog, and versions follow Semantic Versioning.

The running version is reported at GET /healthz and shown in the page footer, so you can always tell what a deployment is actually serving.

[Unreleased]

[0.2.0] - 2026-09-03

First deployed release. Courtside now runs as a managed stack rather than a docker compose up on someone's laptop.

Added

  • docker-compose.komodo.yml — deployment compose for a host that already sits behind a shared Cloudflare Tunnel. Publishes a host port instead of bundling a cloudflared sidecar, so there is one tunnel to operate rather than one per app.
  • Version reporting: server/version.js reads the version from package.json; GET /healthz returns it as version, and the footer renders Courtside v<x.y.z>.
  • This changelog.
  • Push-to-deploy: a push to main triggers a rebuild and redeploy of the stack.

Notes

  • The original docker-compose.yml (app + its own cloudflared) is unchanged and still the right choice for a standalone install, as documented in docs/DEPLOY.md.
  • No database migration. State is JSON documents in SQLite created with CREATE TABLE IF NOT EXISTS; upgrading is a container replacement.

[0.1.0] - 2026-09-03

Initial MVP.

Added

  • Tournament engine with no I/O (engine/): round-robin pools, single and double elimination with bracket reset, pools-then-bracket, configurable rally scoring (points, win-by, cap, best-of), standings with tiebreaks, and a court engine that assigns matches as courts free up and maintains an "up next" queue with ETAs.
  • One-QR-code public flow: /t/<slug> is the sign-up form during check-in, then the roster, then the live board, then the results page — no re-scanning.
  • Per-team pages at /t/<slug>/team/<code> with on-deck and up-now alerts.
  • Organizer desk at /admin: create tournaments, manage teams, generate pools and brackets, score matches, correct results, withdraw teams, pause and swap courts, broadcast messages, print QR codes.
  • TV display mode at /t/<slug>/display.
  • Live updates over a WebSocket at /ws/<slug>, with a state re-fetch as a fallback.
  • Docker image and compose files, deploy/architecture/organizer/API docs, engine unit tests, an HTTP smoke test, and a full-day simulator.