Skip to content

Releases: SimonBlancoE/discographic

v0.3.4

Choose a tag to compare

@SimonBlancoE SimonBlancoE released this 04 Jul 09:53

Registro de cambios

Todos los cambios notables de este proyecto se documentan en este archivo.

El formato se basa en Keep a Changelog,
y este proyecto sigue Versionado Semantico.

English version: CHANGELOG.en.md

0.3.4 - 2026-07-04

Release de mantenimiento y robustez que corrige fallos funcionales y optimiza la exportación de la colección.

Corregido

  • Tolerancia a fallos en tipos de cambio (ECB) - la aplicación ahora recurre a tasas estáticas por defecto en lugar de arrojar un error HTTP 500 cuando el API del ECB está offline.
  • Tolerancia en detalles de lanzamiento (Discogs) - los errores del API de Discogs al recuperar detalles ya no tiran la página de detalles; el sistema vuelve de forma segura a los datos locales.
  • Caché de portadas en CollectionTable - la tabla de colección ahora utiliza el endpoint proxy local de portadas en lugar de hotlinking remoto.
  • Optimización de rendimiento en exportación - las conversiones de divisas se realizan de forma síncrona en lote, eliminando miles de promesas asíncronas redundantes.
  • Condición de carrera en importación - se previene un TypeError si un release es eliminado de forma concurrente durante la aplicación del import.

0.3.3 - 2026-05-10

Release de limpieza de documentacion y metadata.

Cambiado

  • Referencias publicas del repositorio corregidas - las instrucciones de
    clonado del README, la metadata del paquete, la guia de contribucion, la
    documentacion de planificacion y los tests de guardrails apuntan ahora solo
    al repositorio publico de GitHub.
  • Detalles privados de desarrollo eliminados - la documentacion visible del
    repo ya no menciona remotos privados, nombres de upstream privados ni
    lenguaje de publicacion downstream.

0.3.2 - 2026-05-10

Release de documentacion para aclarar la guia publica del proyecto.

Cambiado

  • Introduccion del README aclarada - la seccion inicial ahora se llama
    "Que es Discographic?" y pide feedback a usuarios de Discogs, especialmente
    a vendedores, porque esos flujos necesitan la opinion de quienes los usan.
  • Instancia manual de pruebas separada - las instrucciones de la instancia
    efimera de QA ahora aparecen como aviso para que no se confundan con la
    instalacion normal.
  • Expectativas de contribucion aclaradas - el README explica que no se
    aceptan contribuciones directas como norma general, pero que el feedback,
    los issues y los pull requests son bienvenidos y se agradecen.

0.3.1 - 2026-05-08

Release de mantenimiento con dos mejoras sobre la 0.3.0: mostrar el precio de
listado en el detalle de lanzamiento y pulir las traducciones en español.

Corregido

  • Precio de listado en el detalle de lanzamiento - la pantalla de detalle
    muestra el precio de listado cuando existe.
  • Traducciones en español pulidas - se normalizo la copia ES en imports,
    logros y metadatos para un lenguaje mas natural.

Tests

  • Verificacion de release centrada en el bump de version, el changelog y la
    sincronizacion del repositorio.

0.3.0 - 2026-05-02

Release centrada en la migracion completa a TypeScript, contratos compartidos
entre frontend/backend y verificacion de upgrade para instalaciones existentes.

Nuevo

  • Arbol de codigo TypeScript-only - frontend, backend, shared, tests,
    scripts y configuracion soportada migrados a .ts/.tsx o formatos no JS.
  • Contratos compartidos tipados - account, release, marketplace, sync
    status, dashboard stats y collection views tienen tipos y normalizadores
    explicitos en shared/contracts/.
  • Pipeline de verificacion unico - npm run verify ejecuta scan de fuentes
    JavaScript, typecheck, tests, build y smoke de upgrade.
  • Smoke de upgrade desde v0.2.2 - prueba runtime compilado y Docker contra
    una fixture legacy para comprobar datos, configuracion y rutas de arranque.
  • Runtime backend compilado - produccion arranca desde dist/server/start.js;
    desarrollo usa tsx directamente.
  • Vistas guardadas de coleccion - filtros, orden y columnas pueden guardarse
    como vistas reutilizables.
  • Soporte de planificacion de implementacion - runner, prompts y estandares
    de trabajo para ejecutar slices de implementacion.

Cambiado

  • Build separado de app y servidor - npm run build compila Vite y despues
    el backend con tsc -p tsconfig.server.json.
  • Code splitting de rutas - bundles principales reducidos al cargar paginas
    bajo demanda.
  • Render de tabla de coleccion estabilizado - handlers, columnas visibles y
    props de orden mantienen referencias estables para evitar renders evitables.
  • README y metadatos de repo - se documento la metadata publica del
    repositorio y la guia de release junto al alcance de la migracion.
  • Documentacion de contribucion - CONTRIBUTING.md, PRD y ADRs documentan
    reglas TypeScript-only, normalizacion de fronteras no confiables y verificacion.

Corregido

  • Estados de marketplace preservados - estados desconocidos/fallidos dejan
    de colapsar a cero y los valores legacy se limpian de forma explicita.
  • Errores de marketplace normalizados - las respuestas fallidas exponen
    estados consistentes al frontend.
  • Filtro de sellos - opciones largas dejan de truncarse de forma prematura.
  • Docker lockfile - lockfile sincronizado con dependencias actuales.

Tests

  • Suite migrada a TypeScript con cobertura de contratos compartidos, rutas de
    runtime, guardrails TypeScript-only, code splitting, upgrade smoke y badge de
    vinilo. Verificacion actual: 183 tests.

0.2.2 - 2026-04-22

Patch visual para el carrusel del panel informativo.

Corregido

  • Asomaba el siguiente slide por la derecha — el padding que aplique al viewport en 0.2.1 desplazaba el track respecto al area recortada por overflow: hidden, dejando visible parte del slide siguiente en el margen derecho. Padding movido a cada slide con box-sizing: border-box. El viewport vuelve a ser un contenedor puro de overflow.

0.2.1 - 2026-04-22

Patch con correcciones al carrusel del dashboard y al logo animado del panel superior.

Corregido

  • Botones del carrusel no respondian — el gestor de drag capturaba todo el contenedor e interceptaba los clicks en flechas y puntos. Ahora el pointer solo se escucha en el viewport.
  • Cambio automatico demasiado rapido — autoplay de 9s a 14s; tras interacion manual, el autoplay se pausa 5s en vez de 3s.
  • Traducciones al español — reescritas en castellano neutro. Fuera jerga de DJ ("maleta", "pick", "cavando", "Spin the Crate", "tapete"). Mismo tratamiento en ingles: textos mas directos.
  • Movimiento al hacer hover — eliminado el parallax de chips y orbes del panel hero. Interaccion en hover ahora limitada a un glow suave de borde cian en el viewport, sin desplazar elementos.

Cambiado

  • Indicador "Siguiente pista" eliminado — se ha quitado completamente del carrusel.
  • Logo giratorio del panel superior — aumentado de 3.2rem a 5.25rem (disco de 2.35rem a 4.2rem). Se mantiene la aceleracion al pasar el raton sobre el logo, pero ya no aparece el nombre del genero.

[0.2.0] - 2026-04-22

Release centrada en rendimiento del dashboard y muro, robustez de sincronizacion,
localizacion de importaciones y media, y una refactorizacion amplia que mueve
logica compartida a modulos reutilizables.

Nuevo

  • Hero Carousel en el dashboard — carrusel animado de caracteristicas con
    autoplay, navegacion por puntero, teclado y soporte para prefers-reduced-motion.
  • VinylBadge — insignia giratoria con generos destacados de la coleccion,
    animacion pausada bajo prefers-reduced-motion.
  • DashboardStatsContext — proveedor compartido que centraliza la carga de
    estadisticas del dashboard y elimina peticiones duplicadas entre consumidores.
  • Contrato de estadisticasshared/contracts/dashboardStats.js normaliza
    payloads del backend en una forma estable para el frontend.
  • Virtualizacion del muro de portadasWindowedCoverWallGrid renderiza
    solo las filas visibles; colecciones grandes desplazan sin cortes.
  • Reconciliacion post-sync — los sync completos eliminan filas de releases
    que ya no existen en la coleccion del usuario, limpiando las portadas en cache
    asociadas.
  • Localizacion de importaciones y fallbacks de media — mensajes de
    importacion y textos de fallback de portadas respetan el idioma del usuario.
  • Servicio de notas compartidoserver/services/notes.js unifica
    normalizacion, serializacion y limpieza de notas entre sync, import y export.
  • Servicio de media de portadasserver/services/coverMedia.js
    centraliza cache de portadas, variantes (wall/poster) y limpieza.
  • Filtros de releases compartidosserver/services/releaseFilters.js y
    shared/collectionFilters.js consolidan filtros usados por stats, collection
    y export.
  • Sync de importacionesserver/services/importSync.js + src/lib/importSync.js
    envian notas y puntuaciones importadas de vuelta a Discogs con estado.
  • Contratos tipados en shared/contracts/ — primer paso hacia un contrato
    explicito frontend/backend.
  • Tests — cobertura nueva para filtros de coleccion, reconciliacion, media
    de portadas, parity de export, progreso de import, no...
Read more

v0.3.3

Choose a tag to compare

@SimonBlancoE SimonBlancoE released this 10 May 08:36

Documentation and metadata cleanup release.

Changed:

  • Public repository references corrected: README clone instructions, package metadata, contribution guidance, planning docs, and guardrail tests now point only to the public GitHub repository.
  • Private development details removed: repo-facing documentation no longer mentions private remotes, private upstream naming, or downstream publication wording.

v0.3.2

Choose a tag to compare

@SimonBlancoE SimonBlancoE released this 10 May 08:29

Documentation release for clearer project guidance.

Changed:

  • README project intro clarified: the opening section is now titled "What is Discographic?" and asks Discogs users, especially sellers, to share feedback.
  • Manual test instance separated: the ephemeral QA instance instructions are now shown as a callout so they are not confused with normal setup.
  • Contribution expectations clarified: the README now says direct contributions are not accepted as a standing policy, while feedback, issues, and pull requests remain welcome and appreciated.

v0.3.1

Choose a tag to compare

@SimonBlancoE SimonBlancoE released this 08 May 09:07

Maintenance release with two improvements on top of 0.3.0: listing price on
release details and polished Spanish translations.

Fixed

  • Listing price on release details - the detail view now shows the listing
    price when available.
  • Spanish translations polished - the ES copy was normalized in imports,
    achievements, and repo metadata for more natural wording.

Tests

  • Release verification focused on the version bump, changelog, and Forgejo /
    GitHub synchronization.

v0.3.0

Choose a tag to compare

@SimonBlancoE SimonBlancoE released this 02 May 12:31

Highlights

  • Full TypeScript-only source migration across frontend, backend, shared modules, tests, scripts, and supported config.
  • Typed shared contracts for account, release, marketplace, sync status, dashboard stats, and collection views.
  • Single verification pipeline with JavaScript source scan, typecheck, tests, build, and upgrade smoke.
  • Verified upgrade smoke from v0.2.2 for compiled runtime and Docker paths.
  • Saved collection views, route code splitting, and stabilized collection table rendering.
  • Marketplace state/error fixes, label filter cleanup, and Docker lockfile sync.

Verification

  • npm run verify
  • 32 test files, 185 tests passed
  • compiled-runtime upgrade smoke passed
  • Docker upgrade smoke passed

v0.2.2

Choose a tag to compare

@SimonBlancoE SimonBlancoE released this 22 Apr 16:54

Visual patch for the dashboard feature carousel.

Fixed

  • Next slide bled through on the right edge — the viewport padding introduced in 0.2.1 pushed the track off the area clipped by `overflow: hidden`, leaving part of the adjacent slide visible on the right. Padding was moved into each slide with `box-sizing: border-box`. The viewport is now a pure overflow container again.

Full changelog: https://github.com/SimonBlancoE/discographic/blob/main/CHANGELOG.en.md

v0.2.1

Choose a tag to compare

@SimonBlancoE SimonBlancoE released this 22 Apr 16:26

Patch release with fixes to the dashboard feature carousel and the header logo badge.

Fixed

  • Carousel arrow and dot buttons did not respond — the drag pointer handler was capturing the whole container and intercepting clicks. Pointer drag is now scoped to the viewport only.
  • Autoplay cycled too fast — raised from 9s to 14s. After any manual interaction, autoplay stays paused for 5s instead of 3s before resuming.
  • Spanish translations — rewritten in neutral Castilian Spanish. Dropped DJ jargon (`maleta`, `pick`, `cavando`, `Spin the Crate`, `tapete`). English copy trimmed to match: plainer, more direct phrasing.
  • Hover caused elements to shift position — removed the mouse-parallax on the hero panel chips and orbes. Hover interaction on the carousel is now a subtle cyan border glow, with no element movement.

Changed

  • "Next up" indicator removed — the ticker is gone entirely.
  • Header logo badge enlarged — from 3.2rem to 5.25rem (record disc from 2.35rem to 4.2rem), filling more of the top panel. Hover still accelerates the spin animation, but no longer surfaces a genre caption.

Full changelog: https://github.com/SimonBlancoE/discographic/blob/main/CHANGELOG.en.md

v0.2.0

Choose a tag to compare

@SimonBlancoE SimonBlancoE released this 22 Apr 15:21

Release focused on dashboard and wall performance, sync robustness, import and media localization, plus a broad refactor that lifts shared logic into reusable modules.

Added

  • Dashboard Hero Carousel — animated feature carousel with autoplay, pointer and keyboard navigation, and prefers-reduced-motion support.
  • VinylBadge — spinning badge surfacing the collection's top genres, animation paused under prefers-reduced-motion.
  • DashboardStatsContext — shared provider that centralizes dashboard stats loading and removes duplicate fetches across consumers.
  • Stats contractshared/contracts/dashboardStats.js normalizes backend payloads into a stable shape for the frontend.
  • Cover wall virtualizationWindowedCoverWallGrid renders only visible rows; large collections scroll without jank.
  • Post-sync reconciliation — full syncs prune release rows that no longer exist in the user's collection and clean up cached covers for them.
  • Import and media fallback localization — import messages and cover fallback strings now honor the user's locale.
  • Shared notes serviceserver/services/notes.js unifies note normalization, serialization, and cleanup across sync, import, and export.
  • Cover media serviceserver/services/coverMedia.js centralizes cover caching, variants (wall/poster), and cleanup.
  • Shared release filtersserver/services/releaseFilters.js and shared/collectionFilters.js consolidate filters used by stats, collection, and export.
  • Import syncserver/services/importSync.js + src/lib/importSync.js push imported notes and ratings back to Discogs with progress state.
  • Typed contracts under shared/contracts/ — first step toward an explicit frontend/backend contract surface.
  • Tests — new coverage for collection filters, reconciliation, cover media, export parity, import progress, notes normalization, wall metrics, stats contract, badge genres, marketplace_status migration, and marketplace value fetch. Total: 217 tests.

Fixed

  • marketplace_status migration re-running every boot — backfill now runs only when the column is first added, preserving existing statuses on re-runs.
  • Silent marketplace fetch errorsfetchMarketplaceValue now logs releaseId and error.message before returning FAILED.
  • Unnecessary re-renders in dashboard consumersrefresh wrapped in useCallback, badgeGenres memoized, and getDashboardBadgeGenres reduced to a pure slice with no re-normalization.
  • Export/import parity — notes and derived fields round-trip without losing metadata.
  • Import notes sync — imported notes now sync back to Discogs correctly.

Changed

  • Shared helper refactor — collection, cover, and filter helpers no longer duplicated across routes and services.
  • Dashboard.jsx — consumes the shared context instead of managing its own stats fetch.
  • Enrichment condition — centralized in server/services/enrichmentQueue.js with MARKETPLACE_STATUS constants for explicit state.

Removed

  • Unused componentsCompletionRing, StatSparkline, CountryChart, useAnimatedNumber hook, and the unused /api/value route.

Full changelog: https://github.com/SimonBlancoE/discographic/blob/main/CHANGELOG.en.md

v0.1.0

Choose a tag to compare

@SimonBlancoE SimonBlancoE released this 10 Apr 15:07

Primera release etiquetada de Discographic. / First tagged release of Discographic.

Destacado

  • Conversion de moneda dinamica — EUR/USD/GBP con tasas del BCE en tiempo real
  • Columnas configurables — mostrar/ocultar columnas con preferencias por usuario
  • Listings del marketplace — tus propios precios de inventario de Discogs en la coleccion
  • Exportaciones localizadas — CSV/XLSX con cabeceras en espanol e ingles, importacion cross-locale
  • Instancia de test efimera — instancia Docker desechable con usuarios pre-creados para QA
  • 77 tests en 9 archivos

Highlights

  • Dynamic currency conversion — EUR/USD/GBP with real-time ECB exchange rates
  • Togglable columns — show/hide columns with per-user preferences
  • Marketplace listings — your own Discogs inventory prices in the collection
  • Localized exports — CSV/XLSX with Spanish and English headers, cross-locale import
  • Ephemeral test instance — throwaway Docker instance with seeded users for QA
  • 77 tests across 9 files

Inicio rapido / Quick start

git clone https://github.com/SimonBlancoE/discographic.git
cd discographic
docker compose up -d

Abre http://localhost:3800 y crea tu primer usuario. / Open http://localhost:3800 and create your first user.

Usar esta version especifica / Using this specific version

Si prefieres esta version en lugar de la ultima, puedes anclarla con:
If you prefer this version over the latest, you can pin it with:

git clone https://github.com/SimonBlancoE/discographic.git
cd discographic
git checkout v0.1.0
docker compose up -d

Esto garantiza que obtengas exactamente este codigo, sin importar los cambios futuros en la rama principal.
This ensures you get exactly this code, regardless of future changes to the main branch.

Registro de cambios / Full changelog