agent-orchestrator/docs
Prateek 3674229388 feat: add plugin-agnostic rate limit handling architecture
Implements INT-1370 with plugin interface extensions, cache transparency,
and standardized error handling for rate limits.

- Add `RateLimitInfo` interface for quota tracking
- Add `RateLimitError` class with structured error data
- Add `getRateLimitStatus()` optional method to SCM and Tracker interfaces

- Track `cachedAt` timestamp in cache entries
- Add `getWithMetadata()` method returning cache age and staleness
- Support cache transparency UX ("Updated 5m ago" indicators)

- Add `cacheAge`, `lastFetched`, `stale` fields to `DashboardPR`
- Add `rateLimitStatus` field with reset time and retry guidance

- Use cache metadata for transparency
- Populate cache age fields on DashboardPR
- Add rate limit status when API calls fail

- Implement `getRateLimitStatus()` using `gh api rate_limit`
- Return status for 3 resources: core, graphql, search
- Include remaining quota and reset times

- Comprehensive design doc covering architecture, types, cache strategy
- UX patterns for rate limit messaging and cache age indicators
- Future enhancements: lazy loading, request batching, quota manager

- Add RateLimitError tests (packages/core/src/__tests__/rate-limit.test.ts)
- Add TTLCache.getWithMetadata() tests (packages/web/src/lib/__tests__/cache.test.ts)

1. **Plugin-agnostic**: Works for GitHub, GitLab, Linear, Jira, etc.
2. **Explicit errors**: Show "Rate limit hit. Resets at 4:35 AM" not silent failures
3. **Cache transparency**: Indicate data age ("Updated 2m ago")
4. **Fail-safe**: Apply partial data when some API calls fail

Dashboard UI implementation (INT-1370 task 6):
- Show cache age indicators on PR cards
- Display rate limit banner when plugin is limited
- Add staleness visual cues (gray out stale data)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-18 16:09:39 +05:30
..
DEVELOPMENT.md fix: migrate to hash-based project isolation architecture 2026-02-18 00:19:55 +05:30
RATE_LIMITING.md feat: add plugin-agnostic rate limit handling architecture 2026-02-18 16:09:39 +05:30
SECURITY-AUDIT-SUMMARY.md fix: migrate to hash-based project isolation architecture 2026-02-18 00:19:55 +05:30