diff --git a/TODO.md b/TODO.md index 1e89e85..49d791e 100644 --- a/TODO.md +++ b/TODO.md @@ -102,6 +102,20 @@ the finish is supposed to leave behind. `result.json` carries `victoryTeam` and `victoryPlayerId` now, because a forced victory leaves the loser's units standing and a report inferring the winner from the counts would get that case backwards. +- [x] **The report arrives in about a second, not about ten.** + `watch/results.sh` writes the result into the staged web folder as + `decided.json` before it uploads anything - 348ms from the host writing + it to the page being able to fetch it, measured in the container - and + `report.js` polls that a second at a time with the S3 read demoted to a + fifteen-second fallback. The five-second settle now covers only the + images it was always for. + + There is no event to use instead. Suramadu forwards a window title when + it creates the window and not when it changes, so MegaMek relabelling + its frame "Victory phase" on every phase change never reaches the + browser: a probe on `base.processMessage` saw exactly one title across + six rounds of a live match. If a Suramadu bump ever starts sending + them, that is the zero-latency signal and this poll can go. - [ ] **A reload after the container stops has nothing to show.** The report lives in the page the container serves, so refreshing it once the task is gone gets the proxy's 502 rather than the match's result. The durable