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