The hover bug: how desktop players were peeking for free
The whole game rests on one number: how many of the 64 tiles you peeled before you named the record. Peel fewer, score higher. Everything else — the leaderboard, the streak, the little flourish of naming a sleeve from three tiles — depends on that number meaning the same thing for everyone.
For a while, it didn't.
The twitch
Hover a row or column button on a computer and the tiles in that line do a small animation — a shrink and a tilt — before you commit. It's there to answer an obvious question: which tiles is this button about to take? On a board of 64 identical squares, pointing at the eight you're about to spend is worth doing.
The problem was in the word shrink. Each tile pulled back from its neighbours by about 6%. On a 500-pixel board that's a gap of roughly two pixels on every side of every tile — and behind the tiles is the album cover.
Two pixels doesn't sound like much. But there are eight tiles in a row, so a single hover opened eight slivers of artwork at once. And there are sixteen buttons: eight rows, eight columns. Running the mouse along all of them sampled a grid of the entire sleeve without peeling anything or spending a single point.
For a lot of covers that's enough. Album art is built around bold, flat colour and large type, both of which survive being cut into strips. The underwater turquoise of Nevermind is recognisable in a two-pixel line. So is a slice of the Hindenburg on fire.
Only half the players had it
Here's the part that made it worth fixing rather than shrugging at: phones have no hover.
A touchscreen has no concept of pointing at something without pressing it. So the leak wasn't available to roughly half the people playing — it was a quiet advantage handed to anyone on a laptop, and nowhere more visible than on the daily leaderboard, where everyone plays the same record and desktop and phone scores sit in the same column.
A player on a train, thumbing tiles one at a time, was being compared against someone who could survey the cover in strips first.
The fix
The cue is genuinely useful, so we kept it. We just inverted it.
Instead of shrinking away from each other, the tiles in a hovered row now grow slightly and brighten. They overlap their neighbours rather than pulling apart, so at no point in the animation is there a gap to see through. The tiles cover more of the record, not less.
Measured on the board: where the old animation exposed up to 2.26 pixels of artwork on every tile edge, the new one exposes zero. You still get told exactly which eight tiles that button will take. You're told nothing at all about what's underneath them.
And because the cue no longer reveals anything, we could give it to phones too. Press and hold a row button and the same eight tiles lift and brighten; lift your thumb to commit, or slide off to cancel. The one piece of information desktop players had — which tiles am I about to spend? — is now on every device. The piece they shouldn't have had is on none of them.
Why bother
Nobody wrote in about this. It was spotted because somebody was watching the board closely and the tiles looked like they were telling on themselves.
But a daily puzzle is a comparison. The score only means something because the person you're level with peeled the same number of tiles off the same record under the same rules. A fairness bug isn't really a bug in the animation — it's a bug in the leaderboard, and it was already there every time someone on a phone finished two places below someone on a laptop.
Today's record is up. Same rules on every screen now.