Skip to content

Add local disk cache and concurrent downloads for changelog bundles#3722

Merged
Mpdreamz merged 1 commit into
mainfrom
fix/changelog-download-blocking
Jul 24, 2026
Merged

Add local disk cache and concurrent downloads for changelog bundles#3722
Mpdreamz merged 1 commit into
mainfrom
fix/changelog-download-blocking

Conversation

@Mpdreamz

Copy link
Copy Markdown
Member

Why

Every docs-builder invocation (and every dev-server file-change reload) re-downloads all changelog bundle YAML files from CloudFront, even though they rarely change. This adds noticeable latency to builds, especially in the serve path where reloads are frequent. The cross-link fetcher already avoids this with ETag-based local caching; changelogs had no equivalent.

What

  • Individual changelog bundle files are now cached on disk at ~/.../elastic/docs-builder/changelog-bundles/ keyed by {product}-{fileName}-{etag}, mirroring the CrossLinkFetcher pattern. The registry.json is always fetched (it's small and provides fresh ETags for cache validation).
  • Bundle downloads within a product are now concurrent (Task.WhenAll) instead of sequential.
  • Fixed ChangelogRegistryBundle.ETag deserialization by adding an explicit [JsonPropertyName("etag")] — the SnakeCaseLower naming policy was producing e_tag which never matched the CDN's actual field name, so the field was always null.

Made with Cursor

The CdnChangelogFetcher now caches individual bundle files on disk
keyed by product/fileName/etag (mirroring CrossLinkFetcher's pattern)
so repeated builds and dev-server reloads skip unchanged downloads.
Bundle downloads within a product are now fired concurrently via
Task.WhenAll instead of sequentially.

Also fixes ChangelogRegistryBundle.ETag deserialization by adding an
explicit [JsonPropertyName("etag")] — the SnakeCaseLower policy
produced "e_tag" which never matched the CDN's actual field name.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@Mpdreamz
Mpdreamz requested a review from a team as a code owner July 24, 2026 12:34
@Mpdreamz
Mpdreamz requested a review from cotti July 24, 2026 12:34
@Mpdreamz
Mpdreamz merged commit 9e7159d into main Jul 24, 2026
25 checks passed
@Mpdreamz
Mpdreamz deleted the fix/changelog-download-blocking branch July 24, 2026 13:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants