diff --git a/CURRENT.md b/CURRENT.md index dd738b8..f233e83 100644 --- a/CURRENT.md +++ b/CURRENT.md @@ -40,6 +40,13 @@ mobile draft at 390px. - [x] C11 preview caching: Discord-hosted image/GIF previews (WebP 320px, hash-addressed, 5 MiB cap, one attempt) run after every walk in both modes. Live run `...-20260916090722`: `previewed: 2`; thumbs served over `/api/media///thumb` (200). + - [x] C44 One traffic pipeline and split ETAs. Walks and backfill batches now share a + media-traffic lock: a walk holds it for its whole run, a batch for one batch, so the pacing + settings bound total traffic instead of each action. Starting then immediately stopping a + scrape now fetches nothing (tested). Backfill ETAs split into `etaStartMs` (waiting behind + earlier jobs), `etaRunMs` (own work), and `etaTotalMs`; the Bot tab shows only the total and + puts `starts in X \u00b7 runs for Y` in the tooltip, same for the queue totals. Tests: lock + ordering, stop semantics, ETA ordering. - [x] C43 Bot-tab backfill control room and media-tab strip rules. The engine gained `previewBatch`/`rateLimitStatus`/`updateOptions`; a new `BackfillQueue` groups preview work per chat (paused and resumed scrapes of a chat combine), runs one job at a time in batches, and diff --git a/docs/webui.md b/docs/webui.md index 77ca7ea..d525df0 100644 --- a/docs/webui.md +++ b/docs/webui.md @@ -283,7 +283,7 @@ replaceable. | GET | `/api/media/:scrapeId/:itemId/stream` | none | Playback/full-view source: the local file, or the remote URL refreshed from the source message. Supports `Range`. Non-media upstream responses (provider pages) return `415` | | GET | `/api/media/scrapes` | none | Every scrape with state and counters | | GET | `/api/media/status` | none | Slopbot connection state, the scrape list, and `limitedUntil` while a Discord cooldown holds media traffic | -| GET | `/api/media/backfill` | none | Backfill jobs per chat with pending/cached/failed, per-kind pending, progress, throughput, ETA, totals with a Bot/Puppet split, the live settings, and `limitedUntil` | +| GET | `/api/media/backfill` | none | Backfill jobs per chat with pending/cached/failed, per-kind pending, progress, throughput, `etaStartMs`/`etaRunMs`/`etaTotalMs`, totals with a Bot/Puppet split, the live settings, and `limitedUntil` | | POST | `/api/media/backfill/start` | `chatId?` | Start every job with pending rows, or one chat's job | | POST | `/api/media/backfill/pause` | `chatId?` | Pause all jobs, or one chat's job, after the current batch | | GET | `/api/media/authors` | none | Distinct posters across every scrape, with counts |