# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ## [Unreleased] ### Added (Phase 3: DX) - **WebSockets / Real-Time**: - Subscriptions on per-image workflows (`/ws/pipeline/{image_id}`). - Redis 60-second Event Buffering for reconnections. - Admin Monitor WebSocket feed (`/ws/admin/monitor`). - **REST API Versioning**: - Global `/api/v1/` prefix for structural stability. - Added strict API Sunset Date tracking middleware. - **Python SDK (`imago-client`)**: - Publishable PyPI-ready package located inside `sdk/`. - Automatic `httpx` HTTP reconnects, WebSockets streaming natively wrapped, and robust generic Error classes (`ImagoError`, `AuthError`, etc.). - **Admin Backend APIs**: - Complete JSON statistics (`/admin/api/stats`), global client configurations (`/admin/api/clients/*`) and Queue observability natively piped to the existing React Interface. - **Shaarli Integrations**: - Skeleton integration middleware (`integration/shaarli`) capable of bridging Shaarli's events right into Imago using the official SDK. - **Extensive Documentation**: - Modular guides provided inside `docs/` detailing WebSockets, Integrations, and SDK consumption. ### Changed - All API routing endpoints have been moved behind the `/api/v1` namespace. Existing API Clients must update base URLs from `/` to `/api/v1/`. ### Fixed - Fixed unawaited coroutines in async mocks causing `TypeError` on Pytest environments. - Fixed an incorrect payload key mapping in `APIClient` responses causing 500s (`AttributeError`). - Mocked S3 and ARQ correctly globally to ensure local automated tests pass completely isolated from network logic.