Volver a la wiki

Worklog: timeline unificado de sesiones y actividad

Worklog: timeline unificado de sesiones y actividad

Resumen

Antes de esta feature (PR #55, 2026-05-20), el Workspace tenía dos vistas desconectadas:

VistaQué mostrabaProblema
/worklogSesiones técnicas del WORKLOG.mdNo incluía eventos automáticos del activity_log
/historyEventos automáticos (activity_log)Duplicado funcional; no incluía sesiones técnicas

El widget Actividad reciente del dashboard apuntaba a /worklog pero los eventos automáticos nunca aparecían allí.

Esta feature unifica ambas fuentes en /worklog como un timeline cronológico único, ordenado DESC con headers de día (Hoy / Ayer / día de la semana).


Componentes introducidos

WorklogTimeline.tsx

Ruta: src/components/worklog/WorklogTimeline.tsx

Timeline React con dos tipos de entrada renderizados en la misma vista:

Capacidades de filtrado:

worklog-parser.ts

Ruta: src/lib/worklog-parser.ts

Parser del fichero WORKLOG.md con soporte de dos formatos:

FormatoDescripción
s64+ (actual)Autor + Resumen + Detalle técnico separados por secciones
legacy pre-s64### Autor (tool) seguido de bullets

Características adicionales:

worklog.astro (actualizado)

Ruta: src/pages/worklog.astro

Integrado en el shell estándar SecondaryLayout. Header con tono coloquial. Carga WorklogTimeline como isla React.


Eliminaciones

Artefacto eliminadoMotivo
src/components/activity/ActivityLog.tsxComponente duplicado — su funcionalidad queda absorbida por WorklogTimeline
src/pages/history.astroRuta duplicada — /history devuelve 404 tras el merge
Entrada “Historial” en navigation.tsYa no existe la ruta

Integraciones existentes que NO cambian


Comportamiento esperado post-merge

  1. /worklog carga timeline mezclado con header de día.
  2. Botón Ver detalle técnico expande la sesión y renderiza markdown.
  3. Filtros funcionan: toggle Todo/Sesiones/Actividades, persona, fechas, búsqueda.
  4. Widget Actividad reciente del dashboard sigue funcionando vía /api/activity.
  5. /history devuelve 404 y desaparece del sidebar.

Incidencia corregida (27-09-2026, PR #197)

Desde el 16-09-2026 (s329) las sesiones nuevas escriben el autor dentro de la propia cabecera (## fecha · sNNN · Autor (modelo) — título, con variantes: orden fecha/sNNN, con o sin modelo, con día de la semana, con horquilla de sesiones). El HEADER_RE original nunca contempló esas formas: reconocía 315 de las 347 cabeceras reales de WORKLOG.md y las 32 restantes quedaban pegadas como texto dentro de la sesión anterior — la página /worklog dejó de mostrar las sesiones nuevas desde esa fecha.

Fix: worklog-parser.ts añade una cascada de 7 patrones de respaldo (FALLBACK_HEADER_PATTERNS), probados solo cuando HEADER_RE no casa, más una red final que convierte cualquier cabecera con fecha en sesión propia aunque no case ningún patrón conocido. Cobertura verificada: 347/347 cabeceras del fichero real (test/worklog-parser.test.ts).

Commit: 7227c07f (PR #197).


Véase también

Subir