Skip to content

fix(widget): el orbe avisa la falta de credencial con badge y motivo (#214) - #236

Merged
egdev6 merged 5 commits into
egdev6:mainfrom
SrStamm:fix/214-orb-status-badge
Nov 2, 2026
Merged

egdev6 merged 5 commits into
egdev6:mainfrom
SrStamm:fix/214-orb-status-badge

Conversation

@SrStamm

@SrStamm SrStamm commented Nov 1, 2026

Copy link
Copy Markdown
Contributor

Related issue / Issue relacionada

Issue: #214 · Closes #214
ODD: odd/tasks/214-orb-status-badge.md en esta rama (6 tareas, fase de implementación y validación completa).

Scope / Alcance

Implementa la B mínima aprobada en #214 (tras la decisión de #230 de no integrar C/transient_for): el orbe mismo avisa la falta de credencial, sin ventana nueva y sin tocar la ventana detail ni su colocación.

  • Badge ámbar (data-kind='action', .orb__badge ya existente en styles.css) para needsLogin y unconfigured — los estados con acción asociada (model.rs:122-124); se suma al orbe atenuado.
  • Motivo accesible (aria-label/title) con details.status.* de ambos catálogos para los tres estados atenuados; el título conserva el orden [nombre, motivo, validez, reinicios].
  • error sin badge: motivo solo en texto accesible (ajuste del mantenedor).
  • Exclusiones: sin cambios en Rust, ventanas nuevas, DetailPanel, widget_placement, ni textos de i18n. La colocación del panel de detalle en Wayland nativo queda como está en main (limitación conocida, follow-up de fix(linux/wayland): anchor detail popup to widget bar under native Wayland (#214) #230).

Coordination / Coordinación

  • Para ODD: asignaciones y solapamientos revisados; tomar verificada o acuerdo explícito del mantenedor enlazado.

Asignación verificada releyendo la issue antes de abrir: OPEN, labels status:approved + type:bug, assignee @SrStamm. Acuerdo explícito del mantenedor en #214: diseño B mínima aprobado con el ajuste de cubrir también unconfigured, y luz verde para la PR («Con ese ajuste… Adelante con la PR»). gh pr list sin PRs solapadas que referencien #214.

Contribuidor / Contribuidor: @SrStamm
Evidencia de asignación o acuerdo: #214 (comment)

Acceptance and validation / Aceptación y validación

  • Criterios cumplidos: badge ámbar + motivo para needsLogin/unconfigured; motivo sin badge para error; ok sin cambios. Validación manual (máquina del reporte, Wayland nativo): sesión caducada con badge + tooltip; proveedor sin API key con badge + «Sin configurar»; red cortada a proveedor con credencial → tooltip «Provider · Error» y sin badge, según diseño; sin choques del badge y escalado correcto; GDK_BACKEND=x11 intacto. Nota observada: al abrir el panel por hover, este sigue apareciendo centrado en Wayland nativo — comportamiento de main, fuera de alcance (detalle en el ODD).
  • Comprobaciones ejecutadas y resultados: npm test (vitest 904/0 + scripts node --test 298/0), npm run typecheck OK, cargo test --locked 402/0, cargo fmt --check OK, node scripts/i18n-inventory.mjs --check verde (regeneración commit docs(i18n): solo cambia el digest del árbol src/). RED/GREEN observados en ProviderGauge.test.tsx (4 casos).
  • Comprobaciones no ejecutadas y motivo: ninguna aplicable pendiente de mi lado; CI del target queda pendiente tras abrir la PR.
  • Bloqueos pendientes: ninguno conocido.

…gdev6#214)

- Badge ámbar (data-kind='action', .orb__badge ya existente) para
  needsLogin y unconfigured, los estados con acción asociada; se suma al
  atenuado, no lo reemplaza.
- Motivo accesible (aria-label/title) con details.status.* para los tres
  estados atenuados (needsLogin, unconfigured, error); error sin badge.
- Sin cambios en Rust, ventanas, DetailPanel ni catálogos i18n (egdev6#230 decidió
  no integrar el fix transient_for; el badge es la vía mínima).

Tests: RED/GREEN en ProviderGauge.test.tsx (4 casos); vitest 904/0,
scripts 298/0, typecheck, cargo test --locked 402/0, fmt, inventario
i18n --check sin cambios; validación manual en Wayland nativo y
GDK_BACKEND=x11 (evidencia en odd/tasks/214-orb-status-badge.md).
Solo el digest del árbol src/ cambia (ProviderGauge.tsx); ningún texto
de usuario nuevo ni desplazado: 'node scripts/i18n-inventory.mjs --check'
verde.
@egdev6
egdev6 merged commit a21d4ac into egdev6:main Nov 2, 2026
5 of 6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bug(linux/wayland): el aviso de proveedor sin credencial no aparece en Wayland nativo

2 participants