v0.13.1
Test-coverage and operational hardening pass on top of v0.13.0. No new public API; one new boot-time guard that fails fast on a misconfigured Cache lock driver, and 19 new tests covering the v0.13.0 features.
Added
- Boot-time guard for
chunky.lock_driver = 'cache'. ThrowsRuntimeExceptionat service-provider boot ifcache.defaultisarrayorfile— both drivers silently no-op onCache::lock()and would let upload races slip through unnoticed. Switch to Redis / Memcached / DB / DynamoDB, or setchunky.lock_driverback toflock. - Stale-claim recovery integration tests (
AssembleClaimTest): simulate a worker crash mid-assembly, verify a retry can take over the claim, run toCompleted, and emitUploadCompleted. Also coversexpiredUploadIds()skipping freshAssemblingrows but including stale ones — the cleanup-doesn't-leak invariant. FilesystemTrackerboot-guard tests: local disk boots fine; non-local disk +flockmode throws with a helpful message; non-local disk +cachemode boots fine;skip_local_disk_guard = trueescape hatch works.- Broadcast payload sanitisation tests:
UploadCompletedandUploadFailedstripdisk/finalPathby default; opt-in viachunky.broadcasting.expose_internal_paths = trueputs them back. Locks the v0.13.0 wire-format change. - Path-traversal tests (
PathTraversalTest): the assembler'sbasename()defence-in-depth strips leading directories from hostile file names, and rejects dot-only names that collapse to empty. Thesimple()context save callback applies the same guard end-to-end (verified by inspecting where the moved file actually lands on a fake disk). LockDriverCompatTestcovers the four cache.default × lock_driver combinations relevant to the new boot guard.
npm packages
- All packages bumped to
0.13.1(no source changes in the JS packages — re-publish for version-sync consistency with the PHP release).