Two changes on dev since v26.06.04.0. Dev CI green at head add1c1a (run #554).
feat(download): cursor-paged Patreon backfill (593f65c, plan #689)
Large Patreon catalogs (Anduo: thousands of files) couldn't backfill — each run re-walked newest→oldest from the top and timed out during the HEAD walk with 0 files written, no progress (event #40411). Now each run checkpoints gallery-dl's pagination cursor (survives a timed-out run via the partial-output path) and resumes from it, staying in backfill mode across ticks until the walk reaches bottom; a 2-strike stuck-guard prevents an infinite re-strand. patreon-only; cursor stored in config_overrides (no migration); time-budget ladder unchanged.
fix(modal): mobile UX (add1c1a)
Tag input no longer autofocuses on the ≤900px stacked layout (it popped the soft keyboard and pushed the image/controls out of view).
Stacked layout now scrolls with the image pane pinned sticky at the top, so the image + prev/next/close + integrity badge stay visible while the metadata panel scrolls beneath.
Two changes on dev since v26.06.04.0. Dev CI green at head `add1c1a` (run #554).
**feat(download): cursor-paged Patreon backfill** (`593f65c`, plan #689)
Large Patreon catalogs (Anduo: thousands of files) couldn't backfill — each run re-walked newest→oldest from the top and timed out during the HEAD walk with 0 files written, no progress (event #40411). Now each run checkpoints gallery-dl's pagination cursor (survives a timed-out run via the partial-output path) and resumes from it, staying in backfill mode across ticks until the walk reaches bottom; a 2-strike stuck-guard prevents an infinite re-strand. patreon-only; cursor stored in `config_overrides` (no migration); time-budget ladder unchanged.
**fix(modal): mobile UX** (`add1c1a`)
- Tag input no longer autofocuses on the ≤900px stacked layout (it popped the soft keyboard and pushed the image/controls out of view).
- Stacked layout now scrolls with the image pane pinned sticky at the top, so the image + prev/next/close + integrity badge stay visible while the metadata panel scrolls beneath.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Large Patreon creators (Anduo: weekly 50-120-image Reports back months =
thousands of files) couldn't backfill: each run re-walked newest→oldest
from the top, and gallery-dl's polite ~0.75s/request HEAD walk alone
exceeded the 1170s subprocess budget, so the run died during enumeration
with 0 files written and NO forward progress — re-stranding every time
(event #40411).
Checkpoint gallery-dl's pagination cursor so each backfill window advances
the frontier:
- gallery_dl.py: SourceConfig.resume_cursor; _build_config_for_source sets
extractor.patreon.cursor=<resume> (PLATFORM_DEFAULTS leave log-only True
for a fresh run); parse_last_cursor() pulls the last emitted
'Cursor: <token>' from stdout+stderr — survives a timed-out run since the
TimeoutExpired path returns partial output.
- download_service.py: phase2 stays in BACKFILL mode while a cursor is
pending (even after the run budget drains) and threads resume_cursor;
_apply_backfill_lifecycle() checkpoints the advancing cursor each
non-completing run, completes on a clean rc=0 finish (walk reached
bottom), and a stuck-guard clears the cursor after 2 non-advancing runs
so a wedged walk can't re-strand forever.
patreon-only (sole platform with a resumable cursor); other platforms keep
the simple counter semantics. Cursor state lives in config_overrides JSON
(patreon_campaign_id precedent) — no migration. Time-budget ladder
(1170/1350/1500) unchanged.
Plan #689.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Operator-flagged 2026-06-05 (mobile):
- TagAutocomplete no longer autofocuses on the ≤900px stacked layout —
focusing popped the soft keyboard, shrinking the viewport and shoving the
pinned image + nav/close controls out of view. matchMedia gate (safe on
plain HTTP); desktop autofocus unchanged.
- ImageViewer stacked layout: the body now scrolls and the media pane is
sticky (height:55vh, top:0), so the image + prev/next/close + integrity
badge stay pinned while the metadata panel scrolls beneath. Replaces the
old fixed image + 40vh internally-scrolled panel that could push the
controls off. Prev/next re-centered over the image band; opaque obsidian
bg so the scrolling panel doesn't bleed through.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Two changes on dev since v26.06.04.0. Dev CI green at head
add1c1a(run #554).feat(download): cursor-paged Patreon backfill (
593f65c, plan #689)Large Patreon catalogs (Anduo: thousands of files) couldn't backfill — each run re-walked newest→oldest from the top and timed out during the HEAD walk with 0 files written, no progress (event #40411). Now each run checkpoints gallery-dl's pagination cursor (survives a timed-out run via the partial-output path) and resumes from it, staying in backfill mode across ticks until the walk reaches bottom; a 2-strike stuck-guard prevents an infinite re-strand. patreon-only; cursor stored in
config_overrides(no migration); time-budget ladder unchanged.fix(modal): mobile UX (
add1c1a)🤖 Generated with Claude Code