From b72e65711f5146cdce6536dddc05b47ca9fbf21f Mon Sep 17 00:00:00 2001 From: rays Date: Sat, 24 Oct 2026 12:49:30 +0000 Subject: [PATCH] A feed is read up to 200 MB, not 50 (#357) The Herd with Colin Cowherd's feed is 62 MB, its whole back catalogue, and had failed every check since the 50 MB cap of #295 came in on 2026-10-19. The cap was there for an MP3 given as a feed; 200 MB still stops that, at four times the largest real feed seen. Co-Authored-By: Claude Opus 5.5 --- crates/directory/CHANGELOG.md | 4 ++++ crates/feed/src/fetch.rs | 7 ++++--- crates/ipx/CHANGELOG.md | 4 ++++ 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/crates/directory/CHANGELOG.md b/crates/directory/CHANGELOG.md index 8bef7e4..a6dec30 100644 --- a/crates/directory/CHANGELOG.md +++ b/crates/directory/CHANGELOG.md @@ -10,6 +10,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Fixed + +- A feed larger than 50 MB is checked again, up to 200 MB, where it was marked as failing (#357). + ## [1.4.0] - 2026-10-23 ### Fixed diff --git a/crates/feed/src/fetch.rs b/crates/feed/src/fetch.rs index 8ed50de..b0289bd 100644 --- a/crates/feed/src/fetch.rs +++ b/crates/feed/src/fetch.rs @@ -36,9 +36,10 @@ pub static FETCHES: AtomicU64 = AtomicU64::new(0); /// See `FETCHES`. pub static FETCHED_BYTES: AtomicU64 = AtomicU64::new(0); -/// The most of a feed or page read. The largest feeds here are a few MB; without a limit an -/// episode's MP3 given as a feed was read whole into memory, at every check (#295). -pub(crate) const MAX_BODY: usize = 50 << 20; +/// The most of a feed or page read. Without a limit an episode's MP3 given as a feed was read +/// whole into memory, at every check (#295). Real feeds can be large: a daily show's whole back +/// catalogue was 62 MB, and 50 MB here stopped it updating (#357). +pub(crate) const MAX_BODY: usize = 200 << 20; /// A response's body, up to `MAX_BODY`: past it, an error, and the rest is never read. pub(crate) async fn read_capped(mut resp: reqwest::Response) -> Result> { diff --git a/crates/ipx/CHANGELOG.md b/crates/ipx/CHANGELOG.md index 160ad61..b22174e 100644 --- a/crates/ipx/CHANGELOG.md +++ b/crates/ipx/CHANGELOG.md @@ -16,6 +16,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Log lines about starting, stopping, accounts and the configuration name the part of iPX that wrote them in `target` (`ipx::daemon`, `ipx::cli`, `ipx::catalogue`, ...), where they all said `ipx` (#356). +### Fixed + +- A feed larger than 50 MB is read again, up to 200 MB: a podcast with a long back catalogue had stopped updating (#357). + ## [1.5.0] - 2026-10-23 ### Changed