v1.4.0 — Desktop App Shell & Security Hardening
🖥️ New Desktop Layout
- Full-width app shell — Replaced the narrow centered card with a proper header / content / footer layout that feels native on desktop
- Sticky header with logo, app name, and inline Encrypt/Decrypt tabs
- Large hero branding — prominent logo and title above the work area (desktop only)
- Feature highlights — AES-256-GCM, 100% Client-Side, and No Accounts callouts displayed below the work area on desktop
- Full-width footer with support link, GitHub link, and version number
- Mobile layout preserved — compact stacked tabs and full-width content on small screens
🔒 Security Improvements (Backward-Compatible)
- Fixed Base64 stack overflow on large files (replaced
btoa/atob with chunked encoding)
- Eliminated modulo bias in password generation (rejection sampling)
- Removed external QR dependency — QR codes now render locally via
react-qr-code (no data sent to third-party servers)
- Clipboard auto-clear — copied passwords/ciphertext are automatically cleared after 60 seconds
- QR size validation — graceful fallback when output exceeds QR code capacity (2,953 chars)
🏠 Hosting Migration
- Migrated from Firebase App Hosting to GitHub Pages (free)
- Added GitHub Actions deployment workflow
- Custom domain
ittybitz.app configured
🎨 Other
- Updated favicon to use the IttyBitz logo
- Updated repository URLs to
seQRets/ittybitz
⚠️ Full backward compatibility — encrypted files from all previous versions decrypt without issue. The encryption format (salt ‖ IV ‖ AES-GCM ciphertext) is unchanged.