Fixed: emailed sign-in links, a rare frozen dialog, and silent-by-default micro:bit audio
Three fixes from a teacher's bug report: magic links that work from any device, dialogs that never freeze the page, and micro:bit sound that requires a speaker, like the hardware.

A teacher in New South Wales sent us three bugs in one report. All three were real. All three are fixed. This is exactly the kind of report we hope for, and it earned a same-week release.
Emailed sign-in links work properly now
The emailed magic link could fail with an "invalid token" error through no fault of yours: the link was minted in a way that only the original browser session could redeem, and corporate mail scanners could consume it before you ever clicked. Both problems are gone. Sign-in links now open a small confirmation page with a Continue button, so automated scanners that prefetch the URL cannot burn the token, and the link works on whatever device you open it on.
Related, for school accounts: some districts block third-party Google sign-in entirely, which shows up as an admin_policy_enforced error. That block lives with your IT department, not with us, but there is now a help page at auth.devoltapp.com/school-access that explains the email sign-in workaround and gives IT the exact client ID to allowlist.
The frozen export dialog
Closing a dialog that had been opened from a toolbar menu, most often File → Export…, could leave the entire page ignoring clicks until a reload. It came down to two copies of one interface library disagreeing about whether the dialog was really gone. The dependency is pinned to a single copy now, and the freeze is not reproducible anymore. If you ever hit a page that stopped responding after exporting a PNG, this was it, and we are sorry about the reloads.
The micro:bit is quiet until you wire a speaker
A micro:bit V1 has no onboard speaker, so a music program on the real board is silent until you clip one to P0 and GND. Our simulated board cheerfully played audio out of nowhere, which is charming right up until you are teaching the difference between a program and a circuit. The simulator now matches hardware: music.play() makes sound only when a speaker, buzzer, or headphone-style path is actually wired from the audio pin, and unplugging a leg silences it. Passive parts in the path (a resistor, a capacitor, a potentiometer) still conduct the audio, so the classic headphone circuits from the micro:bit curriculum work as printed.
To the teacher who wrote in: thank you. Reports with reproduction steps move straight to the top of the pile, and the feedback option under Help goes to a human either way.