On 26.2 the file whitelist entries load at startup but 'whitelist reload'
and shutdown saves use the renamed allowlist.json, so panel writes never
took effect live and got wiped on stop. Now the panel writes both file
names, verifies the player actually appears in 'whitelist list' after
reload, falls back to the vanilla add command, and captures each player's
real UUID from 'UUID of player …' log lines for future entries. The auth
watcher's self-heal loop reports a loud notification after 3 failed
retries instead of silently spamming reloads.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- RCON client retries once on a fresh connection after stale-socket
timeouts (panel idle overnight held dead sockets, so 'whitelist
reload' silently failed and approvals needed a server restart)
- Auth watcher verifies pending players against the LIVE whitelist every
5s and re-writes/reloads if the server missed it, refunding lost
window time
- Log watcher records blocked join attempts (name + IP) with rate-
limited notifications — scanner bots are now visible in the panel
- New Security page: blocked-attempt log with one-click IP ban, banned
players/IPs management, kick-everyone lockdown
- Player detail modal: ban, op/deop, gamemode switching
- Overview quick controls: time/weather/difficulty, gamerule toggles
(keepInventory, mobGriefing, PvP...), broadcast box
- Settings toggles for blocked-attempt notifications (panel + Discord)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>