Skip to content
- api: add six achievements (d7c7422)
- api: add six achievements (3a34945)
- uncap session scores and add session notes (7ed081b)
- uncap session scores and add session notes (52b32e5), closes #86
- deps: bump certifi to 2026.10.23 (GHSA-6q48-6c7w-9gw2) (7aebee8)
- deps: bump certifi to 2026.10.23 (GHSA-6q48-6c7w-9gw2) (b5490ad)
- deps: update dependency dompurify to v3.4.17 [security] (#103) (79f7f02)
- deps: update dependency pillow to v13 [security] (0c7c98e)
- deps: update dependency pillow to v13 [security] (4c48d0e)
- deps: update dependency zod to v4.6.6 [security] (#104) (381b2ee)
- drop leftover score_at_least import after merge with main (b94f80e)
- deps: patch Dependabot security alerts (4605215)
- deps: patch Dependabot security alerts (8ed027b)
- deps: regenerate docs-site lockfile with npm 10 (355ff80)
- web: keep searched BGG alternate name when adding a game (03b5e9e)
- web: keep searched BGG alternate name when adding a game (d4212f2), closes #73
- web: render post text in the theme foreground colour (f513ecc)
- web: render post text in the theme foreground colour (fc68420)
- infra: fit media behaviours in CloudFront free-plan limit (8a8aed4)
- infra: fit media behaviours in CloudFront free-plan limit (796e7fa)
- add session-photos media prefix and upload key helpers (3517db4)
- api: add Giant Slayer achievement (30fcedb)
- api: add quarterly season helpers and champion rule (7562502)
- api: game-night photo upload, confirm, delete and cascade (0e1be62)
- api: season-scoped stats, season list and player season titles (f0a2be6)
- quarterly seasons, Giant Slayer achievement and game-night photos (27d2dba)
- web: attach photos when logging a game night (0398cfb)
- web: game-night photo strip, lightbox and upload (2861a44)
- web: season leaderboard scope and champion chips (5e8cb80)
- api: map BoardGameGeek failures to 502/504/404 (1d0c9e6)
- api: stop user writes clobbering concurrent changes; trust DB role (b9fd0c0)
- bind photo uploads to a server-issued size and token (0a30e62)
- defects from maintenance review (API + web) (0778906)
- delete session photos before the result (5893db2)
- surface startup failures and 404 unknown API paths (cc4dcc2)
- web: clear the query cache when a session ends (7cf3cd8)
- web: compute the result-date bound per validation (b450196)
- web: give every API error a status so 4xx is not retried (1cb81df)
- web: ignore a malformed ?season deep link on the leaderboard (e18b8e4)
- web: keep previous stats while a new season loads (7f56f0a)
- web: lightbox arrow keys work from any focused element (597e0c5)
- web: only fetch the admin-only user list when logging a result (2c4b970)
- api: reuse one SQLite connection per table (f2bb917)
- deps: update dependency pyjwt to v2.15.1 (361caa7)
- api: path containment checks in CodeQL-recognised form (61d6233)
- api: path containment checks in CodeQL-recognised form (b82085a)
- web: second UI review pass — layout, labels, contrast (ec65c62)
- web: strip HTML via DOMParser instead of regex (70c447f)
- web: mobile UI fixes from UI review (2591e43)
- web: mobile UI fixes from UI review (e45cc7c)
- configurable source and docs links on landing page (acdba91)
- GitHub source button in landing header (d0f6250)
- home page source link follows settings (ff40013)
- home page source link follows settings (14c4361)
- landing header links (configurable) + spacing pass (3dfadc6)
- landing headline names what the app does (380b4d6)
- landing page showcase + opt-in project info (1faba44)
- landing page showcase + opt-in project info (7f6b231)
- plainer landing page copy (67aa45c)
- plainer landing page copy (e2a2364)
- rename landing section to Recommendations (f8b052b)
- tighter landing spacing, extras under screenshots (54bb0d2)
- use instance display name on every page (eb41cf6)
- use instance display name on every page (3541c35)
- bump PyJWT to 2.14.0 and refresh base image for CVEs (480910a)
- bump PyJWT to 2.14.0 and refresh base image for CVEs (08aa04f)
- compose: bind published port to 127.0.0.1 by default (APP_BIND) (26bcec5)
- compose: run app as PUID/PGID and name services mc-gamertime (b21b698)