Repository navigation
feat(providers): provider SuperGrok vía Grok CLI - #177
Merged
Merged
Conversation
- providers/grok.rs: auth.json (OIDC entries, key field, GROK_HOME), billing endpoint /v1/billing?format=credits with creditUsagePercent, legacy on-demand ratio fallback, period window and resets_at parsing, optional plan via /v1/settings; defensive degradation (issue egdev6#173) - config: grok SubscriptionConfig (disabled by default), sanitize, session env GROK_HOME and per-account auth.json - wiring in providers/mod.rs: fetch_all, fetch_one, session_file, session_stamp, extra accounts - deterministic tests with JSON fixtures (no network)
- Settings: pestaña grok (PROVIDER_TABS, mainState, sección OAuth con hint de auth.json y %GROK_HOME%), loginCommand por cuenta - types/accounts/widget-refresh/order: campo grok, AccountProvider, SESSION_DIR GROK_HOME, refresco del widget y enlace de uso oficial - login.rs: detección del CLI grok y login por cuenta - test de session_file para cuenta adicional de grok (issue egdev6#173)
- settings-visibility: grok faltaba en CONFIG_KEY, el toggle «Mostrar en el widget» descartaba el cambio en silencio - assets: logo de Grok (sin texto, currentColor) y fila en el catálogo de logos (issue egdev6#173)
Reemplaza el logo de 2023 (barra diagonal) por la marca vigente desde feb 2025 (dos trazos curvos), extraída de Wikimedia Commons y adaptada a currentColor (issue egdev6#173).
…NFIG_KEY y dataKey)
# Conflicts: # docs/i18n-inventory.md
Owner
|
@barbatdev revisado el rebaso completo sobre Lo que has arreglado en el camino
✅ Verificación reproducida (head
|
| Check | Resultado |
|---|---|
cargo test --locked |
265 passed — los 9 de grok en verde |
cargo clippy --all-targets |
0 avisos en grok |
vitest run --dir src |
669 passed |
tsc --noEmit |
Limpio |
i18n-inventory --check |
✅ |
Y probado en vivo con suscripción SuperGrok real (anillo 9%, plan "SuperGrok"). El trabajo de prueba en vivo que hiciste en #174 (el bug de CONFIG_KEY, el logo desactualizado) es exactamente el tipo de verificación que hace buenos los providers.
Gracias por la paciencia con las dos rondas de review — el resultado quedó mucho mejor que el primer diff. Un besito, ¡buen trabajo! 😄
🟡 Menores (no bloquean — sin issue, quedan anotados aquí)
- Conteos de la descripción: «cargo 264» → 265, y «vitest 221» → 669 (parece typo). Conviene corregirlos para no confundir la auditoría futura.
- S5 de la spec (
odd/tasks/grok-provider.md) dice degradar conStatus::Error; el código usaWarning— alinear spec o código en la próxima pasada. - Código muerto pequeño:
Parsed.plan_hintsiempre esNoneyparserecibe_nowsin usar. - Token caducado: se envía esperando 401 →
NeedsLogin; funciona y está testeado, solo depende del comportamiento del endpoint.
Ninguno merece issue: si hace otro push, mete el 1 y el 2; el 3 y el 4 pueden esperar a una pasada de limpieza del módulo.
egdev6
approved these changes
Oct 23, 2026
egdev6
pushed a commit
that referenced
this pull request
Oct 23, 2026
Review del maintainer en #177 señaló que la spec pedía Status::Error pero la implementación degrada con Warning (como codex.rs). Se alinea la spec con el código.
2 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #173. Reemplaza a #174 (rebase limpio sobre
mainpost-MiniMax #172, mismo contenido + compatMeter.id/CONFIG_KEY/dataKey).Provider
grok(Kind::Subscription) que monitorea el uso semanal de créditos de la suscripción SuperGrok reutilizando la sesión del Grok CLI oficial (~/.grok/auth.json, patrón decodex.rs).providers/grok.rs(billingcli-chat-proxy.grok.com/v1/billing?format=credits, headerx-xai-token-auth, parse tolerante decreditUsagePercentcon fallback on-demand, reset porcurrentPeriod.end, plan opcional por/v1/settings), configgrok+GROK_HOME, wiring enmod.rs/login.rs.CONFIG_KEY, logo (marca actual),SESSION_DIR, widget-refresh, enlace de uso.Nota: endpoint no oficial; el provider degrada con mensaje claro si el formato cambia. Fuera de alcance: caps de chat de grok.com/X y créditos de developer platform (pools separados).