Skip to content

fix: GitHub fetch caching#52

Merged
masonlet merged 6 commits into
mainfrom
fix/github-fetch-caching
Jul 13, 2026
Merged

fix: GitHub fetch caching#52
masonlet merged 6 commits into
mainfrom
fix/github-fetch-caching

Conversation

@masonlet

Copy link
Copy Markdown
Member

Summary

Hardens fetchLanguageData's caching behavior and fixes a bug in IGNORED_REPOS

  • Cache poisoning fix: a cold-start total failure or a partial fetch failure was being written to cachedLanguageData and served as truth for a full hour. Both now share one guard; a result is only cached when no source failed.
  • Concurrent request coalescing: simultaneous calls to fetchLanguageData on a cold/expired cache each independently triggered a full repo-list + per-repo-languages crawl., now share a single in-flight promise.
  • IGNORED_REPOS: previously matched by bare repo name only, so two sources (e.g. a user and an org) with a same-named repo couldn't be ignored independently. Now also accepts owner/name to scope an ignore to one source
  • Language-fetch: a non-ok response from a per-repo /languages call was silently treated as "no languages" instead of a failure, unlike the repo-list fetch.
  • Corrected the README's user-token sources fetch note
  • Added the missing malformed-JSON-config error message

@masonlet
masonlet merged commit 560cc22 into main Jul 13, 2026
3 checks passed
@masonlet
masonlet deleted the fix/github-fetch-caching branch July 13, 2026 00:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant