fix(crawler): sentinel-gate parse_chapter_list to stop false drops (0.35.2)

parse_chapter_list previously returned Vec::new() on any selector
miss. The empty list flowed into sync_manga_chapters, whose soft-drop
branch then flipped every existing chapter's dropped_at to NOW().
Bookmarks subsequently pointed at dropped sources, and
enqueue_bookmarked_pending (filters on cs.dropped_at IS NULL) silently
stopped re-fetching pages.

Same shape as the walker race fixed in 0.35.1: a transient parse miss
masquerading as "source removed everything" → false soft-drop.

Fix: require #chapter_table in the DOM. Present-but-empty is preserved
as Ok(vec![]) so a freshly added manga with no published chapters
still parses cleanly. Absent table is now Transient — the job system
reschedules with backoff instead of treating the partial render as
data.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
MechaCat02
2026-05-29 20:41:47 +02:00
parent dea9b1aaa8
commit c686d6eb51
3 changed files with 98 additions and 8 deletions

View File

@@ -1,6 +1,6 @@
[package]
name = "mangalord"
version = "0.35.1"
version = "0.35.2"
edition = "2021"
default-run = "mangalord"