Add drag-and-drop upload component with chunked uploads and offline support
This commit is contained in:
35
CHANGELOG.md
35
CHANGELOG.md
@@ -7,6 +7,41 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
## [Unreleased]
|
||||
### Added
|
||||
- Added reusable `DragDropUpload` component for artifact uploads (#8)
|
||||
- Drag-and-drop file selection with visual feedback
|
||||
- Click-to-browse fallback
|
||||
- Multiple file upload support with queue management
|
||||
- Real-time progress indicators with speed and ETA
|
||||
- File type and size validation (configurable)
|
||||
- Concurrent upload handling (configurable max concurrent)
|
||||
- Automatic retry with exponential backoff for network errors
|
||||
- Individual file status (pending, uploading, complete, failed)
|
||||
- Retry and remove actions per file
|
||||
- Auto-dismiss success messages after 5 seconds
|
||||
- Integrated DragDropUpload into PackagePage replacing basic file input (#8)
|
||||
- Added frontend testing infrastructure with Vitest and React Testing Library (#14)
|
||||
- Configured Vitest for React/TypeScript with jsdom
|
||||
- Added 24 unit tests for DragDropUpload component
|
||||
- Tests cover: rendering, drag-drop events, file validation, upload queue, progress, errors
|
||||
- Added chunked upload support for large files (#9)
|
||||
- Files >100MB automatically use chunked upload API (10MB chunks)
|
||||
- Client-side SHA256 hash computation via Web Crypto API
|
||||
- localStorage persistence for resume after browser close
|
||||
- Deduplication check at upload init phase
|
||||
- Added offline detection and network resilience (#12)
|
||||
- Automatic pause when browser goes offline
|
||||
- Auto-resume when connection restored
|
||||
- Offline banner UI with status message
|
||||
- XHR abort on network loss to prevent hung requests
|
||||
- Added download by artifact ID feature (#10)
|
||||
- Direct artifact ID input field on package page
|
||||
- Hex-only input validation with character count
|
||||
- File size and filename displayed in tag list
|
||||
- Added backend security tests (#15)
|
||||
- Path traversal prevention tests for upload/download
|
||||
- Malformed request handling tests
|
||||
- Checksum validation tests
|
||||
- 10 new security-focused integration tests
|
||||
- Added download verification with `verify` and `verify_mode` query parameters (#26)
|
||||
- `?verify=true&verify_mode=pre` - Pre-verification: verify before streaming (guaranteed no corrupt data)
|
||||
- `?verify=true&verify_mode=stream` - Streaming verification: verify while streaming (logs error if mismatch)
|
||||
|
||||
Reference in New Issue
Block a user