Releases: rupor-github/sync2kindle
v1.5.1
Maintenance - move to go1.26.1 with full dependencies update
Full Changelog: v1.5.0...v1.5.1
v1.5.0
Debug reporter improvements
- Ported debug reporter enhancements from fb2cng: proper temp file cleanup on errors,
atomic rename on close, and improved error handling throughout the report lifecycle. - Added unit tests for reporter (5 tests covering creation, data storage, close, and error paths).
History subcommand enhancements
- Expanded
historycommand with 6 sub-subcommands:list,steps,objects,diff,stats,orphans. list— shows short database ID (8 hex chars), path, last step, and identifiers for each history DB.steps— tabular listing of all sync steps with timestamps, source/destination, and object counts.objects— lists objects in the latest (or specified via--step) sync step with path, size, modified time, and hash.diff— shows added/removed/changed objects between two steps (--from/--to, defaults to last two).stats— aggregate statistics: file/directory counts, total size, date range, breakdown by extension.orphans— identifies history databases with missing source directories or stale last sync (>180 days).
Full Changelog: v1.4.2...v1.5.0
v1.4.2
Replace github.com/disintegration/imaging with standard library
(removing long standing CVE with parsing malicious TIFF files)
Dropped the disintegration/imaging dependency by implementing equivalent
thumbnail functionality using golang.org/x/image/draw (which was already
present as a transitive dependency). The two operations previously provided
by imaging — scale-to-fill with center-crop (imaging.Thumbnail) and
JPEG encoding (imaging.Encode) — are now handled by helpers in the
thumbs/imgutils package.
- Added
imgutils.Thumbnail— resizes and center-crops using CatmullRom
resampling (comparable quality to Lanczos). - Added
imgutils.EncodeJPEG— encodes to JPEG with specified quality and
applies the JFIF APP0 DPI fixup required by Kindle. - Unexported
SetJpegDPI,JpegDPIType, andDpi*constants since they
are now only used internally byEncodeJPEG. - Updated
thumbs/kfxandthumbs/mobireaders to use the new helpers.
Fix KFX parser failing on newer KFX files
The KFX entity table parser was too strict and used an outdated symbol
table, causing it to reject valid KFX files with entity IDs above 843.
- Bumped
largestKnownSymbolfrom 834 to 851, adding 17 missing
YJ_symbols (shapes/geometry: ellipse, rectangle, line, polygon, etc.)
to match the set known to the fb2cng parser. - Removed strict
FindByIDvalidation fromindexTableEntry.readFrom,
keeping only the bounds check. Entity IDs referencing local document
symbols beyond the known YJ_symbols range are now accepted, preventing
future breakage when Amazon extends the format.
Add thumbnail extraction tests
thumbs/imgutils/thumb_test.go— unit tests forThumbnail(output
dimensions across various aspect ratios, invalid inputs, pixel content)
andEncodeJPEG(valid JPEG output, JFIF APP0 header with 300 DPI).thumbs/kfx/reader_test.go— end-to-end test parsing_Test.azw8,
extracting a thumbnail, and verifying a valid 330×470 JPEG with JFIF
header is produced.thumbs/mobi/reader_test.go— end-to-end test parsing_Test.azw3,
extracting a thumbnail, and verifying a valid 330×470 JPEG with JFIF
header is produced.
Full Changelog: v1.4.1...v1.4.2
v1.4.1
Switching to go1.26.0 with full dependencies update.
Full Changelog: v1.4.0...v1.4.1
v1.4.0
Fixing multiple issues - both Linux and Windows.
Switching to go1.25.7 with full dependencies update.
NOTE: hashing algorithm to derive history database name has changed to avoid potential name collisions, so old history will be ignored after update!
Full Changelog: v1.3.0...v1.4.0
v1.3.0
When using "mail" try to use epub metadata rather than file name.
Switch to go1.25.5 and dependencies update.
Full Changelog: v1.2.9...v1.3.0
v1.2.9
Maintenance: go1.25.1 with dependencies, new official taskfile task in the pipeline.
Full Changelog: v1.2.8...v1.2.9
v1.2.8
Migrating to go 1.24.5 and urfave/cli/v3 with full dependencies update.
Full Changelog: v1.2.7...v1.2.8
v1.2.7
Switching to go1.24.3 with full dependencies update.
Full Changelog: v1.2.6...v1.2.7
v1.2.6
Switching to go1.24.1 and updating ALL dependencies.
Full Changelog: v1.2.5...v1.2.6