v2.2.2 — UX polish
Fixes
- Recovery-code PDF renders correctly inside Linux containers. The v2.2.1 build used
Fonts.SegoeUI/Fonts.Consolas(Windows-only) which produced a PDF full of empty glyph boxes when generated on a Linux host. Switched to the cross-platformLatofont that QuestPDF bundles by default. - 2FA challenge page now exposes a Recovery code tab alongside Authenticator and Email. Previously a user without their authenticator had no way to enter a recovery code from the challenge screen.
UI
- All Setup-page confirmation prompts (regenerate recovery codes, revoke device / app password / trusted browser, disable 2FA, emergency lockout) now use a dark-themed in-page modal instead of the browser native
confirm()popup. Esc cancels, Enter confirms, click outside cancels.
No breaking changes. In-place upgrade.
MD5 D815F0A3BE2999A77C688B28F239F989