Antoine Aflalo and GitHub
facb2f192b
Merge pull request #211 from Belphemur/copilot/full-refactor-memory-usage
...
Full project refactoring for memory efficiency
v2.7.0
2026-07-04 18:54:02 -04:00
5e5cac4883
fix: address copilot and coderabbit review feedback
...
- Use named returns for IsAlreadyConverted and WriteChapterToCBZ so
errs.Capture defers propagate close errors to the caller.
- Add context.Context to IsAlreadyConverted and ExtractChapter for
cancellation/timeout support; thread it from Optimize.
- Filter non-image files (__MACOSX, Thumbs.db, .DS_Store, etc.) and
only extract supported image extensions in ExtractChapter.
- Validate TempDir is non-empty in ConvertChapter before creating output dir.
- Separate fatal conversion errors from PageIgnoredError in the WebP
converter result aggregation so real failures aren't masked.
- Fix error message "failed to load chapter" → "failed to extract chapter".
- Use %w instead of %v in fmt.Errorf for proper error wrapping.
- Fix LoadChapter doc comment to match its actual behavior.
- Extract shared parseConvertedComment/parseConvertedCommentTime helpers
to avoid duplicated zip-comment parsing logic.
- Convert tests to use testify assertions (assert/require) per guidelines.
Co-authored-by: Belphemur <197810+Belphemur@users.noreply.github.com >
2026-07-04 22:39:19 +00:00
5ae05e5f0c
fix: address review feedback from copilot and coderabbit
...
Co-authored-by: Belphemur <197810+Belphemur@users.noreply.github.com >
2026-07-04 22:34:28 +00:00
164dc577b9
refactor!: disk-first zero-copy architecture with file-to-file cwebp conversion
...
BREAKING CHANGE: Complete refactoring of the conversion pipeline.
- Replace in-memory Page/PageContainer with disk-based PageFile struct
- Extract archives to temp directory instead of loading into memory
- Use cwebp InputFile/OutputFile for zero-copy file-to-file conversion
- Use cwebp -crop for splitting (no Go-side image decode needed)
- Check if already converted before extracting (fast pre-check)
- Remove oliamb/cutter dependency (replaced by cwebp -crop)
- Remove page_container.go (no longer needed)
- Add comprehensive tests with improved coverage
Co-authored-by: Belphemur <197810+Belphemur@users.noreply.github.com >
2026-07-04 22:18:22 +00:00
Antoine Aflalo and GitHub
e87e73eb28
Merge pull request #210 from Belphemur/copilot/optimize-file-processing
...
fix(watch): don't backfill existing archives at watch startup
v2.6.3
2026-07-03 11:53:11 -04:00
d7782fdb25
refactor(watch): extract testable maybeBackfillExistingArchives helper
...
Co-authored-by: Belphemur <197810+Belphemur@users.noreply.github.com >
2026-07-03 15:45:35 +00:00
1d981be21b
feat(watch): add opt-in --backfill flag for existing archives
...
Co-authored-by: Belphemur <197810+Belphemur@users.noreply.github.com >
2026-07-03 15:44:08 +00:00
0b3c3fa90c
fix(watch): don't backfill existing archives at watch startup
...
Co-authored-by: Belphemur <197810+Belphemur@users.noreply.github.com >
2026-07-03 15:38:44 +00:00
Antoine Aflalo and GitHub
52c93acd35
Merge pull request #209 from Belphemur/copilot/fix-docker-permission-denied-issue
...
fix(docker): create and chown /config home directory for non-root user
v2.6.2
2026-07-03 11:17:27 -04:00
ab1e2ff05c
fix(docker): create and chown /config home directory for non-root user
...
Co-authored-by: Belphemur <197810+Belphemur@users.noreply.github.com >
2026-07-03 15:15:49 +00:00
Antoine Aflalo and GitHub
eca9671881
Merge pull request #208 from Belphemur/copilot/move-to-alpine-latest-docker-image
...
chore(docker): switch base image to alpine:latest
v2.6.1
2026-07-03 10:57:52 -04:00
40922078d5
chore(docker): switch base image to alpine:latest
...
Co-authored-by: Belphemur <197810+Belphemur@users.noreply.github.com >
2026-07-03 14:53:55 +00:00
Antoine Aflalo and GitHub
efb4dce1b7
Merge pull request #207 from Belphemur/copilot/fix-comments-in-pr-204
...
fix(watch): debounce fsnotify events, backfill archives, resilient recursive watch
v2.6.0
2026-07-03 10:35:38 -04:00
30d0d632bf
fix(watch): address review feedback in watcher queue and tests
...
Co-authored-by: Belphemur <197810+Belphemur@users.noreply.github.com >
2026-07-03 14:26:40 +00:00
1e692ed19b
fix(watch): remove mutable package var, fix debouncer race
...
Co-authored-by: Belphemur <197810+Belphemur@users.noreply.github.com >
2026-07-03 13:55:58 +00:00
69c1a37577
fix(watch): debounce fsnotify events, backfill archives, resilient walk
...
Co-authored-by: Belphemur <197810+Belphemur@users.noreply.github.com >
2026-07-03 13:52:17 +00:00
Antoine Aflalo and GitHub
e1e8ea92c1
chore: update go version
v2.5.0
2026-07-03 13:22:11 +00:00
Copilot and GitHub
c2f809ed2c
fix(memory): use staging folder to avoid keeping everything in memory
...
Co-authored-by: Belphemur <197810+Belphemur@users.noreply.github.com >
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Fixes #203
2026-07-03 09:15:56 -04:00
Antoine Aflalo and GitHub
f2a65425cf
chore: remove qodana
2026-07-03 13:14:00 +00:00
20de3ed0ae
fix(deps): update module github.com/fsnotify/fsnotify to v1.10.1 ( #205 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-03 11:53:02 +00:00
b9170b14a1
feat: replace inotify watch path with fsnotify and clean up related tooling/docs ( #204 )
...
* Plan fsnotify migration and docs updates
Co-authored-by: Belphemur <197810+Belphemur@users.noreply.github.com >
* Refactor watch mode to fsnotify and add agent docs
Co-authored-by: Belphemur <197810+Belphemur@users.noreply.github.com >
* Fix errcheck violations in command and converter tests
Co-authored-by: Belphemur <197810+Belphemur@users.noreply.github.com >
* Complete validation for fsnotify and lint fixes
Co-authored-by: Belphemur <197810+Belphemur@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: Belphemur <197810+Belphemur@users.noreply.github.com >
2026-07-03 07:47:03 -04:00
18ff04c81f
chore(deps): update jetbrains/qodana-action action to v2026 ( #187 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-03 07:35:23 -04:00
2663f17be3
chore(deps): update codecov/codecov-action action to v7 ( #198 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-03 07:35:12 -04:00
dc9d33bbca
chore(deps): update actions/checkout action to v7 ( #202 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-03 07:34:58 -04:00
cc7da1ef3b
fix(deps): update module golang.org/x/image to v0.43.0 ( #201 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-18 21:48:48 +00:00
8c538ce95b
fix(deps): update golang.org/x/exp digest to c48552f ( #200 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-12 01:55:28 +00:00
c8524e9b5f
fix(deps): update module golang.org/x/image to v0.42.0 ( #199 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-08 17:02:47 +00:00
cbad6e99ac
fix(deps): update module github.com/thediveo/enumflag/v2 to v2.2.1 ( #197 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-05 15:08:39 +00:00
65b9961856
fix(deps): update golang.org/x/exp digest to 055de63 ( #196 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-03 23:05:57 +00:00
d044573019
fix(deps): update module github.com/pablodz/inotifywaitgo to v0.0.12 ( #195 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-02 18:42:52 +00:00
964a6ea295
fix(deps): update module github.com/pablodz/inotifywaitgo to v0.0.11 ( #194 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-01 20:02:53 +00:00
02b15c8124
fix(deps): update golang.org/x/exp digest to c761662 ( #193 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-29 15:04:10 +00:00
deeb30aa24
fix(deps): update golang.org/x/exp digest to 50dc527 ( #192 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-28 21:35:50 +00:00
ad24ab68ac
fix(deps): update golang.org/x/exp digest to 08cc537 ( #191 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-27 06:19:53 +00:00
d78b523ae7
fix(deps): update module golang.org/x/image to v0.41.0 ( #190 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-21 22:44:17 +00:00
7b1fb13a21
fix(deps): update module golang.org/x/image to v0.40.0 ( #189 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-10 17:20:37 +00:00
414a43476b
fix(deps): update golang.org/x/exp digest to 74f9aab ( #188 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-10 15:59:04 +00:00
dbac6c20ff
chore(deps): update jetbrains/qodana-action action to v2024.3.4 ( #185 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-21 19:41:03 +00:00
ef1a658028
fix(deps): update module github.com/rs/zerolog to v1.35.1 ( #184 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-21 00:41:29 +00:00
76aea38ff2
fix(deps): update golang.org/x/exp digest to 746e56f ( #183 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-10 12:47:57 +00:00
a69eb9d8a5
fix(deps): update module golang.org/x/image to v0.39.0 ( #182 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-09 19:04:44 +00:00
a6875c3a12
chore(deps): update codecov/codecov-action action to v6 ( #180 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-28 06:57:32 -04:00
b3686e17d8
fix(deps): update module github.com/rs/zerolog to v1.35.0 ( #181 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-28 00:34:43 +00:00
6ea989eedd
fix(deps): update module github.com/thediveo/enumflag/v2 to v2.2.0 ( #179 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-25 21:07:58 +00:00
f104add37a
fix(deps): update module golang.org/x/image to v0.38.0 ( #178 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-24 00:52:00 +00:00
39632906da
chore(deps): update anchore/sbom-action action to v0.24.0 ( #177 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-20 21:47:22 +00:00
1be0978e89
fix(deps): update golang.org/x/exp digest to 7ab1446 ( #176 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-12 17:52:26 +00:00
71bdf7d111
fix(deps): update module golang.org/x/image to v0.37.0 ( #175 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-12 00:57:41 +00:00
3123fa27f9
chore(deps): update anchore/sbom-action action to v0.23.1 ( #174 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-09 22:45:16 +00:00
7cd711ab5a
chore(deps): update docker/setup-qemu-action action to v4 ( #171 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-07 18:08:17 -05:00