## [Unreleased] - 2026-05-31 ### Added - Added admin video job management with a dedicated admin page, job table, status filters, cancel and purge actions, and backend endpoints for video job listing, cancellation, and cleanup. - Added full gallery support for generated images, generated videos, and uploaded images with new routes, detail pages, templates, and thumbnail previews. - Added backend endpoints for single-generated-image retrieval, single-video-job retrieval, and uploaded image retrieval. - Added queued video generation workflow: backend job creation, background worker polling, OpenRouter job submission, status transitions from queued to processing to completed/failed, and timeout detection for stale jobs. - Added model cache management with backend OpenRouter model retrieval, DuckDB caching, cache-status endpoints, manual refresh endpoint, and frontend admin UI for model inspection. - Added frontend generation pages and forms for text, image, and video generation, including dropdown model selection by modality and support for image upload input on video generation flows. - Added user-facing profile and admin sections in the Flask frontend, including profile update forms and admin user management actions. - Added documentation updates and architecture content refresh across README and docs, plus Coolify deployment guidance. - Added an initial admin user account `ai@allucanget.biz` with password `admin123` in the database initialization script. ### Changed - Changed frontend API helper to support per-call timeout overrides. - Changed dashboard behavior to separate pending video jobs from completed jobs and make pending workflows more visible. - Changed gallery presentation to show cards with thumbnails and links instead of raw list output. - Changed admin navigation and UI to expose video jobs and model management pages more directly. - Changed backend video generation responses to include database IDs and redirect users to video detail pages after job creation. - Changed documentation and architecture files to reflect recent backend, frontend, and deployment changes. ### Fixed - Fixed gallery spinner logic so an empty gallery shows a "No images yet" message instead of a spinner. - Fixed gallery image display issues so generated content is shown as cards with proper previews and detail links. - Fixed video polling logic to handle cancelled jobs and avoid infinite polling loops. - Fixed failed video job handling with user-safe error feedback in both backend and frontend. - Fixed frontend image-generation timeout failures by catching `httpx.ReadTimeout` and surfacing a safe error message. - Fixed frontend image generation route to handle backend timeout/request errors gracefully instead of returning 500 tracebacks. - Fixed backend service behavior for actual video job processing and stale job timeout detection. ### Removed - None.