From be3c300e991442dd57f6b711e7322e8426106f61 Mon Sep 17 00:00:00 2001 From: Gil Desmarais Date: Mon, 10 Aug 2026 15:35:17 +0200 Subject: [PATCH 1/2] fix(auto-source): pin request budget for token-based auto-source feeds Explicitly set max_requests=4 in token_generator_input to match the html2rss gem auto_source default. Previously the gem policy default of 1 prevented sitemap sub-fetches from firing. No breaking change: requests beyond 1 previously returned empty feeds. --- app/web/feeds/source_resolver.rb | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/app/web/feeds/source_resolver.rb b/app/web/feeds/source_resolver.rb index dc34266e..bdec5c41 100644 --- a/app/web/feeds/source_resolver.rb +++ b/app/web/feeds/source_resolver.rb @@ -8,6 +8,11 @@ module Feeds ## # Resolves static and token-backed requests into shared generator inputs. module SourceResolver + # Request budget for token-backed auto-source feeds. Matches the + # max_requests default applied by Html2rss.auto_source so that sitemap + # sub-fetches are not silently blocked by Policy::DEFAULTS[:max_requests]=1. + AUTO_SOURCE_MAX_REQUESTS = 4 + class << self # @param feed_request [Html2rss::Web::Feeds::Contracts::Request] # @return [Html2rss::Web::Feeds::Contracts::ResolvedSource] @@ -128,7 +133,12 @@ def resolved_strategy(feed_token) def token_generator_input(url, strategy) global_config = LocalConfig.global base_input = global_config.slice(:stylesheets, :headers) - base_input.merge(channel: { url: url }, auto_source: {}, strategy: strategy.to_sym) + base_input.merge( + channel: { url: url }, + auto_source: {}, + strategy: strategy.to_sym, + request: { max_requests: AUTO_SOURCE_MAX_REQUESTS } + ) end # @return [String] From dff37d81016364532dd3df8a880153cb79fa49b2 Mon Sep 17 00:00:00 2001 From: Gil Desmarais Date: Mon, 10 Aug 2026 17:00:17 +0200 Subject: [PATCH 2/2] Apply suggestions from code review Co-authored-by: Gil Desmarais --- app/web/feeds/source_resolver.rb | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/app/web/feeds/source_resolver.rb b/app/web/feeds/source_resolver.rb index bdec5c41..e025d3c6 100644 --- a/app/web/feeds/source_resolver.rb +++ b/app/web/feeds/source_resolver.rb @@ -8,9 +8,7 @@ module Feeds ## # Resolves static and token-backed requests into shared generator inputs. module SourceResolver - # Request budget for token-backed auto-source feeds. Matches the - # max_requests default applied by Html2rss.auto_source so that sitemap - # sub-fetches are not silently blocked by Policy::DEFAULTS[:max_requests]=1. + # Request budget for token-backed auto-source feeds AUTO_SOURCE_MAX_REQUESTS = 4 class << self