| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| daptin-darwin-amd64 | 2026-08-13 | 226.8 MB | |
| daptin-linux-amd64 | 2026-08-13 | 249.8 MB | |
| daptin-linux-arm64 | 2026-08-13 | 235.2 MB | |
| daptin-windows-amd64.exe | 2026-08-13 | 243.1 MB | |
| README.md | 2026-08-13 | 2.0 kB | |
| v0.12.36 source code.tar.gz | 2026-08-13 | 28.7 MB | |
| v0.12.36 source code.zip | 2026-08-13 | 29.5 MB | |
| Totals: 7 Items | 1.0 GB | 0 | |
Asset serving reliability and scalability
This release fixes the concurrent cold-cache failure reported in #262 and aligns private asset delivery with the optimized hosted-site serving path.
Fixed
- Coalesces concurrent cache misses for the same cloud object into one download, preventing requests from racing on a shared temporary path and returning false 404 responses.
- Uses uniquely owned temporary files and atomic promotion into the local cache, including safe handling when another Daptin process completes the same cache fill first.
- Returns 404 only for confirmed missing objects; transient cloud-storage and cancellation failures now return 502 or 503 and do not poison the hosted-site negative cache.
- Synchronizes rclone global configuration while constructing cloud filesystems so concurrent stores cannot observe another stores credentials.
Performance and consistency
- Bounds distinct cloud downloads to protect CPU, memory, file descriptors, and backend connections during cold-cache bursts.
- Propagates request cancellation while allowing an in-progress shared cache fill to complete for other waiters.
- Reuses the existing asset file handle during image processing.
- Adds reusable gzip sidecars for large compressible private assets.
- Uses correct gzip quality negotiation, representation-specific ETags, nanosecond-precision file ETags, and uncompressed byte-range responses.
- Preserves private cache control and authorization-aware Vary headers.
- Reduces cold-cache log amplification to one download log per shared fill.
Verification
- Added a 32-client concurrent cold-cache regression test with content-integrity and temporary-file cleanup checks.
- Added coverage for missing-object classification, gzip negotiation, representation ETags, and compressed range bypass.
- Passed the complete Go test suite and repeated race-enabled cache concurrency tests.
Full changelog: https://github.com/daptin/daptin/compare/v0.12.35...v0.12.36