Bitácora interna
Tareas del proyecto
Hecho y por hacer, sincronizado con la base de datos.
Pendientes
10
En curso
1
Bloqueadas
0
Completadas
5
- schema?️
Confirmar esquema de news_articles
DESCRIBE news_articles y SHOW CREATE TABLE para mapear columnas reales (título, fuente, país, fecha, pipeline_status, scores, hash, clean_content, raw_html, etc.) antes del listado con filtros.
- schema✅
Definir esquema de review (marcar ruido/duplicado/válido)
Decidir: columna review_status en news_articles, o tabla news_article_reviews (article_id, status, reviewer, reason, created_at). Habilita los botones de validación humana.
- pages?
/articles: tabla real con filtros
Reemplazar SHOW TABLES por SELECT real de news_articles con paginación y filtros por querystring (país, fuente, status, fecha, tipo de evento).
- pages?
/review: pendientes de validación humana
Lista filtrada por pipeline_status pendiente con acciones rápidas (marcar válido/ruido/duplicado/irrelevante).
- api⚡
Endpoint POST para escribir feedback de review
src/pages/api/articles/[id]/review.ts con prepared statements. Dependencia dura: schema de review definido.
- pages?
/events: agrupación por news_events
Vista por evento jurídico: título del evento, cantidad de artículos asociados, países, scores promedio. Ayuda a evaluar calidad del clustering.
- pages♻️
/duplicates: comparación lado a lado
Detección y review manual de posibles duplicados. Hash similarity + decisión humana.
- pages?
/quality: métricas + gráficos
Evolución de % artículos válidos por día, top fuentes con ruido, entidades más frecuentes. Introduce el alias @charts.
- meta✏️
Acciones de escritura sobre todo_tasks (UI)
Botones ↑/↓ para reordenar, checkbox para completar, botón + para agregar. Hoy la bitácora es read-only.
- meta?
Evaluar tabla todo_subtasks vs parent_id flat
El schema actual ya soporta subtareas vía parent_id self-ref. Después de 2-3 semanas de uso decidir si separar a tabla aparte.
- infra☁️
Migrar dashboard a consumir la API (Cloudflare)
en cursoContrato definido en docs/api-contract-dashboard.md. Cuando la API implemente Fase 1: crear @lib/api.ts, reescribir @lib/queries/* de SQL a fetch conservando firmas, adapter @astrojs/cloudflare, retirar mysql2 y db/migrations.
- meta?
Bitácora interna del dashboard (todo_tasks + componente)
Tabla todo_tasks en DB, queries en @lib/queries/todos, @ui/TodoList portable, @components/todo/TodoWidget embebido en / y /404, página /bitacora con vista completa.
- ui?
Arquitectura: aliases + layouts + componentes UI portables
Aliases en astro.config + tsconfig. BaseLayout/DashboardLayout. Componentes @ui (Sidebar, Card, Badge, StatCard, PageHeader, EmptyState, ErrorBanner, TableList). Refactor de páginas existentes.
- infra?
Conectar dashboard a MariaDB
Pool mysql2/promise, env vars, SSR con @astrojs/node, Tailwind v4, página /articles con SHOW TABLES como primera verificación.
- repo?
Push inicial al repo de GitHub
Configurar origin y push de main → posta.business.dashboard.git. Resolución de conflicto en README.md tras merge --allow-unrelated-histories.
- pages?
Página 404 con CTA al home + Button portable
BaseLayout sin sidebar, dos CTAs (Volver al inicio / Ver artículos). Nuevo componente @ui/Button.astro reusable.