- Remove per-version full package storage
- Remove RegenerateDependentVersions logic
- Only generate full package for the latest version
- Simplify package_util.go
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Add RegenerateFullPackage function to rebuild single version's full package
- Add RegenerateDependentVersions function to handle cascade regeneration
- Call regeneration after deleting versions
- Each version maintains its own full package independently
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Add FullPackagePath, FullPackageSize, FullPackageHash to Version model
- When uploading patch, merge with base full package to create new full package
- Check update API returns full package info for download
- Add package_util.go with merge functions
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Add file_path, file_size, file_hash, entry_file to UpdateVersionRequest
- Update these fields when saving version changes
- Update originalUploadedData after successful save
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Backend returns total_size for all matching versions
- Frontend uses backend's total_size instead of computing from current page
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
If client doesn't provide version parameter, return latest version info
instead of returning error
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Only device_id without instance_id returns error
- Three valid combinations:
- device_id + instance_id: clear specific instance
- only instance_id: clear instance across devices
- no params: clear all instances
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Remove device deletion on logout
- Only delete DeviceSession records
- Support clearing specific instance or all instances
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Logout: clear device sessions on logout
- User info: return expiry/balance based on billing type
- Avatar upload: support jpg/png/gif/webp, max 2MB
- App tickets: create, reply, close tickets for app users
- Add ClosedAt field to Ticket model
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Return expiry_at for subscription mode
- Return balance for usage-based mode
- Return is_permanent for permanent members
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Remove duplicate 'v' prefix in version display
- Add version string cleanup (trim spaces, remove v/V prefix)
- Use custom download URL when set
- Fix has_update logic for same version comparison
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Add custom_download_url field to Version model
- Show custom download URL input when update method is 'manual'
- Use platform default URL if custom URL is not set
- Add i18n translations for new field
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>