Split the latest-chapter poll cooldown so browser-backed sites rest longer #42
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Part of #38
What to build
Browser-backed sites rest longer between latest-chapter checks than plain-TLS ones.
Today one cooldown governs every site, so kagane and novelfull — the only two that cost a browser
wake — are checked as often as asura, demonic, comix and lightnovelworld. After this ticket a
browser-backed series becomes due after 6 hours while every other site keeps its 1-hour cadence,
and both classes are still selected by a single due query in a single poll cycle.
Sizing: 6 hours of staleness on those two sites is acceptable to Readers; 1 hour on the main
libraries is not negotiable, which is why this is a split rather than a global change.
Implementation decisions
6 hours, clamped by the same floor as its sibling so a typo cannot turn a polite check into a
hammer. The existing cooldown keeps its 1-hour default and its meaning for every other site.
per row with a conditional on the site column. Everything is a bound parameter; nothing is
concatenated into query text.
already owns that knowledge, since it already decides which fetcher a site gets.
finished skipped, archived still polled, orphan series excluded by the bookmark join.
Acceptance criteria
plain-TLS series checked 2 hours ago is; at 7 hours both are.
matching how the sibling poller settings are already covered.
reader-count precedence, finished-versus-archived, orphan exclusion.
go test ./...passes.Blocked by
None — can start immediately.
Implemented on branch issue-42-browser-cooldown in commit
a214076. Browser-backed kagane/novelfull series now use LATEST_CHAPTER_POLL_BROWSER_COOLDOWN (default 6h, shared 15m floor); plain-TLS series retain 1h. Due selection remains one parameterized query with unchanged ordering and exclusions. Added config, wiring, poller, and documentation coverage. Verification: go test ./... passes.