diff --git a/src/renderer/src/components/TaskPage.tsx b/src/renderer/src/components/TaskPage.tsx
index 624531abc..945f2ef85 100644
--- a/src/renderer/src/components/TaskPage.tsx
+++ b/src/renderer/src/components/TaskPage.tsx
@@ -57,7 +57,6 @@ import TeamMultiCombobox from '@/components/ui/team-multi-combobox'
import RepoDotLabel from '@/components/repo/RepoDotLabel'
import IssueSourceIndicator, { sameGitHubOwnerRepo } from '@/components/github/IssueSourceIndicator'
import IssueSourceSelector, { issueSourceChipClass } from '@/components/github/IssueSourceSelector'
-import GitHubRateLimitPill from '@/components/github/GitHubRateLimitPill'
import { reconcileLinearTeamSelection } from '@/components/task-page-linear-team-selection'
import { stripRepoQualifiers } from '../../../shared/task-query'
import GitHubItemDialog from '@/components/GitHubItemDialog'
@@ -2161,13 +2160,6 @@ export default function TaskPage(): React.JSX.Element {
- {/* Why: GitHub API budget pill is anchored next to the
- Refresh button so the "maybe I shouldn't click
- refresh again" decision is one glance away. Only
- rendered in the GitHub section because Linear has
- its own SDK-based quota and doesn't consume gh
- budget. */}
-
-}
diff --git a/src/renderer/src/components/github/github-rate-limit-display.tsx b/src/renderer/src/components/github/github-rate-limit-display.tsx
index 52fa0d66e..815ca5dab 100644
--- a/src/renderer/src/components/github/github-rate-limit-display.tsx
+++ b/src/renderer/src/components/github/github-rate-limit-display.tsx
@@ -1,6 +1,5 @@
import React, { useCallback, useEffect, useRef, useState } from 'react'
import { Gauge, RefreshCw } from 'lucide-react'
-import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip'
import { cn } from '@/lib/utils'
import { useAppStore } from '@/store'
import { callRuntimeRpc, getActiveRuntimeTarget } from '@/runtime/runtime-rpc-client'
@@ -45,33 +44,6 @@ export function toneForGitHubBucket(remaining: number, limit: number): 'ok' | 'w
return 'ok'
}
-function worstGitHubRateLimitTone(snapshot: GitHubRateLimitSnapshot): 'ok' | 'warn' | 'crit' {
- const tones = BUCKETS.map((b) =>
- toneForGitHubBucket(snapshot[b.key].remaining, snapshot[b.key].limit)
- )
- if (tones.includes('crit')) {
- return 'crit'
- }
- if (tones.includes('warn')) {
- return 'warn'
- }
- return 'ok'
-}
-
-function tightestGitHubBucket(snapshot: GitHubRateLimitSnapshot): BucketMeta {
- let worst = BUCKETS[0]
- let worstPct = 1
- for (const b of BUCKETS) {
- const { remaining, limit } = snapshot[b.key]
- const pct = limit > 0 ? remaining / limit : 1
- if (pct < worstPct) {
- worstPct = pct
- worst = b
- }
- }
- return worst
-}
-
export function useGitHubRateLimitSnapshot(options?: { autoRefresh?: boolean }): {
snapshot: GitHubRateLimitSnapshot | null
hasError: boolean
@@ -172,64 +144,6 @@ function GitHubRateLimitRows({
)
}
-export function GitHubRateLimitCompact({
- className,
- hideHealthy = true,
- label = 'GitHub API budget',
- tooltipSide = 'top'
-}: {
- className?: string
- hideHealthy?: boolean
- label?: string
- tooltipSide?: 'top' | 'right' | 'bottom' | 'left'
-}): React.JSX.Element | null {
- const { snapshot, hasError, refresh } = useGitHubRateLimitSnapshot()
- if (!snapshot || hasError) {
- return null
- }
-
- const tone = worstGitHubRateLimitTone(snapshot)
- if (hideHealthy && tone === 'ok') {
- return null
- }
- const tight = tightestGitHubBucket(snapshot)
- const tightBucket = snapshot[tight.key]
-
- return (
-
-
-
-
-
- {label}
-
-
-
- Click to refresh
-
-
- )
-}
-
export function GitHubRateLimitPanel({ className }: { className?: string }): React.JSX.Element {
const { snapshot, hasError, isFetching, refresh } = useGitHubRateLimitSnapshot()
diff --git a/src/renderer/src/components/right-sidebar/index.tsx b/src/renderer/src/components/right-sidebar/index.tsx
index f277f827f..a5a698218 100644
--- a/src/renderer/src/components/right-sidebar/index.tsx
+++ b/src/renderer/src/components/right-sidebar/index.tsx
@@ -22,7 +22,6 @@ import SourceControl from './SourceControl'
import SearchPanel from './Search'
import ChecksPanel from './ChecksPanel'
import PortsPanel from './PortsPanel'
-import { GitHubRateLimitCompact } from '@/components/github/github-rate-limit-display'
const MIN_WIDTH = 220
// Why: long file names (e.g. construction drawing sheets, multi-part document
@@ -214,8 +213,6 @@ function RightSidebarInner(): React.JSX.Element {
const effectiveTab = visibleItems.some((item) => item.id === rightSidebarTab)
? rightSidebarTab
: visibleItems[0].id
- const showGitHubBudgetInPanel =
- !isFolder && (effectiveTab === 'source-control' || effectiveTab === 'checks')
const activityBarSideWidth = activityBarPosition === 'side' ? ACTIVITY_BAR_SIDE_WIDTH : 0
const maxWidth = useWindowAwareMaxWidth()
@@ -336,13 +333,6 @@ function RightSidebarInner(): React.JSX.Element {
)}
- {showGitHubBudgetInPanel ? (
-
- ) : null}
-
{panelContent}
{/* Resize handle on LEFT side */}
diff --git a/src/renderer/src/components/status-bar/StatusBar.tsx b/src/renderer/src/components/status-bar/StatusBar.tsx
index 702b09987..d1a125460 100644
--- a/src/renderer/src/components/status-bar/StatusBar.tsx
+++ b/src/renderer/src/components/status-bar/StatusBar.tsx
@@ -39,7 +39,6 @@ import { isStatusBarItemAvailable } from './status-bar-agent-gating'
import { PetStatusSegment } from './PetStatusSegment'
import { TOGGLE_FLOATING_TERMINAL_EVENT } from '@/lib/floating-terminal'
import { FloatingTerminalIconContextMenu } from '@/components/floating-terminal/FloatingTerminalIconContextMenu'
-import { GitHubRateLimitCompact } from '@/components/github/github-rate-limit-display'
type StatusBarProps = {
floatingTerminalOpen: boolean
@@ -858,7 +857,6 @@ function StatusBarInner({ floatingTerminalOpen }: StatusBarProps): React.JSX.Ele
}}
>
-
{showClaude && }
{showCodex && }
{showGemini && (