You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
taskbot/docs/plan-trabajo-25-10-18.md

4.8 KiB

Plan somero de cierre de rama — 25-10-18

Objetivo

  • Cerrar esta rama asegurando funcionalidad clave, fiabilidad percibida y coherencia de UX, para mergear con main con confianza.

Criterios generales de “listo”

  • No romper flujos existentes.
  • Feedback claro en interacciones sin cambio visual evidente.
  • Estado de UI estable (sin saltos de scroll ni pérdidas de colapso).
  • Cobertura mínima en tests para los cambios críticos.

Bloque 1: Bloqueantes para merge (función y confianza)

  1. Feeds de calendario (multiusuario) (Completada)

    • Hipótesis: la UI no recibe token en no-admin o no refresca tras rotar; posible gating de backend por rol/sesión.
    • Señales de listo:
      • No-admin ve/usa su URL tras rotar; .ics responde 200 con contenido válido.
      • Rotar invalida el token anterior (URL vieja deja de servir).
      • Tests cubren 2 no-admin y 1 admin.
  2. Copiar y Rotar (feedback) (Completada)

    • Hipótesis: botones funcionan de forma intermitente y sin feedback; usar toasts existentes.
    • Señales de listo:
      • Copiar: “URL copiada” o “No se pudo copiar” según resultado.
      • Rotar: “Feed de calendario rotado” y la UI actualiza la URL inmediatamente.
      • Fallback si Clipboard falla.
  3. Estado de colapso y scroll al completar tareas (Completada)

    • Hipótesis: rerender global resetea colapso y reposiciona scroll.
    • Señales de listo:
      • Completar/descompletar no altera colapso ni posición de scroll.
      • Colapso persiste por groupId (localStorage) y tras refresh.
  4. Validación: no permitir tareas sin descripción

    • Señales de listo:
      • Front bloquea envío vacío con mensaje claro.
      • API devuelve 400 con error entendible.
  5. Modo oscuro en página intermedia de acceso

    • Señales de listo:
      • Respeta prefers-color-scheme y/o preferencia guardada.
      • Sin parpadeo ni estilos rotos.

Bloque 2: Refinamientos UX de bajo riesgo

  1. Mensajes para “clics silenciosos” (Completada)

    • Criterio: usar toast solo cuando no hay cambio visible inmediato (copiar, rotar, acciones async).
    • Señales de listo: catálogo simple de interacciones con su feedback (info/success/error).
  2. Bloquear acciones alrededor durante edición

    • Señales de listo:
      • Estado “editing” deshabilita acciones peligrosas cercanas (aria-disabled).
      • Salir de edición restaura interactividad sin perder foco ni contenido.
  3. Animaciones sutiles (colapsar/expandir) (Completada)

    • Señales de listo:
      • Transiciones 150200 ms; respetar prefers-reduced-motion.
      • Sin jank en listas largas.

Bloque 3: Navegación y coherencia visual (mini exploración)

  1. Unificar tabs entre desktop y mobile (top siempre)

    • Idea: tabs arriba en ambos; mini barra superior con sesión y logout.
    • Señales de listo:
      • Variante elegida (wireframe simple).
      • Tokens de densidad definidos (tipografía/espaciado) y patrón de iconografía coherente.
  2. Personalidad y densidad

    • Pistas rápidas:
      • Tipografías y espaciado más compactos en listas.
      • Uso consistente del color de grupo.
      • Etiquetas concisas e iconos de apoyo.
    • Señales de listo: 2 pantallas “antes/después” aprobadas, cambios acotados a tokens/variables.

Bloque 4: Integridad de datos y ciclo de vida

  1. Eliminación de grupo (Completada)

    • Propuesta: borrado duro con ON DELETE CASCADE para tareas, asignaciones y tokens; invalidar feeds asociados.
    • Señales de listo:
      • Contrato decidido y documentado.
      • Constraints y tests que demuestran que tareas y feeds desaparecen de UI y endpoints.
  2. Crear tareas desde la web (post-merge, MVP)

    • Alcance mínimo: descripción obligatoria, fecha opcional, grupo opcional, auto-asignación.
    • Señales de listo: validaciones consistentes con el bot.

Riesgos y verificaciones rápidas

  • Sesión/locals.userId inconsistentes en no-admin → verificar endpoints de rotar/listar tokens.
  • Invalidez de tokens viejos tras rotar → asegurar revocación real y no solo visual.
  • Re-renders que destruyen estado local → preservar claves de lista, actualizaciones puntuales.

Métricas y tests mínimos

  • Tests web para: rotar token personal en no-admin (200 .ics), copiar con éxito (toast), completar tarea sin perder estado.
  • Unit tests: validación de descripción en API.
  • Smoke: modo oscuro en página intermedia.

Siguientes pasos inmediatos (quick wins)

  • Añadir toasts a Copiar/Rotar y verificar copyToClipboard con fallback.
  • Persistir colapso por groupId en localStorage y restaurar en montaje.
  • Revisar flujo de tokens ICS con dos usuarios no-admin y un admin (rotar → validar .ics nuevo y caducidad del viejo).

Notas

  • La navegación unificada y la “personalidad visual” se abordan después de merge si crecen en alcance.
  • Priorizar siempre claridad y facilidad de uso sobre adorno; la forma sigue a la función.