You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(rate-limit): fixes footer display and tracks GraphQL cost (#80)
* fix(github): route rate limit signals by pool on error paths
- Gate updateRateLimitFromHeaders on !isGraphql to prevent GraphQL
response headers from contaminating _coreRateLimit signal
- Add GraphQL-aware signal updates to hook.wrap error path: routes
GraphQL errors to _setGraphqlRateLimit, REST errors to
updateRateLimitFromHeaders, wrapped in try/catch to never mask errors
- Make fetchRateLimitDetails() update both signals on all return paths
(cache-hit and fresh-fetch)
- Add tests for signal routing, error path updates, and
fetchRateLimitDetails signal feedback
* fix(poll): seed rate limit signals at poll cycle start
- Call fetchRateLimitDetails() after setIsRefreshing(true) to seed
both rate limit signals with authoritative GET /rate_limit data
- Add github module mock to poll tests for fetchRateLimitDetails
- Add flushPromises helper for multi-await microtask flushing
* fix(api): extracts rateLimit from error-path responses
- runForkPRFallback: extract rateLimit from err.data before partialData
- fetchPREnrichment: extract rateLimit at start of catch block
- fetchHotPRStatus: extract from s.reason.data in rejection loop
- Add tests for all three error-path extractions
* fix(dashboard): adds error state when rate limit exhausted
- Three-tier CSS class: text-error at remaining===0, text-warning
at <10%, normal otherwise
- Add DashboardPage.test.tsx with tests for all three styling states
* fix(github): guards remaining against NaN, trims cache path
- NaN-guard parseInt(remaining) in error-path signal update
- Remove redundant signal updates from fetchRateLimitDetails cache
hit path (signals already set on fresh fetch)
- Add explanatory comment to flushPromises test helper
* feat(api-usage): tracks GraphQL query point cost, not call count
- Adds cost field to all 7 GraphQL rateLimit query fragments
- Extracts rateLimit.cost from GraphQL response body in hook.wrap
- Extracts cost from error response body on GraphQL failures
- Passes graphqlCost via ApiRequestInfo to api-usage tracking
- Renames Settings UI labels from Calls/counts to Usage
- Add tests for graphqlCost extraction in hook.wrap callbacks
* fix(rate-limit): address pr-review findings
- Restore cache-hit signal updates in fetchRateLimitDetails
- Extract rateLimitCssClass utility from inline ternary
- Run fetchRateLimitDetails concurrently (void, not await)
- Add error-path graphqlCost and call-count tests
- Add fetchRateLimitDetails signal update + cache-hit tests
- Fix section comment numbering cascade in SettingsPage
- Add clientOverride param to fetchRateLimitDetails for testability
description="Allow a local MCP server to read dashboard data. Enable this if you use Claude Code or another AI client with the GitHub Tracker MCP server."
@@ -754,7 +754,7 @@ export default function SettingsPage() {
0 commit comments