feat(05-03): frontend fallback integration for research display
- ExerciseResearchPanel: add ProviderBadge component showing which AI tier (Ollama/Gemini/OpenRouter/OpenCode/Exa) served the response - Add auto-retry on 429/503 with 2s delay and retry counter in button - Normalize error messages for common failure modes (network, rate-limit) - ResearchDisplay: pass onRetry prop to error state for inline retry button - CSS: .research-panel-controls flex row, .provider-badge with per-provider colour coding, .rd-error-actions + .rd-retry button styles
This commit is contained in:
@@ -563,3 +563,50 @@
|
||||
padding: var(--space-2) var(--space-3) var(--space-3);
|
||||
}
|
||||
}
|
||||
|
||||
/* ============================================
|
||||
PROVIDER BADGE — AI fallback indicator
|
||||
============================================ */
|
||||
|
||||
.research-panel-controls {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--space-2);
|
||||
}
|
||||
|
||||
.provider-badge {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
padding: 2px 8px;
|
||||
border-radius: 9999px;
|
||||
font-size: 11px;
|
||||
font-weight: 600;
|
||||
letter-spacing: 0.03em;
|
||||
background: var(--bg-elevated);
|
||||
border: 1px solid var(--border);
|
||||
color: var(--text-muted);
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.provider-local { border-color: rgba(34, 197, 94, 0.4); color: #4ade80; }
|
||||
.provider-gemini { border-color: rgba(99, 102, 241, 0.4); color: #818cf8; }
|
||||
.provider-openrouter { border-color: rgba(234, 179, 8, 0.4); color: #facc15; }
|
||||
.provider-opencode { border-color: rgba(251, 146, 60, 0.4); color: #fb923c; }
|
||||
.provider-exa { border-color: rgba(56, 189, 248, 0.4); color: #38bdf8; }
|
||||
.provider-unknown { border-color: var(--border); color: var(--text-muted); }
|
||||
|
||||
/* Error actions row */
|
||||
.rd-error-actions {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--space-2);
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.rd-retry {
|
||||
padding: 2px 10px;
|
||||
font-size: var(--font-xs);
|
||||
min-height: 28px;
|
||||
border-radius: var(--radius-sm);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user