Skip to content

fix(market-data): add CoinGecko failure cooldown and harden icon precache#346

Merged
CharlVS merged 4 commits intodevfrom
fix/icon-precache
Mar 30, 2026
Merged

fix(market-data): add CoinGecko failure cooldown and harden icon precache#346
CharlVS merged 4 commits intodevfrom
fix/icon-precache

Conversation

@CharlVS
Copy link
Copy Markdown
Collaborator

@CharlVS CharlVS commented Mar 30, 2026

Summary

  • CoinGecko API spam fix: When getCoinList() failed, every subsequent price request re-triggered the API call via supports(), creating a request storm that exhausted rate limits. Added a 5-minute failure cooldown to prevent retry spam.
  • Icon precache hardening: Harden icon precache fallback and manifest caching, retry CDN icon loads after transient failures, and avoid duplicate icon precache requests.

Test plan

  • Added 3 unit tests for failure cooldown behavior (no retry during cooldown, supports() returns false without API call, success caching)
  • Verify CoinGecko API rate limits are no longer exhausted during normal app usage
  • Verify coin icons load correctly with the hardened precache logic

🤖 Generated with Claude Code

CharlVS and others added 4 commits March 30, 2026 20:48
When getCoinList() failed, _cachedCoinList stayed null and every
subsequent price request re-triggered the API call via supports(),
creating a request storm that exhausted rate limits. Add a 5-minute
cooldown after failures to prevent retry spam, matching the existing
RepositoryFallbackMixin backoff duration.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@CharlVS CharlVS merged commit ed300b1 into dev Mar 30, 2026
1 of 2 checks passed
@CharlVS CharlVS deleted the fix/icon-precache branch March 30, 2026 20:42
@github-actions
Copy link
Copy Markdown
Contributor

Visit the preview URL for this PR (updated for commit 87a9475):

https://komodo-playground--pr346-fix-icon-precache-jsqirumn.web.app

(expires Mon, 06 Apr 2026 20:46:44 GMT)

🔥 via Firebase Hosting GitHub Action 🌎

Sign: 2bfedd77fdea45b25ba7c784416e81f177aa5c47

CharlVS added a commit that referenced this pull request Apr 1, 2026
…ache (#346)

* fix(ui): avoid duplicate icon precache requests

* fix(ui): retry CDN icon loads after transient failures

* fix(ui): harden icon precache fallback and manifest caching

* fix(market-data): add failure cooldown to CoinGecko coin list fetching

When getCoinList() failed, _cachedCoinList stayed null and every
subsequent price request re-triggered the API call via supports(),
creating a request storm that exhausted rate limits. Add a 5-minute
cooldown after failures to prevent retry spam, matching the existing
RepositoryFallbackMixin backoff duration.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
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