NewTon DC Tournament Manager v5.0.1-beta.1 — March 26, 2026
Download v5.0.1-beta.1NewTon DC Tournament Manager v5.0.1-beta.1 closes the first half of the QR round-trip. The Chalker can now generate a signed result QR at the end of any QR-assigned match. The Tournament Manager operator scans it to record the result — no typing, no shouting across the venue.
This is a beta release for testing the result QR payload and scanning flow. The Tournament Manager scanning side is not yet implemented — that completes the round-trip in the next step.
When a match was started from a Tournament Manager assignment QR, a Result QR button appears on the Match Complete screen alongside Rematch, New Match, and History. Tap it — a modal shows the signed QR code, with a title (Winner beat Loser 2-0) and a subtitle summarising the format. Point the Tournament Manager camera at the code to record the result.
The button is not shown for manually started matches — the match ID, tournament ID, and server ID needed for TM routing are only present when the match was QR-assigned.
The result QR encodes a JSON payload signed with CRC-32 (newton-integrity.js). It carries:
mid, tid, sid — echoed from the assignment QR so the TM can route the result to the correct matchp1, p2sc, bo, mr, optional lnw (1 or 2)flsw), base64-encoded visit scores (s), checkout darts (cd)crc (CRC-32)The Tournament Manager derives all statistics — averages, high finishes, score ranges — from the raw visit scores. The payload is minimal by design.
Each visit score (0–180) fits in a single unsigned byte. Per leg, both players' visit scores are packed into byte arrays, base64-encoded, and joined with |: P1_SCORES|P2_SCORES. This saves ~45% compared to JSON number arrays and keeps the QR code at a comfortable scan density.
When max rounds is reached without a checkout, the tiebreak round is not recorded in the visit scores — it's a separate 3-dart mechanism. cd = 0 signals the leg was a tiebreak; legs[].w records who won. The TM uses both fields to reconstruct the correct result.
QR-assigned matches retain all the data needed to regenerate the result QR. A Result QR button appears at the bottom of the match detail screen in Chalker history for any QR-assigned match. A missed scan can always be recovered — no need to replay the match.
<link rel="canonical"> tags added to all 25 HTML pages. Each page points to its own URL on newtondarts.com (no www), resolving a Google indexing issue where www.newtondarts.com was being treated as the canonical origin. Directory index pages use a trailing slash: https://newtondarts.com/releases/.
When a QR-assigned match had no lane set in the Tournament Manager, the Chalker info bar showed "Lane undefined". Fixed — the bar now shows only Leg N of M (and Ref: name when present) when no lane is assigned.
Leg average highlighting for the first-throwing player used an inline style attribute, which was blocked by the server's style-src 'self' Content Security Policy. Replaced with a CSS class (.leg-avg-first). The highlighting now works correctly in the deployed app.
<link rel="canonical"> added to eachreleases/README.md — canonical link instructions added as Step 3; HTML template updatedchalker/lib/qrcode-generator.js — new file; QR generation library (qrcode-generator v1.4.4, copied from TM's lib/)chalker/index.html — Result QR button on end screen; #result-qr-modal markup; Result QR button in history detail; qrcode-generator.js script tag; "Tournament Manager" in place of "TM" in QR hint textchalker/js/chalker.js — buildResultPayload(), showResultQRModal(), uint8ToBase64(); show/hide Result QR button in end screen and history detail; lane undefined fix in startMatchFromQR(); inline style replaced with .leg-avg-first classchalker/styles/chalker.css — .leg-avg-first and .result-qr-code styleschalker/sw.js — version chalker-v104No migration required. Fully compatible with all existing matches and saved configurations. The result QR fields are only present in matches started from a Tournament Manager assignment QR.
NewTon DC Tournament Manager v5.0.1-beta.1 — The Round-Trip Begins.
Download v5.0.1-beta.1For older releases, see the GitHub releases page.