3211b5b42f
Ticker goroutine reads bookmarks past their per-bookmark cooldown, fetches the series page, and writes latest_chapter through Get+Upsert so updated_at never moves and the list never reorders. The row is stamped before the fetch so a broken series waits out a cooldown instead of retrying every tick.