Restore the novel script's lost module-scope constants (#74) #75
Reference in New Issue
Block a user
Delete Branch "fix/74-novel-missing-constants"
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?
Fixes #74.
novel-bookmark.user.jswas split out ofmanga-bookmark.user.jsand lost four module-scope constants. Every use of them is behind atry/catchor a fire-and-forget promise, so theReferenceErrors were swallowed rather than reported.LATEST_CHECK_THROTTLE_MS:722backgroundRefreshLatest()throws before computingdue— no background latest-check ever runs for novels (the symptom in #74)LATEST_CHECK_BATCH:724CACHE_KEY:215,:224loadCache()always returns[],saveCache()silently no-ops — the local cache never persistsLASTCHECKED_KEY:232,:241#74 named only the two throttle constants. The two cache keys are the same lost lines with the same root cause, so they are restored here too — fixing only the pair the issue named would leave
backgroundRefreshLatest()re-fetching every series on every navigation, becausesaveLastChecked()would still be a no-op.Values and comments copied verbatim from
manga-bookmark.user.js:37-43; throttle 4h, batch 1.Verification
node --check userscript/novel-bookmark.user.js— clean.node --test userscript/test/logic.test.js userscript/test/novel-logic.test.js— 47/47 pass.every SCREAMING_CASE constant the script uses is declared in itscans both scripts (comments and string literals stripped first, so prose and SVG path data do not trip it). Confirmed it fails — 1 failing test — whenLATEST_CHECK_BATCHis deleted again, and passes when restored.A behavioural test cannot reach this: the storage helpers and the background refresh are exactly the layers the harness does not cover (see the
testing-the-userscriptskill), and the errors are swallowed anyway. A static guard is the only instrument that sees this bug class.On-device confirmation that the ember now lights for novels is still outstanding — that needs Violentmonkey against a live novelfull/lightnovelworld page.