- Added comprehensive logging for OpenAI API calls and responses in both AltTextGenerator and MetadataGenerator
- Updated OpenAI model from gpt-5-2025-08-07 to gpt-4o and standardized completion parameters
- Implemented fallback mechanisms for handling empty or invalid AI responses
- Added buildFallback methods to generate reasonable defaults from input text
- Enhanced MetadataGenerator with smart title/tag derivation and URL slugification
- Added new migrate.ts module to handle automatic database migrations using drizzle-orm
- Modified server startup to run migrations before Express initialization
- Added comprehensive documentation in AUTO_MIGRATION_SUMMARY.md explaining the implementation
- Updated DATABASE_SETUP.md to reflect automatic migration process and troubleshooting steps
- Added error handling to exit process if migrations fail during startup
- Implemented clear
- Changed database credentials in .env for improved security
- Added detailed implementation plan for content statistics feature (CONTENT_STATISTICS_PLAN.md)
- Created summary documentation for content statistics feature (CONTENT_STATISTICS_SUMMARY.md)
- Removed legacy MySQL root password and simplified database config variables
- Updated database name to use production naming convention (voxblog_prod)
- Added file upload button with multi-file support alongside existing paste functionality
- Implemented handleFileUpload function to process multiple image files sequentially
- Added file input reference and reset logic to allow repeated uploads
- Included upload progress indicator showing count of files being processed
- Added validation to skip non-image files with error messaging
- Enhanced UI with disabled state during upload to prevent concurrent
- Updated all components with responsive breakpoints for mobile-first design
- Added touch-friendly controls with proper spacing and small button sizes
- Implemented responsive layouts that stack/wrap on mobile screens
- Created detailed mobile compatibility documentation
- Enhanced horizontal scrolling for data grids and steppers on mobile
- Optimized media library grid for smaller screens
- Added iOS safe area inset padding for bottom
- Changed admin frontend port from 3000 to 3300 across all configuration files
- Changed API backend port from 3001 to 3301 across all configuration files
- Updated health check endpoints to use new ports in CI/CD workflow
- Modified documentation and deployment guides to reflect new port numbers
- Updated Caddy and Nginx reverse proxy configurations to use new ports
- Created new LOCAL_TESTING.md with detailed instructions for setting up local development environment
- Added step-by-step setup guide covering Docker installation, environment configuration, and common commands
- Included troubleshooting section with solutions for common issues like port conflicts and build failures
- Added development workflow guidelines and testing checklist for quality assurance
- Documented performance tips and best practices for Docker
- Fixed stale closure bug in streaming content by using useRef to properly accumulate content instead of relying on state closure
- Added auto-scrolling functionality to keep latest content visible during generation
- Implemented smooth scrolling behavior and improved HTML styling for better readability
- Added content buffer reset when starting new generation
- Enhanced documentation with detailed explanation of the closure problem and solution
- Moved streaming state (isGenerating, content, tokens, errors) from StepGenerate to usePostEditor hook
- Added new state management to allow continuous AI generation when navigating between editor steps
- Updated EditorShell to pass streaming state and setters down to StepGenerate component
- Added detailed documentation explaining streaming persistence architecture and user experience
- Removed local state from StepGenerate in favor of props
- Added streaming UI components with live content preview and token counter
- Implemented new generateContentStream service for SSE-based content generation
- Created comprehensive STREAMING_UI_GUIDE.md documentation with implementation details
- Added streaming toggle checkbox with default enabled state
- Enhanced StepGenerate component with progress bar and animated streaming display
- Added error handling and graceful fallback for streaming failures
- Split monolithic ai-generate.ts (453 lines) into 12 focused modules with clear responsibilities
- Created new directory structure with routes, services, utils, types, and config folders
- Implemented AIService orchestrator with specialized generators for content, metadata, and alt text
- Added centralized prompt templates and error handling
- Set up parallel routing to allow gradual migration from old implementation