Files
snatchgame/CHANGELOG.md
josedario87 87f5b09f4d
All checks were successful
build-and-deploy / filter (push) Successful in 2s
build-and-deploy / build (push) Successful in 5s
build-and-deploy / deploy (push) Successful in 10s
docs: Complete production documentation and deployment guide
- Add comprehensive DEPLOYMENT.md with Docker and CI/CD details
- Update README.md with production URLs and architecture diagrams
- Document v0.0.9-alpha changes in CHANGELOG.md with full feature list
- Enhance CLAUDE.md with production architecture and security practices
- Document SSE optimizations, URL separation, and monitoring setup
- Include troubleshooting guides and maintenance commands
- Add network architecture diagrams and communication flows
2025-07-05 17:18:25 -06:00

263 lines
11 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Changelog
Todos los cambios notables de este proyecto serán documentados en este archivo.
El formato está basado en [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
### Planeado
- Ronda 2-5: Implementar reglas evolutivas
- Sistema de Judge rotativo
- Shame tokens y penalizaciones
- Efectos de sonido
- PWA support
- Multi-idioma
## [0.0.9-alpha] - 2025-07-05
### Added
- **🐳 Docker Production Environment**: Sistema completo de containerización
- Dockerfiles individuales para server, client y admin
- Docker Compose con orquestación completa
- Health checks automáticos para todos los servicios
- Restart policies para alta disponibilidad
- **⚙️ Gitea Actions CI/CD Pipeline**: Automatización completa de deployment
- Build automático de imágenes Docker
- Push a registry interno gitea.interno.com/nucleo000
- Conditional building basado en archivos modificados
- Deploy automático en main branch
- **🌐 Production Network Architecture**: Arquitectura de redes optimizada
- Red "principal" para Nginx Proxy Manager
- Red interna "snatchgame-network" para comunicación entre servicios
- Separación de URLs internas (HTTP) y externas (HTTPS)
- **🔧 Environment-based URL Configuration**: URLs dinámicas según ambiente
- SERVER_URL para comunicación interna entre contenedores
- PUBLIC_SERVER_URL para comunicación frontend-backend
- Configuración automática via /api/config endpoints
### Changed
- **⚡ SSE Performance Optimizations**: Comunicación admin optimizada
- Polling reducido de 500ms a 250ms para updates más rápidos
- Headers anti-buffering (X-Accel-Buffering, Content-Encoding)
- Heartbeat mechanism cada 30 segundos
- Auto-reconexión cliente cada 5 segundos en caso de error
- **🏗️ Production URLs**: Configuración de producción completa
- snatchGame.interno.com (Cliente UI)
- snatchGameServer.interno.com (Servidor Colyseus)
- snatchgGameAdmin.interno.com (Admin UI)
- **📦 Build Process**: Optimización del proceso de build
- build:prod script para omitir generación de tipos en Docker
- npm ci para instalaciones más rápidas y reproducibles
- Multi-stage builds para imágenes más pequeñas
### Fixed
- **🔌 SSL Certificate Issues**: Separación URLs interna/externa
- URLs HTTPS para comunicación navegador-servidor (frontend)
- URLs HTTP para comunicación contenedor-contenedor (backend)
- Resuelve errores de certificado SSL en comunicación interna
- **🎯 Admin Service URL Configuration**: URLs dinámicas basadas en ambiente
- AdminService obtiene URL desde /api/config en lugar de hardcoded localhost
- Soporte completo para desarrollo y producción
- Inicialización async de URLs antes de llamadas API
- **📊 SSE Connection Stability**: Mejoras en estabilidad de conexión
- Manejo mejorado de heartbeat messages
- Logging detallado para debugging
- Cleanup apropiado de intervalos en disconnection
### Technical
- **🐳 Docker Configuration**:
- Puertos de producción: 3067 (server), 3010 (client), 3011 (admin)
- Alpine Linux base images para menor tamaño
- wget para health checks (más ligero que curl)
- **📡 Network Communication**:
- Separación limpia entre comunicación interna y externa
- Optimización de headers SSE para mejor performance
- Express middleware optimizado para SSE endpoints
- **🔧 Environment Management**:
- Variables de entorno separadas por servicio
- Runtime configuration via API endpoints
- Support para development y production environments
### Infrastructure
- **🏗️ Complete Production Setup**: Sistema listo para producción
- Docker registry interno configurado
- CI/CD pipeline completamente automático
- High availability con health checks y restart policies
- Network isolation y security best practices
- **📊 Monitoring & Debugging**: Herramientas de monitoreo mejoradas
- Logging estructurado con timestamps
- Connection tracking para SSE
- Performance metrics para fetch requests
- Detailed error handling y reporting
## [0.0.8-alpha] - 2025-07-04
### Added
- **Admin Dashboard Completo**: UI de administración con información detallada de jugadores
- **Control de Jugadores**: Expulsar jugadores individuales y todos los jugadores
- **Control de Rondas Global**: Avanzar y retroceder rondas en todas las salas simultáneamente
- **Control de Juego**: Pausar y reanudar juegos desde el admin
- **Notificaciones a Clientes**: Los jugadores reciben notificaciones cuando son expulsados o cuando cambian las rondas
- **Información Detallada de Jugadores**: Nombre, sala, rol, tipo de productor y tokens actuales
- **Redirección Automática**: Los clientes expulsados vuelven automáticamente al home
### Changed
- **API Oficial de Colyseus**: Refactorizado todos los endpoints admin para usar `matchMaker.query()` y `matchMaker.remoteRoomCall()`
- **Arquitectura sin Variables Globales**: Eliminado el hack de variables globales por implementación oficial
- **UI Admin Mejorada**: Información más clara y organizada para comentaristas no-técnicos
### Fixed
- **Notificación de Expulsión**: Los clientes ahora reciben notificación correcta cuando son expulsados
- **URLs del Admin Service**: Corregido para llamar al servidor Colyseus (puerto 2567) en lugar del admin (puerto 3001)
- **Expulsión Masiva**: Todos los jugadores reciben notificación apropiada cuando se expulsan todos
### Technical
- **GameRoom Methods**: Implementado `pauseGame()`, `resumeGame()`, `advanceRound()`, `previousRound()`, `_forceClientDisconnect()`, `_forceDisconnectAllClients()`, `getInspectData()`
- **Client Notifications**: Manejo de mensajes `adminKicked`, `gamePaused`, `gameResumed`, `roundChanged`
- **Type Safety**: Mantenida sincronización de tipos TypeScript entre servidor y clientes
## [0.0.5-alpha] - 2025-01-04
### Añadido
- **🎮 Juego Snatch or Share completo**
- Implementación del "Snatch Game" de Elinor Ostrom
- Sistema de roles únicos: Productor de Pavos, Café, Maíz
- Exactamente 3 jugadores por sala
- Tokens múltiples (turkey, coffee, corn)
- Sistema de puntuación: tokens propios = 1pt, ajenos = 2pts
- **🔄 Sistema de ofertas comerciales**
- Ofertas simultáneas entre jugadores
- Límite de 2 ofertas por target por jugador
- Respuestas: Accept, Reject, Snatch
- Cumplimiento parcial automático
- Todas las ofertas son públicas
- **🎨 UI/UX completamente rediseñada**
- Layout responsivo optimizado (desktop/móvil)
- Componentes modulares: PlayerCard, TradeOfferCard, MakeOfferForm
- Modal flotante para crear ofertas
- Scroll customizado para lista de ofertas
- Botones +/- prominentes para cantidades
- Input compacto optimizado para números de 3 dígitos
- **📱 Mejoras móviles**
- Layout vertical adaptativo
- Cards de ofertas horizontales y compactas
- Botones táctiles optimizados
- Altura diferencial desktop vs móvil
### Changed
- **🏗️ Arquitectura del servidor**
- GameState con múltiples tipos de tokens
- Player con rol de productor y tokens individuales
- TradeOffer con inventarios de offering/requesting
- Asignación automática de roles únicos
- **⚙️ Sistema de tipos**
- Regeneración automática desde servidor
- TokenInventory schema separado
- Interfaces para ofertas comerciales
- GameRoomOptions actualizado
- **🎯 Lógica del juego**
- Ronda 1: Estado de naturaleza implementado
- Ofertas más recientes aparecen arriba
- Validación de límites por jugador
- Cálculo automático de puntos en tiempo real
### Fixed
- **🐛 Problemas de layout**
- Overflow vertical en desktop eliminado
- Altura móvil permite scroll natural
- Posicionamiento de elementos mejorado
- **⚡ Rendimiento**
- Componentización reduce bundle size
- CSS encapsulado por componente
- Reactivity optimizada con computed properties
- **📚 Documentación completa**
- README.md principal actualizado con enfoque educativo
- README.md específico del servidor con API y schemas
- README.md específico del cliente con componentes
- gameRules.md con lógica detallada del juego
- Roadmap actualizado con progreso real
### Technical
- **📊 Schemas Colyseus**: GameState, Player, TradeOffer, TokenInventory
- **🧩 Componentes Vue**: 6 componentes modulares especializados
- **📋 Validación**: Límites de tokens, ofertas y jugadores
- **🔄 Estado**: Sincronización en tiempo real mejorada
- **🛠️ Build**: Generación automática de tipos client/server
## [0.0.1-alpha] - 2025-01-03
### Añadido
- **Funcionalidad core del juego**
- Juego multijugador de click battle en tiempo real
- Soporte para hasta 8 jugadores simultáneos
- Scoreboard en tiempo real
- Auto-inicio cuando hay 2+ jugadores
- Auto-pausa cuando <2 jugadores
- **Arquitectura técnica**
- Servidor Colyseus.io con TypeScript
- Cliente Vue 3 con Composition API
- Sincronización automática de tipos con schema-codegen
- Sistema de logging configurable
- Variables de entorno por ambiente
- **UI/UX**
- Pantalla de home con branding
- Pantalla de espera con contador de jugadores
- Pantalla de juego con botón animado
- Modal de configuración
- Diseño responsive
- **Desarrollo**
- VSCode tasks para desarrollo
- Hot reload en desarrollo
- TypeScript estricto en todo el proyecto
- Sistema de tipos compartidos
- Docker setup para producción
- **Documentación**
- README.md completo
- CLAUDE.md para desarrollo interno
- .gitignore comprehensivo
- Estructura de proyecto documentada
### Características técnicas
- **Backend**: Colyseus.io 0.16+, Node.js 18+, TypeScript, Express
- **Frontend**: Vue 3, TypeScript, Vite, CSS vanilla
- **Desarrollo**: Schema-codegen, ESLint, Hot reload
- **Deploy**: Docker, docker-compose, Nginx proxy
### Estado actual
- Funcionalidad básica del juego completamente funcional
- Multijugador en tiempo real working
- UI responsive y animada
- Sistema de logging configurable
- Documentación completa
- En desarrollo activo - versión Alpha
---
## Formato de versiones
- **Major.Minor.Patch-PreRelease**
- **Alpha**: Desarrollo inicial, funcionalidad básica
- **Beta**: Características completas, testing intensivo
- **RC**: Release Candidate, listo para producción
- **Stable**: Versión estable para uso general
### Tipos de cambios
- `Added` para nuevas características
- `Changed` para cambios en funcionalidad existente
- `Deprecated` para características que serán removidas
- `Removed` para características removidas
- `Fixed` para bug fixes
- `Security` para fixes de vulnerabilidades