Back to changelog
by Théo Daguier
Changelog — April 27, 2026
Major sprint day with 35 merged PRs covering quote approval workflow, project asset delivery, redesigned timeline & media dialogs, notifications overhaul, resilience improvements, and a new changelog dashboard.
#feature#bugfix#refactor#ux#ci#resilience
Release
v1.32.0✨ New Features
- Quote Approval Flow — Implemented full quote lifecycle with APPROVED / REJECTED / EXPIRED statuses, enabling structured commercial validation.
#603 - Project Asset Delivery — New
deliverProjectAssetsmutation allows marking project assets as delivered to the client, completing the production pipeline.#602 - Notifications Overhaul — Complete rewrite of the notifications dropdown with clean implementation, scope cleanup, and medium-priority items for better triage.
#593#601#583 - Project Timeline Redesign — Minimalist monochrome timeline with stepper, activity feed, and redesigned UI for photo-production context.
#595#588#598 - Media Detail Dialog Improvements — Zoom, before/after comparison slider, metadata cleanup, and improved thumbnail quality (800px + post-resize sharpening for HiDPI).
#589#599#576 - Icon-Based Mode Switcher — New mode switcher with icon + tooltip for cleaner navigation UX.
#597 - Changelog Dashboard — New changelog section with sidebar, summary entries, independent scroll, and integration into the user dropdown menu.
#572#573#575#577 - Responsive Tables & Onboarding — Responsive table layouts, onboarding state persisted to DB, and loading skeletons for smoother perceived performance.
#594
🐛 Bug Fixes
- TypeScript Build Errors — Resolved all TypeScript errors across the monorepo to restore clean builds.
#600 - Global Error Handler & Resilience — Added global API error handler, Stripe idempotency keys, and BullMQ dead-letter queue for failed jobs.
#596 - Empty Analytics — Fixed analytics showing empty data by correcting date filter logic.
#586 - Storage Purge Size Estimation — Purge size now computed from R2 storage with DB fallback when R2 is unavailable.
#579#584#587 - Mobile UX — Improved touch targets, viewport handling, navigation, and overflow fixes for mobile devices.
#582 - API Keys & Settings — Fixed admin role scoping for API keys and redesigned the settings page.
#569 - Delete Confirmation — Removed revoke button and added proper delete confirmation dialog.
#578#581 - Media Card Minimalist — Removed badge overlays and annotate button for cleaner media cards.
#571 - Changelog Build Mismatch — Resolved type mismatch in changelog from merged PRs.
#574 - Sidebar Icons — Improved sidebar icon selection for photo-production context.
#590
♻️ Refactoring & Technical Improvements
- Project List Simplification — Removed metrics cards, select column, and assets column from project list for a cleaner view.
#580#585 - Retry & Resilience Layer — Added retry logic for React Query, email via BullMQ, and R2 storage operations.
#592
📦 Dependencies & Infrastructure
- CI: Prisma Schema Validation — Added Prisma schema validation step and enforced TypeScript gate in CI pipeline.
#591