Problem
The GitHub registry client in registry.rs treats HTTP 429 (rate limit) responses as fatal errors. Unauthenticated GitHub API requests are limited to 60/hour, and even authenticated requests are capped at 5,000/hour.
Impact
A user running multiple weave install or weave search commands in quick succession (or in CI) can hit rate limits and get opaque RegistryHttp { status: 429 } errors with no guidance.
Proposed solution
- Parse
Retry-After header on 429 responses
- Implement exponential backoff with 2-3 retries
- On persistent rate limit, show a clear message: "GitHub API rate limit reached. Run
weave auth login for higher limits, or wait N seconds."
- Consider adding
If-None-Match / ETag caching to reduce request count
Problem
The GitHub registry client in
registry.rstreats HTTP 429 (rate limit) responses as fatal errors. Unauthenticated GitHub API requests are limited to 60/hour, and even authenticated requests are capped at 5,000/hour.Impact
A user running multiple
weave installorweave searchcommands in quick succession (or in CI) can hit rate limits and get opaqueRegistryHttp { status: 429 }errors with no guidance.Proposed solution
Retry-Afterheader on 429 responsesweave auth loginfor higher limits, or wait N seconds."If-None-Match/ETagcaching to reduce request count