Compare commits
base: sulthan/mangaBookmark:v1.4.3
sulthan/mangaBookmark:main
sulthan/mangaBookmark:prod
sulthan/mangaBookmark:vision-check
sulthan/mangaBookmark:spec-137
sulthan/mangaBookmark:spec-136
sulthan/mangaBookmark:skills-plan-tickets
sulthan/mangaBookmark:spec-135
sulthan/mangaBookmark:spec-134
sulthan/mangaBookmark:docs/context-stall-correction
sulthan/mangaBookmark:docs/context-admin-terms
sulthan/mangaBookmark:prototype/admin-surface-122
sulthan/mangaBookmark:docs/gitea-skill
sulthan/mangaBookmark:docs/agents-cite-code-only
sulthan/mangaBookmark:fix/71-cover-byte-cap
sulthan/mangaBookmark:chore/remove-graphify
sulthan/mangaBookmark:fix/asleep-browser-lane-not-stalled
sulthan/mangaBookmark:fix/demonic-interstitial-false-positive
sulthan/mangaBookmark:feat/103-sightings
sulthan/mangaBookmark:feat/102-admin-page
sulthan/mangaBookmark:feat/100-poll-lanes
sulthan/mangaBookmark:comix-browser-site
sulthan/mangaBookmark:docs/poll-lane-and-sighting-vocabulary
sulthan/mangaBookmark:docs/cloudflare-bot-score-correction
sulthan/mangaBookmark:feat/reader-ownership
sulthan/mangaBookmark:feat/db-change
sulthan/mangaBookmark:docs/agent-security-rules
sulthan/mangaBookmark:feat/rebrand-novelSupport
sulthan/mangaBookmark:v1.6.0
sulthan/mangaBookmark:v1.5.1
sulthan/mangaBookmark:v1.5.0
sulthan/mangaBookmark:v1.4.3
sulthan/mangaBookmark:v1.4.2
sulthan/mangaBookmark:v1.4.1
sulthan/mangaBookmark:v1.4.0
sulthan/mangaBookmark:v1.3.0
sulthan/mangaBookmark:v1.2.1
sulthan/mangaBookmark:v1.2.0
sulthan/mangaBookmark:v1.1.0
sulthan/mangaBookmark:v0.1.2
..
compare: sulthan/mangaBookmark:fix/71-cover-byte-cap
sulthan/mangaBookmark:main
sulthan/mangaBookmark:prod
sulthan/mangaBookmark:vision-check
sulthan/mangaBookmark:spec-137
sulthan/mangaBookmark:spec-136
sulthan/mangaBookmark:skills-plan-tickets
sulthan/mangaBookmark:spec-135
sulthan/mangaBookmark:spec-134
sulthan/mangaBookmark:docs/context-stall-correction
sulthan/mangaBookmark:docs/context-admin-terms
sulthan/mangaBookmark:prototype/admin-surface-122
sulthan/mangaBookmark:docs/gitea-skill
sulthan/mangaBookmark:docs/agents-cite-code-only
sulthan/mangaBookmark:fix/71-cover-byte-cap
sulthan/mangaBookmark:chore/remove-graphify
sulthan/mangaBookmark:fix/asleep-browser-lane-not-stalled
sulthan/mangaBookmark:fix/demonic-interstitial-false-positive
sulthan/mangaBookmark:feat/103-sightings
sulthan/mangaBookmark:feat/102-admin-page
sulthan/mangaBookmark:feat/100-poll-lanes
sulthan/mangaBookmark:comix-browser-site
sulthan/mangaBookmark:docs/poll-lane-and-sighting-vocabulary
sulthan/mangaBookmark:docs/cloudflare-bot-score-correction
sulthan/mangaBookmark:feat/reader-ownership
sulthan/mangaBookmark:feat/db-change
sulthan/mangaBookmark:docs/agent-security-rules
sulthan/mangaBookmark:feat/rebrand-novelSupport
sulthan/mangaBookmark:v1.6.0
sulthan/mangaBookmark:v1.5.1
sulthan/mangaBookmark:v1.5.0
sulthan/mangaBookmark:v1.4.3
sulthan/mangaBookmark:v1.4.2
sulthan/mangaBookmark:v1.4.1
sulthan/mangaBookmark:v1.4.0
sulthan/mangaBookmark:v1.3.0
sulthan/mangaBookmark:v1.2.1
sulthan/mangaBookmark:v1.2.0
sulthan/mangaBookmark:v1.1.0
sulthan/mangaBookmark:v0.1.2
1 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
ac50c428a9 |
fix: give covers their own 10 MiB byte cap (#71)
The cover fetch reused maxBodyBytes, the 4 MiB ceiling sized for series pages, so any cover above it was rejected, logged, and retried forever while the Series kept a monogram. Measured against asurascans on 2026-08-17 that is not an edge case: p90 is 4.52 MB and 3 of 25 covers exceed 4 MiB, two of them plain JPEGs rather than the 8.57 MB animated GIF the issue names. Covers now have maxCoverBytes = 10 MiB, separate from the page cap: a cover is one bounded binary asset, the page cap still has 3.5x headroom over measured pages and should not be loosened along with it. 10 MiB is ~18% over the largest cover observed and matches the GitHub and Discord image limits. The format offers no help in picking the number — GIF has no maximum size at all — so docs/research/gif-maximum-byte-size.md records the spec reading, the decoder behaviour, and the live distribution the cap is derived from. Transcoding was rejected: decoding is the OOM path, since Go's image/gif allocates width x height per frame with no dimension guard and a legal 65535^2 GIF would ask for ~4.29 GB on a 1974 MiB swapless host. |