diff --git a/resumen/2026-03-22-1652-resumen.md b/resumen/2026-03-22-1652-resumen.md index 16ca4df..f1cbffe 100644 --- a/resumen/2026-03-22-1652-resumen.md +++ b/resumen/2026-03-22-1652-resumen.md @@ -19,7 +19,7 @@ Recall es una aplicación de gestión de conocimiento personal (PKM) para captur src/ ├── app/ # Next.js App Router │ ├── api/ # API routes -│ │ ├── notes/ # CRUD de notas +│ │ ├── notes/ # CRUD de notas, versions, quick │ │ ├── tags/ # Tags y sugerencias │ │ ├── search/ # Búsqueda avanzada │ │ ├── usage/ # Tracking de uso @@ -36,19 +36,22 @@ src/ │ ├── note-form.tsx # Formulario de nota │ ├── note-connections.tsx # Panel de conexiones │ ├── related-notes.tsx # Notas relacionadas +│ ├── version-history.tsx # Historial de versiones │ └── track-note-view.tsx # Tracking de vistas └── lib/ # Utilidades ├── prisma.ts # Cliente Prisma ├── usage.ts # Tracking de uso y co-uso ├── search.ts # Búsqueda con scoring + ├── query-parser.ts # Parser de queries avanzadas + ├── versions.ts # Historial de versiones ├── related.ts # Notas relacionadas - ├── backlinks.ts # Sistema de enlaces [[wiki]] + ├── backlinks.ts # Sistema de enlaces [[wiki]] ├── tags.ts # Normalización y sugerencias ├── metrics.ts # Métricas de dashboard - ├── centrality.ts # Cálculo de centralidad - ├── type-inference.ts # Detección automática de tipo + ├── centrality.ts # Cálculo de centralidad + ├── type-inference.ts # Detección automática de tipo ├── link-suggestions.ts # Sugerencias de enlaces - ├── features.ts # Feature flags + ├── features.ts # Feature flags └── validators.ts # Zod schemas ``` @@ -98,18 +101,32 @@ model Backlink { } ``` +### NoteVersion +```prisma +model NoteVersion { + id String @id @default(cuid()) + noteId String + title String + content String + createdAt DateTime @default(now()) +} +``` + ## APIs Principales | Endpoint | Método | Descripción | |----------|--------|-------------| | `/api/notes` | GET, POST | Listar/crear notas | | `/api/notes/[id]` | GET, PUT, DELETE | CRUD de nota | +| `/api/notes/[id]/versions` | GET, POST | Listar/crear versiones | +| `/api/notes/[id]/versions/[vid]` | GET, PUT | Ver/restaurar versión | | `/api/notes/quick` | POST | Creación rápida | | `/api/notes/links` | GET | Sugerencias de enlaces | | `/api/search` | GET | Búsqueda con scoring | | `/api/tags` | GET | Listar/buscar tags | | `/api/tags/suggest` | GET | Sugerencias automáticas | | `/api/usage` | GET | Estadísticas de uso | +| `/api/usage/co-usage` | GET | Notas co-usadas | | `/api/metrics` | GET | Métricas de dashboard | | `/api/centrality` | GET | Notas más centrales | @@ -153,6 +170,24 @@ model Backlink { - Desktop: una fila con logo, nav links, QuickAdd y botón Nueva nota - Mobile: logo + QuickAdd + hamburguesa → dropdown con nav links y botón Nueva nota +### MVP-4 Sprint 1 +- Query parser para búsquedas avanzadas (`type:`, `tag:`, `is:favorite`, `is:pinned`) +- Búsqueda en tiempo real con 300ms debounce +- Navegación por teclado (↑↓ Enter ESC) estilo Spotlight +- Dropdown de resultados con cache de 50 entradas + +### MVP-4 Sprint 2 +- Sidebar contextual con co-uso (notas vistas juntas) +- Cache de resultados de búsqueda + +### MVP-4 Sprint 3 +- Historial de versiones de notas +- API de versiones (crear, listar, restaurar) +- UI de historial en diálogo de nota + +### MVP-4 Sprint 4 +- Tests de historial de versiones (11 tests) + ## Algoritmo de Scoring ```typescript @@ -168,15 +203,17 @@ centrality = backlinks(×3) + outboundLinks(×1) + usageViews(×0.5) + coUsageWe ## Tests -**181 tests** cubriendo: +**211 tests** cubriendo: - API routes (CRUD, search, tags, etc.) - Search y scoring +- Query parser - Notas relacionadas - Backlinks - Type inference - Link suggestions - Usage tracking - Dashboard +- Version history ## Comandos