Backlog
Historial del producto
Esta página resume el historial por versiones (no todas las ideas sueltas). Cuando lleguemos a v1.0.0, el producto se lanzará al público.
Registro de versiones (historial de producto)
v0.140.0 (actual)
Numeración: salto de minor por cierre transversal: landing renovada (métricas, herramientas, FAQ, CTAs), retirada de rutas públicas /demo y /prep, CV ampliado (tabs, portada, ofertas, ajustes, ATS/plantillas), herramienta Expense tracker en /tools, refinamiento de shell/prefs/estilos y documentación al día.
- Landing (
/): bloque Métricas con gráfico de líneas (Apache ECharts, serie ficticia 2025) y tarjetas inspiradas en/app(stack con barras + actividad reciente); carrusel Recorrido con faceta Herramientas; sección Herramientas con demos (carrusel de gastos, hábitos, Pomodoro, fila de enlaces compacta); franja superior enlaza solo a/backlog; eliminados el diagrama “Dentro de la app”, el teaser “Próxima pieza” y las páginas/demoy/prep(y el componentePrepRoadmap); FAQ a ancho completo en grid con más preguntas; CTA final con copy renovado y botón Contacto (/contact). - i18n (ES/EN): ampliación de claves para landing, CV, herramientas, dashboard y textos públicos coherentes con lo anterior.
- Dashboard (
/app): enlace Backlog en “Enlaces útiles” sustituye al enlace Prep (ruta retirada). - Command palette: sin entrada a
/prep. - Prefs y estado cliente: extensiones en
prefs.ts,settings-prefs.ts,SettingsPrefsFields.astroyuser_client_state.tspara nuevos flujos (CV, herramientas, shell). - CV (
/cvy público/cv/p/[token]): pestañas del documento, portada, ofertas, modal de ajustes de CV, burbuja dock; libscv-ats-score,cv-display-format,cv-templatesy retoques en ATS; mejoras en host, editor, cabecera, preview y páginas; scriptscv-page.ts,public-cv-by-token.ts, rieles y UI por pestaña (cv-browser-tabs.ts,cv-job-offers-ui.ts,cv-scroll-doc-rail.ts,cv-settings-modal.ts). - Herramientas — control de gastos (
/tools/expense-tracker): implementación en cliente consrc/lib/tools-expense-tracker.ts, export XLSX, utilidades de sync/cifrado en rama, SQL opcionaldocs/sql/saas-029-tool-expense-tracker-optional-storage.sql(Storage Supabase); entrada en el hub/tools; dependenciaexceljs. - Shell y FAB: ajustes en
AppHeader.astro,AppFabShell.astroyfab-bubbles.ts(accesos alineados con herramientas y CV). - Cliente transversal:
auth-guard.ts, ampliación deselect-popover.ts,command-palette.ts. - Estilos:
src/styles/global.css(utilidades y refinamiento visual). - Documentación:
docs/architecture.md,docs/code-locations.md,docs/db.md,docs/local-persistence.mdyREADME.md(rutas, persistencia opcional de gastos, referencias sin/prep).
Estudio (/study) — UX / cohesión (siguiente iteración; no cerrado en v0.140.0)
- Objetivo: acción explícita de guardar (o auto-guardado con feedback inequívoco: guardado / error / pendiente) y continuar / proceder — enlace o CTA que encadene el flujo (p. ej. bajar foco a fuentes, dossier o “siguiente paso”), no solo texto de ayuda bajo el input.
- Cohesión: Objetivo, SkillAtlas (tech + proyecto) y Temario se perciben como bloques inconexos; acercar jerarquía (pasos numerados, pestañas, acordeón o strip colapsable) y menos rejilla densa a la vez en viewport.
- Mini-espec de pantalla Estudio (flujo feliz + qué va a “Más / avanzado”) antes de rediseños grandes; alinear copy y CTAs con ese orden.
v0.130.0
Numeración: el trabajo acumulado que estaba documentado como salida 0.120.x se publica como 0.130.0 (salto de versión por alcance: Estudio, /tools ampliado, CV, admin, SQL y sync en cuenta).
- Command palette: fondo del overlay más suave (
backdropligero, viñetas de color atenuadas, panel un poco más opaco); entradas para todas las rutas bajo/tools(además de/backlog,/contact, etc.). - CV (
/cv):- Botón Descargar JSON en la cabecera (mismo payload que el respaldo del editor).
- Vaciar contenido con modal in-app (mismo patrón que import/preview), sin
window.confirm. - Proyectos en CV: copy alineado con portfolio; proyecto destacado opcional (
cvFeaturedProjectSlugencvProfile); el resto en lista compacta en vista previa e impresión; CV público por token respeta destacado si viene en el JSON del perfil.
- Estudio (
/study):- Carpetas definidas por el usuario (
customStudyFolders+ asignación ensourceFolderById), persistidas en local junto al workspace; fusión al hidratar desde Supabase. - Iconos VS Code Codicons (
@vscode/codicons) para carpeta y asa de arrastre. - Panel central tipo IDE con cabecera y dock más visibles (gradiente, anillo, borde).
- Carpetas definidas por el usuario (
- Admin (
/admin):- Bloque Usuarios y sesión:
GET /api/admin/stats(JWT de sesión + filaadmin_users+ opcionalSUPABASE_SERVICE_ROLE_KEYen servidor) lista usuarios Auth (email, creado, último login, provider). Sin service role, mensaje de configuración.
- Bloque Usuarios y sesión:
- Importación GitHub: confirmado estable en uso real (stack / evidencia).
- Herramientas (
/tools) — hub ampliado (cliente, sin servidor salvo lo ya existente):- Enlace Herramientas en cabecera (solo con sesión) con popover desplazable y listado de accesos directos; pie y palette alineados.
- Hub
/toolscon tarjetas (grid responsive) hacia: hábitos, convertidor (imágenes en cliente; resto marcado Pro), vista Markdown/README (marked+ saneadoDOMPurify), bio corta, título/slug, checklist pre-entrevista (localStorage + JSON), Pomodoro, cronómetro de charla (avisos 2′/1′/0), diff de texto (diff), JSON (formatear/minificar), snippet HTML escapado, estimación bruto→neto, generador.gitignore(src/lib/tools-gitignore-parts.ts), código QR (qrcode). - Dependencias nuevas en bundle:
marked,dompurify,diff,qrcode(+ tipos dev@types/dompurifydonde aplica).
- Producto — historial visible:
- Ruta
/backlogque muestra el historial por versiones (derivado dedocs/backlog.md).
- Ruta
- Bubble (FAB) — utilidades:
- Pestañas nuevas: Calendario (notas por fecha) y Curiosidades (links).
- Se quitan “Primeros pasos” y “Contacto” del bubble (onboarding + ruta
/contact).
- Contacto:
- Ruta
/contactenlazada desde Ajustes (menú de usuario). /request-accessrenovado con enlace a/contact.
- Ruta
- Estudio (
/study) — fase 1 (persistencia):- Tablas Supabase + RLS:
study_sources(links/notas) ystudy_workspaces(activeIds + sessionNotes). - La UI hidrata desde Supabase con sesión y mantiene fallback/cache en
localStorage(migración 1 vez si remoto está vacío).
- Tablas Supabase + RLS:
- Estudio (
/study) — fase 2 (subida de archivos):- Bucket Storage
study_files+ policies para subir/leer/borrar solo lo propio. - UI para adjuntar archivos (PDF/TXT/MD) como fuentes y mantenerlos en el contexto.
- Bucket Storage
- Estudio (
/study) — fase 3 (extracción de texto):- Extracción best-effort de texto al subir fuentes tipo archivo: TXT/MD directo y PDF vía
pdfjs-dist. - Persistencia del texto extraído en
study_sources.body(base para chat/RAG en fases posteriores).
- Extracción best-effort de texto al subir fuentes tipo archivo: TXT/MD directo y PDF vía
- Estudio — dossiers y objetivo (cuenta):
- Dossiers: sincronización remote-first vía
user_client_statescopestudy_dossiers(mantienelocalStoragecomo caché). - Campo Objetivo (etiqueta de convocatoria/temario) en
user_client_statescopestudy_prefs; visible en/app.
- Dossiers: sincronización remote-first vía
- Dashboard (
/app) — bloque Estudio:- Conteos de fuentes, chunks, notas guardadas y dossiers + CTA a
/study.
- Conteos de fuentes, chunks, notas guardadas y dossiers + CTA a
- Estudio — Nivel A (SkillAtlas) + temario:
- SQL
saas-025: proyecto opcional vinculado al workspace + tablastudy_workspace_technologies. - UI en
/study: selector de proyecto y multiselect de tecnologías del usuario; avisos en detalle de proyecto / tecnología cuando hay vínculo. - Temario (bloques → temas con estado todo/doing/done) persistido en
user_client_statescopestudy_curriculum.
- SQL
- Catálogo: plantilla SciPy ampliada con
optimize.linprog; el catálogo curado no intenta listar todo PyPI/npm — librerías/paquetes los crea el usuario en Tecnologías (import por URL / flujos propios: ver ideas en backlog). - Tecnologías — registro npm/PyPI:
POST /api/tech-registry-lookup(sesión) + botón Buscar npm/PyPI y slug opcional en el formulario; rellena nombre/slug/tipo sugerido desde metadatos públicos (icono sigue siendo catálogo / clave local). - Proyectos — duplicar: botón en detalle CSR que copia proyecto (stack, conceptos enlazados, evidencias); sin copiar portada.
- Actividad reciente: scope
user_client_staterecent_activity; merge conlocalStorageal iniciar sesión y guardado tras cada visita. - Dashboard: línea de progreso del temario (
study_curriculum: temas hechos / total). - Estudio (
/study) — fase 3 (chat + citas interactivas):- Endpoint
POST /api/study/chat(feature flag servidorSTUDY_CHAT_ENABLED): RAG sobre chunks Postgres, respuesta con citas numeradas; cada cita incluyebody(texto del chunk, capado) para resaltar en cliente sin otra petición. - UI en
/study: mensajes del asistente con botones[[n]]; panel de cita con fragmento resaltado (<mark>), enlace “Abrir fuente” y “Resaltar en lista” (scroll + anillo en la fila de fuentes). - La caja de chat solo se habilita si
PUBLIC_STUDY_CHAT_ENABLED=true(el servidor puede seguir apagado con 404 hasta activar ambos flags +OPENAI_API_KEY).
- Endpoint
- Persistencia (Supabase) — remote-first con caché local:
- Tabla
user_client_statepara estado de cliente porscope(RLS own-only). SQL:docs/sql/saas-024-user-client-state.sql. - Calendario del bubble y hábitos (
/tools/habits) pasan a sincronizarse con cuenta;localStoragequeda como caché/offline.
- Tabla
- UI — selects modernizados:
- “Select popover” global: cualquier
<select>se transforma en popover con<ul role="listbox">(estilo Tecnologías); mantiene<select>oculto para compatibilidad.
- “Select popover” global: cualquier
- Convertidor:
- Controles no soportados quedan deshabilitados (solo imagen es usable en gratis).
- Hábitos:
- Fix: marcado “paint” ya no desaparece tras la animación; respeta
motion: reduced.
- Fix: marcado “paint” ya no desaparece tras la animación; respeta
- Convertidor (
/tools/convert) — UI moderna + conversión gratis (imágenes):- Rediseño tipo “Convertio”: dropzone, previews de entrada/salida, botón swap (⇄) y descarga.
- Conversión client-side sin coste para imágenes:
PNG/JPG/WEBP(entrada) →PNG/JPG/WEBP(salida) y entradaSVG(rasteriza). - Nota: conversiones de audio/vídeo/documentos quedan como Pro (server-side o WASM pesado).
- Bubble (FAB):
- Calendario: UI más moderna + filtros por mes y por tag.
- Curiosidades: ampliadas y agrupadas por temática con color.
- Preferencias nuevas: mostrar/ocultar Atajos en el bubble.
- Preferencias: cambios en Ajustes actualizan el bubble sin recargar.
- IA: puede mostrarse también con sesión si el usuario la activa (sigue off por defecto).
- Navegación / shell:
- “Herramientas” en header y footer pasa a ser solo con sesión (fuera de login no debe aparecer navegación interna).
- Footer: reorganización del bloque de links (incluye accesos a
/backlogy/contact).
- Command palette:
- Entradas para
/toolsy cada subruta de herramienta, más/backlogy/contact.
- Entradas para
- Fixes:
- Planificador de hábitos: arreglado click y Shift+click (evita doble toggle por múltiples bindings).
- Admin — siguiente nivel (idea): métricas agregadas (DAU, registros por día), tabla de audit log si se añade SQL, export CSV, paginación
listUsers>100, nunca exponer service role al cliente.
Estudio — roadmap tipo NotebookLM (siguiente trabajo; priorizar velocidad y UX, evitar sobre-ingeniería)
Orden acordado para RAG / asistente sobre fuentes:
| Fase | Alcance |
|---|---|
| 1 | Chunking (TS, solapamiento moderado) + búsqueda full-text en Postgres (tsvector / GIN); índice por usuario y fuente. |
| 2 | Dossier (sin IA): “pregunta/tema → pack de evidencias” (retrieval-only) con chunks rankeados + highlights, selección y guardado como artefacto; UX potente sin costes variables. Persistencia en cuenta: user_client_state study_dossiers. (El endpoint de chat queda apagado por feature flag). |
| 3 | UI de chat con citas interactivas (resaltar fragmento / saltar a fuente). Hecho (abr. 2026). |
| 4 | Notas persistentes (tabla dedicada o extensión de workspace; sincronizado con cuenta). |
| 5 | Salidas: resumen, quiz, flashcards (reutilizan el mismo retrieval + prompt; sin nuevos subsistemas). |
| 6 | Embeddings (pgvector u opción gestionada) cuando el full-text deje de bastar; mismo pipeline de chunks. |
Stack: TypeScript + Supabase + endpoints Astro; Python no es necesario para este plan (reservado solo si más adelante hace falta OCR pesado, modelos locales o workers dedicados).
Estado actual (implementado):
- Fase 1:
study_chunks(RLS + índice GIN), chunking en cliente, y buscador en/studycon alcance “en contexto / todas mis fuentes”. - Fase 2 (núcleo UI + persistencia): dossier retrieval-only en
/study; lista de dossiers sync víastudy_dossiers(ver arriba). - Fase 3: chat asistido + citas clicables (
study-chat-ui.ts,wireStudyChatUidesdestudy-workspace.ts). - Fase 4 (parcial / MVP): tabla
study_user_notes+ UI en/studypara notas con título/cuerpo (persistencia en cuenta; el textarea “Notas de sesión” sigue enstudy_workspaces). SQL:docs/sql/saas-023-study-user-notes.sql.
Integración con SkillAtlas (diferencial vs NotebookLM):
- Nivel A (rápido / bajo riesgo): enlazar un workspace de estudio a Proyectos y a Tecnologías — implementado con
saas-025+ UI en/study+ banderolas en detalle CSR. Pendiente de refinar: “fuentes relacionadas” embebidas en proyecto, progreso agregado en/app. - Nivel B (producto fuerte, más adelante): estructurar el temario como Bloques → temas → subtemas, con:
- Estado por tema (pendiente / en progreso / dominado). MVP UI:
/study+ JSONstudy_curriculum(bloques/temas/estado) sync con cuenta; versión tabular SQL opcional más adelante. - Outputs (quiz/flashcards/resumen) vinculados a temas.
- Hooks de tracking (p. ej. “horas”, “sesiones”, “temas cubiertos”) agregables en
/app.
- Estado por tema (pendiente / en progreso / dominado). MVP UI:
v0.110.0
- Proyectos / Tecnologías — import GitHub (beta): modal “Importar stack desde GitHub” (API de GitHub Tree/Contents + lectura de manifests típicos) para detectar tecnologías y aplicarlas:
- Desde Proyectos: botón “Importar desde GitHub” en el bloque de stack, crea tecnologías faltantes y las asocia al proyecto.
- Desde Tecnologías: botón “Importar desde GitHub” en el formulario, crea tecnologías faltantes en el catálogo.
- Proyectos — import GitHub → evidencia lista: al importar stack desde GitHub en un proyecto, se rellena el input de evidencia con la URL del repo y (si no existía) se crea una evidencia tipo enlace “Repositorio GitHub”.
- Proyectos — ponderación GitHub (local): al importar stack desde GitHub se guarda la ponderación por lenguajes (GitHub Languages API) en
localStoragepor proyecto;/apppuede agregarlas. - Dashboard (
/app) — GitHub (scope + decimales): vista “Por GitHub (lenguajes)” con:- Selector de alcance: “Todos los proyectos” o un proyecto concreto (por slug) usando los pesos guardados en
localStorage. - Porcentajes con 1 decimal (p. ej.
98.7%), simplificando cuando acaba en.0.
- Selector de alcance: “Todos los proyectos” o un proyecto concreto (por slug) usando los pesos guardados en
- Dashboard (
/app) — pesos GitHub auto‑recalculables: si existepctByLanguage, el dashboard re‑generatechWeightscon el mapeo actual y lo persiste, evitando “reimportar” cuando se amplía el mapeo (ej. añadir Astro). - GitHub languages → tecnologías: mapeo ampliado para incluir
Astro → astro(además de TypeScript/JavaScript/CSS…). - Tecnologías — multiselect quality: modo múltiple con chips persistidos temporalmente en
localStorage(sobrevive refresh) y fix de validación HTML (required) para evitar “Completa este campo” cuando hay chips. - Subtecnologías (MVP): selector de Tipo (Tecnología / Framework / Librería / Paquete) en
/technologiesy ampliación del catálogo con entradas extra sin seed todavía (aparecen como “Catálogo”); badges visibles en el desplegable. - Dashboard (
/app) — uso acumulado: bloque “Tecnologías más usadas (por proyectos)” con ranking (Top 12) por número de proyectos donde aparece cada tecnología. - Dashboard (
/app) — stack primero: el bloque de Stack aparece antes que los gráficos/visualizaciones; el resto queda como secundario. - Catálogo (auto):
EXTRA_CATALOGse genera automáticamente desdepublic/icons/*.svg(scriptgen:tech-catalog+prebuild). - Supabase (schema): script
docs/sql/saas-019-technologies-kind.sqlañadetechnologies.kind(compatible hacia atrás; el cliente lo usa si la columna existe). - CV (
/cv) — editor menos ruidoso: secciones Proyectos, Experiencia y Educación plegadas por defecto para reducir fatiga visual en viewport. - CV (
/cv) — impresión/PDF (fixes):- Exportación robusta en Chromium: impresión desde iframe aislado (evita hojas en blanco por overlays/transforms).
- Preview sin scroll horizontal sobrante.
- Plantillas nuevas con nombres i18n (ES/EN): Moderna, Compacta, Mono, Sidebar, Serif.
- Impresión: se evita que la pantalla móvil (“Pensado para pantallas grandes”) se cuele en el PDF.
- Proyectos — picker tecnologías:
technologyPickerModalcon modo múltiple para asociar varias tecnologías de una pasada. - Navegación /projects (fixes): mitigaciones para clicks/hover “muertos” al volver desde
/projects/viewbajo View Transitions:- Cleanup global de overlays (cierra
dialog[open]y resetea[data-modal-root]) enastro:before-swap. - Navegación forzada en lista/cards CSR y refresh de caché “en background” sin bucles (bypass de caché).
- Cleanup global de overlays (cierra
- Command palette: atajo adaptado a plataforma (
⌘Ken Mac,Ctrl+Ken Windows/Linux) y overlay/panel con fondo “glass” (blur + gradientes suaves). - Banner global (fixes): cierre sin dejar hueco (sin drift de
max-h-*) y sin “flash” al recargar si ya estaba dismiss enlocalStorage(CSS crítico inline). - Landing: ajuste de espaciado en el subtítulo del hero (“Organiza stack y conceptos…”).
v0.100.0
- Footer:
clip-pathsuperior en forma de V (polygon(50% 17%, …)); capas de gradiente y halos; sin enlace “código abierto” duplicado junto al stack. - Banner global: misma línea estética que el footer (halos indigo/violeta, fondo en capas, anillo suave, sombra);
config/banner.tsen 0.100.0. - SEO:
SiteMeta.astro+config/site-meta.ts, imagen OG por defecto (public/og/og-default.svg),siteopcional víaPUBLIC_SITE_URLenastro.config.mjs. - Landing — carrusel facetas: arrastre con
requestAnimationFrame, scroll solo en el carril (scrollTo, sinscrollIntoView),snap-proximity+overscroll-x-contain; auto-avance con barra de progreso; puntos extremos no clicables; transición de tarjetas desactivada mientras se arrastra. - Shell / responsive: relleno horizontal con
clampen.app-main-shell, cabecera y footer con márgenes laterales coherentes; landing conpx-4 sm:px-6 lg:px-8en el contenedor; hero con tipografía escalada (sm/lg); rejilla de tarjetas bajo el hero 2 columnas en tablet (sm:grid-cols-2 lg:grid-cols-3); carrusel de facetas compacto de nuevo. - Precios (orientativos): Team mensual €4,99 (
data-price-month4.99 / anual equivalente 3.99); vitalicios €19,99 (Pro) y €49,99 (Team) enPricingLifetime.astro. - Navegación: menú del avatar sin entrada “Perfil público” (duplicaba Ajustes).
- CV (
/cv):cvLinkSlots(huecos fijos LinkedIn / GitHub / portfolio / X / web) para corregir desalineación etiqueta–URL;socialLinkDisplay(solo enlace, solo icono, ambos) y chips con iconos en vista previa; secciones Certificaciones e Idiomas;cvSectionVisibilitypor bloque; plantilla documentoclassic|minimal(primera iteración); bug arreglado: inputs de experiencia/educación ya no re-renderizan en cada tecla; encabezados de sección del editor más destacados. - CV — orden de bloques:
cvDocumentSectionOrderencvProfile(prefs); vista previa con carril derecho para reordenar; aplicado al documento y al CV público. El RPCskillatlas_cv_by_share_tokenya devuelveprefs.cvProfilecompleto desdeuser_prefs: al sincronizar prefs con cuenta, el orden viaja al enlace público (sin migración SQL adicional). - CV — i18n documento:
cv.docHighlightsHeadingpasa a Logros / Highlights (antes duplicaba “Experiencia” con el bloque de experiencia laboral). - CV — preview: selector de plantilla en la cabecera del modal (cambio en caliente, sin recarga; persiste en prefs).
- CV — importar texto (beta): bloque “Importar desde texto” con heurística
cv-paste-import.ts(bloques separados por línea en blanco; rolen/@/|; fechas flexibles; viñetas). No sustituye a import PDF ni a IA; sirve para pegar CV previo y rellenar experiencia/educación más rápido. - Prefs remoto: al cargar
user_prefs, fusión superficial decvProfile({ ...local.cvProfile, ...remote.cvProfile }) para no perder claves solo locales si el servidor trae un subconjunto. - FAB: una sola burbuja; pestaña Contacto con iconos estables (LinkedIn SVG local, logo Gmail de
gstatic) en lugar de avatares externos lentos o rotos. - Ideas explícitas (post‑MVP): import PDF/DOCX con extracción de texto en servidor; IA para mapear campos arbitrarios a
experiences/education(formatos de fecha heterogéneos); preview de plantilla ya resuelto en cliente.
v0.70.0 (anterior)
- Base de datos (repo): scripts
docs/sql/saas-015-embed-public-thumbnail.sqlydocs/sql/saas-016-project-cover-storage.sql— evidencias conshow_in_publicythumbnail_urlen RPCs; portada por proyecto conprojects.cover_image_path, bucket Storageproject_covers, RPCs portfolio +skillatlas_cv_by_share_tokenconcoverImagePath(verdocs/db.md). - Portada de proyecto: compresión en navegador (
src/lib/browser/image-compress.ts), subida y quitar portada (project-cover.ts), UI en detalle CSR (project-view-bootstrap.ts), URL pública (supabase-public-storage-url.ts);coverImagePathensupabaseProvidery tipoProject. - Portfolio / CV público: tarjetas visitante con imagen de portada (
public-portfolio-project-card.ts); CV por token con portada + bloque de evidencia con miniatura (public-cv-by-token.ts); scripts portfolio alineados (portfolio-projects.ts,public-portfolio-public-page.ts). - Evidencias: thumbnails en componentes y flujo público; API
/api/evidence-thumb; utilidades servidorsrc/lib/server/(p. ej. resolución OG para previews). - Producto / UI (tramo 0.60 → 0.70): catálogo de fuentes y bootstrap de cabecera (
font-catalog.ts,AppShellHeadBootstrap.astro); gráficos en landing (LandingChartsPreview.astro,landing-charts-preview.ts) y dashboard (app-dashboard-charts*.ts); refactors de shell/cabecera, login (escena tierra modular, shaders), i18n y estilos globales;runner.tsdesactiva controles de portada en UI solo lectura. - Documentación:
docs/db.mdy este archivo actualizados con el alcance anterior.
v0.60.0
- UI
/settingsestilo repositorio: navegación lateral, una sección visible por clic, hashes#classic-*, iconos SVG en menú. - Transiciones entre secciones (fade + altura); respeta
prefers-reduced-motiony prefs de movimiento. - Prefs:
settingsActiveSection,settingsSidebarSide; retirada del tablero GridStack (columnas, orden, dependencia). settings-classic-ui, eventoskillatlas:settings-panel; soporte DOM duplicado en profile/QA.- i18n (
settings.shell,classic, QA),global.css,docs/architecture.md,AGENTS.md.
v0.50.0
- CV público:
saas-012, RPCskillatlas_cv_by_share_token, ruta/cv/p/[token], script cliente y controles en Ajustes (activar / copiar / regenerar);/cvalineado con avisos hacia Ajustes. - Servidor: helper
server-supabase-rpcpara RPC anónimas (OG y páginas públicas). - QA / tester: panel en Ajustes (modo tester, checklist, seed, debug); nota si el seed choca con constraints de conceptos.
- OG / compartir: meta OG/Twitter en
/portfolio/<slug>y/p/<token>; imagen dinámica/og/portfolio.svg. - Onboarding: tour + spotlight (minimizar, progreso, prefs); botones en
/app. /study(workspace local, tres columnas); landing y navegación actualizadas (la ruta pública/prepse retiró después).- Documentación al día con ese alcance.
v0.45.0
- Despliegue: adapter
@astrojs/vercel; carpeta.vercel/ignorada; evitar 404 frente a un adapter Node aislado. - Portfolio público:
saas-011,/portfolio/[slug], Ajustes (#portfolio-links: slug, visibilidad, copiar URL) y script visitante. - CV privado:
/cv,cvProjectSlugsen prefs, impresión conbody.cv-print-mode. - Header:
syncHeaderNavActive()para View Transitions; indicador de nav conleft+width; sin Precios en nav; Admin separado de iconos. - Landing:
overflow-xcontenido sin romper hero full-bleed. - Docs, banner y versión en
package.json.
v0.40.0
- Landing pública amplia,
/pricing,/admin(solicitudes de acceso), mejoras UX transversales. - Formulario
/request-accessy flujo invite-only (tras migraciones saas-009 / 010).
v0.30.0 / v0.31.0
- Ajustes con rejilla 2D, prefs con sync, View Transitions; iteración de banderas y fuentes.
v0.20.x
- SaaS multi-tenant (scripts saas-001 …), vistas CSR
/projects/view,/technologies/view,/logincon email/OAuth, documentación RLS y providers tolerantes a build sin datos.
v0.15.0
- Proyectos como historia (
role/outcomevía saas-006) + evidencias (embeds); portfolio en CSR con tarjetas enriquecidas.
v0.10.0
- Ajustes tipo dashboard: columnas reorderables, orden en prefs; perfil + stack de ayuda; i18n con selector; footer con stack; import de conceptos y catálogo de seeds; iconos y
help-stack.
Versiones anteriores (≤ 0.8)
- MVP inicial: Astro, datos mock, integración Supabase base, layout y páginas fundacionales.