0.14.0
Added
- Refactored the share data model to a 1-to-many relationship between shares and files.
RedisShareInfowas restructured from a singleData(file ID) +FileNamefield into aFiles []ShareFileDataarray (each entry containingIdandFileName). The legacyDataandFileNamefields are now deprecated, and text shares use a dedicatedTextfield. - Multiple files now share a single share link. Uploading several files creates only one share link; share creation validates that all files exist and are in the uploaded state.
- Related operations use a Redis lock (
RedisLockKey) for concurrency safety. - Added single-file download and multi-select archive download. The download endpoint now accepts a
file_idsparameter to download only the selected files; a single file is downloaded directly, while multiple files are packed into an archive supportingzip,tar.gz,tar.zst,tar.s2, andtar.snappyformats (defaulting tozip). Temporary archives are cleaned up automatically after download. - Refactoring a share management page for unified management of file and text shares, displaying share info cards (pickup code, expiration time, etc.).
- Added a delete share feature with a confirmation dialog, backed by a new
DELETE /share/:idendpoint. - Enhanced share validation with expiration checks, a permission-denied error (
ErrPermissionDenied), and an invalid share file data error (ErrInvalidShareFileData). - Added unit tests for file compression and slice handling, and for share data conversion (
JsonShareInfoToDomain).
Improved
- Optimized Docker deployment: added Caddy support to the Dockerfile and adjusted port configuration, added the
gcompatdependency to the worker image, and streamlined the build process. - Improved the loading state UI on share pages with enhanced skeleton layouts.
- Improved file compression functions and download error handling, and standardized error message formatting.
- Improved the worker's
RunCommanderror logging and share task deletion logic. - Updated the README to reflect Nuxt 4 and the latest feature descriptions.
Dependencies
- Updated frontend dependencies including Tiptap, Vue, axios, dayjs, pixi.js, reka-ui, shadcn, vitest, and vue-tsc.
- Updated Go dependencies including
golang.org/x/sys,golang.org/x/text, and related backend/worker modules. - Added
skills-lock.jsonfor skill management.
Full Changelog: 0.13.0...0.14.0