Android 10.5, build 352. Supersedes 350 — the admin password was three faults deep, each hiding the next.
The admin password now unlocks from the hardware panel. It never did: the method that proves the password over the live connection was being silently dropped, so the attempt never reached the receiver at all. It appeared to work occasionally only because a second, unrelated mechanism sometimes succeeded — which is what made it feel "hit or miss".
And four hardware controls were dropped the same way, since the converter arrived in the previous build: the Airspy HF+'s attenuator, LNA and AGC, the HackRF's amp, LNA, VGA and bias-T, the SDRplay's LNA, IF gain reduction and notches, and the tuner bandwidth. All silently inert, on every session. Found by checking the whole list rather than the one that was reported.
A wrong password now says so. Previously it looked identical to success — the box simply cleared. The receiver answers a bad password in a way the app was not listening for, so nothing was shown. The field now shakes, turns red, and says "⚠ That password was not accepted". It also tells a wrong password apart from a receiver it could not reach, because those want different answers from you.
Fixed in the app rather than the server, so it works with every VibeServer already running — a receiver only updates when its owner updates it.
Also from 350: an unlocked admin gets the controls the panel promised (on a server with no AGC that panel is the only way the gain is ever set), the controls sheet no longer hides under the keyboard, and switching away from a multi-radio server's radio chooser no longer returns to a false "connection lost".
APK and Play bundle (.aab) both attached.