etouch
Iniciar sesión
Volver a novedades
por Théo Daguier

Changelog — April 21, 2026

Major release day with 30 merged PRs: analytics dashboard, keyboard shortcuts, onboarding flow, security headers, accessibility fixes, Biome migration, DataLoader optimization, and comprehensive test coverage expansion.

#feature#bugfix#refactor#perf#security#accessibility#testing#chore

Release

v1.31.7

✨ New Features

  • Analytics Dashboard — Full analytics page with tabbed navigation and 8 KPI cards covering production, business, retouch, client, technical, and team metrics. #PR-440
  • Analytics GraphQL Resolvers — Backend resolvers for all analytics categories: production, business, retouch, clients, technical, and team performance. #PR-441
  • Keyboard Shortcuts System — Global keyboard shortcuts with a discoverable help dialog, enabling power-user navigation across the app. #PR-463
  • Onboarding Welcome Screen — New-user welcome screen with a getting-started checklist and contextual tooltips to guide first-time users through key features. #PR-461
  • Loading Skeletons — Skeleton loading states added to analytics, settings, products, and dashboard pages for improved perceived performance. #PR-453
  • Error Boundaries — React error boundaries wrapped around major dashboard route segments to prevent full-page crashes. #PR-452
  • Improved Table UX — Empty state CTAs, filter URL persistence, and sessions pagination for a smoother data-browsing experience. #PR-457

🐛 Bug Fixes

  • Analytics Charts Not Rendering — Fixed broken analytics charts and restored proper shadcn Tabs component rendering. #PR-443
  • Shadcn ChartContainer Migration — Migrated all analytics charts to use the shadcn ChartContainer for consistent rendering. #PR-444
  • Extended Analytics Resolvers — Wired up all extended analytics resolvers and fixed a chart casing bug causing data mismatches. #PR-459
  • Auth Disconnect Loop — Resolved an authentication disconnect loop affecting multi-organization users. #PR-442
  • Impersonation Exit & Banner — Fixed impersonation exit flow and redesigned the banner for clarity. Added a floating exit button. #PR-439 #PR-445
  • Missing i18n Translations — Audited and filled all missing internationalization translations across the web app. #PR-462
  • GraphQL Error Handling — Improved GraphQL error handling with user-friendly toast messages instead of raw error dumps. #PR-456
  • Mobile Responsiveness — Full responsiveness audit with fixes for layout breaks on smaller screens. #PR-447
  • Accessibility (WCAG 2.1 AA) — Accessibility audit fixes including ARIA labels, focus management, contrast, and keyboard navigation. #PR-451
  • Security Headers — Added CSP, HSTS, and X-Frame-Options headers to harden the web application. #PR-460
  • Client User Permissions — Hidden download selection button and download actions from client-facing users. #PR-434 #PR-436
  • Unauthorized Screen — Replaced the unauthorized screen with a redirect to /sign-in for a smoother auth flow. #PR-435
  • Organization Sheets — Removed tags column from org sheets and added a dedicated settings section. #PR-437 #PR-438
  • Mobile TypeScript Errors — Resolved TypeScript errors in the mobile app that were blocking the CI typecheck step. #PR-454
  • Test Mock Alignment — Fixed useDownloadAuthorization test mock to match the current type signature. #PR-446

♻️ Refactoring & Technical Improvements

  • Biome Migration — Completed migration from ESLint/Prettier to Biome across the entire codebase, removing legacy config files and fixing formatting inconsistencies. #PR-450

🚀 Performance

  • DataLoader Batching — Added DataLoader batching for asset counts and billing queries, reducing N+1 database hits. #PR-449

🧪 Testing

  • Playwright E2E Smoke Tests — End-to-end smoke tests covering critical user flows (sign-in, navigation, core actions). #PR-455
  • GraphQL Schema Validation Tests — Automated tests validating the GraphQL schema against expected types and resolvers. #PR-458
  • Extended Unit Test Coverage — New unit tests for comment resolvers, validators, and server actions. #PR-448

📝 Other Changes

  • Issue #345 Closed — Resolved web unit test failure for useDownloadAuthorization hook mismatch.