Version 1.1
Version 1.1 addresses critical issues with user identification when IPv6 addresses change, improves download progress visibility for small files, enhances the download finalization experience, and adds browser compatibility warnings for large file downloads.
## New
- Cookie-based user identification
- Implemented persistent user ID system using long-lived cookies to replace IP-based identification.
- Added user session helper that generates and stores unique user IDs, solving IPv6 privacy extension issues where IPs change frequently.
- New files store both user ID and IP address for backward compatibility during transition period.
- Large-file browser compatibility notices
- Added static notice displayed for files over 2 GB explaining that Chrome and Edge provide the most reliable download experience.
- Implemented dynamic browser detection that shows a warning when users on Firefox or Safari attempt to download large files.
- Warning includes workaround instructions to use Chrome or Edge for reliable large-file downloads.
- Download finalization feedback
- Added visual "Finalizing download…" state that appears when downloads complete.
- Implemented progress bar pulse animation during finalization to clearly indicate activity.
- For chunked downloads, shows "Finalizing download…" followed by "Download complete" before hiding the progress UI.
## Changed
- User identification method
- Switched from IP-only identification to cookie-based user IDs for file ownership checks.
- File ownership now checks user ID first, with IP address as fallback for older files without user IDs.
- Updated all upload handlers to store user IDs alongside IP addresses in file mappings.
- Chunked download threshold
- Lowered threshold for chunked downloads from 5 GB to 2 GB to improve reliability for more file sizes.
- Files over 2 GB now automatically use chunked download when browser supports File System Access API.
- Download token lifetime
- Extended download token expiration from 10 minutes to 20 minutes to accommodate large downloads and retries.
- Admin authentication
- Removed strict IP address validation from admin session checks to prevent logouts when IPv6 addresses change.
- Admin sessions now rely solely on secure session-based authentication without IP restrictions.
## Improved
- Progress bar accuracy
- Fixed progress bar showing stale data from previous download attempts by tracking download start time.
- Progress bar now uses page file size for display consistency instead of server-reported total.
- Implemented logic to ignore progress updates from previous download runs.
- Small file progress visibility
- Progress updates now write more frequently for files under 64 MB (every chunk instead of every 8 chunks).
- Ensured progress is written at least once when bytes are sent, preventing empty progress bars for fast downloads.
- Download finalization UX
- Made finalization phase clearly visible with status messages and visual feedback.
- Added smooth transitions between download states (downloading → finalizing → complete).
## Fixed
- Resolved issue where users lost access to their uploaded files when IPv6 addresses changed due to privacy extensions.
- Fixed admin sessions being terminated when IP addresses changed, preventing unnecessary re-authentication.
- Corrected progress bars staying empty for small files that downloaded too quickly to show progress updates.
- Fixed progress bar displaying incorrect data from previous download attempts when retrying downloads.
- Resolved browser compatibility issues by detecting unsupported browsers and providing clear workaround instructions.