Changelog

All notable changes to judgesroom.com.

2.3.0

30 August 2026

This release follows Competition Judge Guide 2.0. New rooms use the 2.0 Engineering Notebook and Team Interview forms. Rooms created in 2.2.0 or earlier stay on 1.0 — you cannot change that pin after setup. Joining a 1.0 room shows a notice so you can create a new room if you need 2.0.

Added

  • Engineering Notebook rubric 2.0. Sixteen criteria on a 4-point scale (max 64). Saved 1.0 notebooks still open with the scores they already have. The 2.0 form has no Innovate Award notes field.
  • Team Interview rubric 2.0. Listen-fors, sample questions, per-criterion notes, and a 0–2 scale (max 12). The public print pages now print the 2.0 blanks.
  • Phone layouts for notebook and interview scoring.

Changed

  • Copy now uses the official name Competition Judge Guide instead of judging guidelines.

2.2.0

17 August 2026

You can run a Judges' Room on a laptop at the venue, without depending on judgesroom.com or a working internet uplink.

Added

  • A standalone server for local event hosting. Unzip it somewhere writable, double-click Start, open a printed LAN URL on the host computer (never localhost), try that URL on a judge's device, then create the room and share the same address. No install, port-forwarding, or Cloudflare account. Each zip includes LICENSE. Download from GitHub Releases:
    • judgesroom-standalone-windows-x64.zip — Windows 10/11
    • judgesroom-standalone-macos-arm64.zip — Apple Silicon Macs (M1 and later)

Changed

  • The README now documents standalone hosting and the production-mode steps for running the web app from source.
  • The privacy page now states that room IDs and access-control tokens cannot be guessed in practice, and that the 7-day interview-photo timer applies on judgesroom.com. If you host the app yourself, photos stay until you destroy the room unless you set a retention policy.

2.1.0

16 August 2026

Judge Advisors can lock a room to personal access links, capture interview photos, and manage judges from a dedicated tab. Rooms created in 2.0.0 migrate automatically.

Added

  • Team interview photos. Judges can capture and review photos from the rubric screens without slowing the overview table. Photos are stored privately and served only through authenticated routes. Deleting a photo asks for confirmation. Caps: 10 photos per team, 500 per room, 3 MB after compression. On judgesroom.com, leftover photos are deleted after 7 days even if the room is not destroyed.
  • Access control with personal access links. When it is on, each judge and the Judge Advisor joins only with their own link. Rotating a link kicks devices that used the old one. Join failures show why the link was denied instead of a generic connection error.
  • A Judges tab for roster, personal access links, connected devices, and moving teams between judge groups. Judge Advisors can download a CSV of access links to distribute — treat those links like passwords.
  • When access control is on, Judge Advisors can author rubrics by selecting a judge on the rubric tab. Role switching is unavailable in that mode, so this replaces the old “Switch to Judge” dead end.
  • Operational caps (photos, connections per judge link, room lifetime, field lengths) are listed in docs/limits.md.
  • A set-up room is retained for a maximum of 90 days after the last Event Setup save. For rooms created before 2.1.0, that 90-day period starts the next time the room is opened. Destroy the room at the end of the event; do not rely on this timer for confidentiality.

Changed

  • New rooms use shorter 18-character IDs so share and access links stay compact. Existing UUID rooms and printed links still work.
  • Event names can be up to 200 characters.
  • Leaving the room tells the server, so that device drops off the connected-devices list instead of looking like a kick.
  • Copy-to-clipboard is hidden outside a secure context (for example HTTP on a LAN), where the browser would block it.
  • Rubric columns on the teams list scroll horizontally when a team has many submissions.

Fixed

  • When adding Design Award nominations, teams already nominated for the paired Excellence Award are treated as ineligible, so the same team cannot sit on both lists.

Security

  • When access control is on, each judge access link is limited to 100 live connections. Extra browser tabs and devices on the same link count; a 101st connection is refused. Judge Advisor links, and rooms with access control off, stay uncapped.
  • Room IDs are validated before join and photo routes. Query and hash are stripped from Google Analytics URLs so room IDs are not sent to analytics.
  • Incoming WebSocket messages larger than 1 MB are rejected. Interview photos stay on HTTP upload, not the WebSocket.
  • After a room is destroyed, that server isolate refuses new work until it is evicted, instead of accepting connections against missing data.
  • Auth tokens use a uniform URL-safe alphabet. Judge Advisor tokens are compared in constant time. Photo responses send X-Content-Type-Options: nosniff.
  • Drizzle ORM is updated to 0.45.2 to address CVE-2026-39356 (SQL identifier injection in self-hosted and hosted deployments).

2.0.0

27 June 2026

This release follows the GRSF VEX Competition judging guidelines: Design Award, Nominated Awards, and the current Engineering Notebook and Team Interview rubrics.

Added

  • Design Award as a judged award, including Event Setup options for separate Design Awards by grade at blended events. Excellence Award winners continue to be selected from Design Award finalists.
  • Engineering Notebook and Team Interview rubrics updated to the GRSF forms, with section point scales and criterion scoring that match the published guidelines.
  • Nomination and ranking flows check award requirements: team interview, grade, and a Fully Developed notebook where Design, Innovate, and Excellence require it. All notebooks can still be scored; only Fully Developed notebooks are eligible for those awards.

Changed

  • Copy, privacy policy, and rubric directions refer to the GRSF VEX Competition judging guidelines. Event import uses VEX Events instead of RobotEvents.
  • Volunteer Nominated Awards are now Nominated Awards. Sportsmanship and Energy are Nominated Awards only — they are no longer judged awards.
  • The Innovate Award submission form is no longer required for Innovate eligibility.
  • Judged-award precedence matches the guidelines. VIQRC uses the same order as other programs (Create no longer outranks Build).

Fixed

  • Rubric score totals round and sum so floating-point drift no longer changes a displayed total.

Last updated: August 2026

enzh-hk