etouch
Sign in
Back to changelog
by theodaguier

Changelog — June 23, 2026

Atomic product stock management with low-stock alerts, native iOS splash screen, and a unified FormSheet component consolidating 14+ dialogs.

#feature#refactor#mobile#ui

Release

v1.55.0

✨ New Features

  • Atomic Product Stock Management — Introduced an adjustStudioProductStock mutation that applies signed deltas atomically, ensuring concurrent stock adjustments never lose updates. Optimistic cache updates on both web and mobile eliminate unnecessary re-renders. Stock is now automatically tracked when consumables are added, updated, or removed from sessions (excluding the auto-billed assistant product), with full rollback on session deletion. #704

  • Low-Stock Threshold Alerts — Added an optional per-product low-stock threshold. The server computes an isLowStock flag, keeping web and mobile clients in sync so teams can act before running out of critical items. #704

  • Native iOS Splash Screen — Replaced the animated JavaScript splash with a native storyboard implementation featuring a centered logo and full dark mode support via the expo-splash-screen plugin. #704

♻️ Refactoring & Technical Improvements

  • Unified FormSheet Component — Extracted a reusable FormSheet wrapper (header → scrollable body → sticky footer) that replaces scattered Dialog/form patterns across 14+ creation and edit dialogs (clients, guidelines, machines, products, projects, retouchers, sessions, studios, users, Acuity/Edo transforms, Pennylane dialogs, invitations). Introduced a central RequiredMark component and shared form utilities (FormSheetFooter, CompanyLookupStep refactored as a body component, extracted product-categories and organization-locale helpers). #706

  • Removed "Active" Toggle & Legacy Dashboard Metrics — Eliminated the active/inactive concept for machines and products (entities default to active; schema retained for backward compat). Cleaned up unused analytics cards (active/total/avg price/categories counts) from the machines and products dashboard pages. #704

  • Shared Badge Components — Consolidated MachineTimerBadge and ProductSourceBadge as single sources of truth so list and detail views remain visually consistent. #704

📦 Dependencies & Infrastructure

  • Workers Dockerfile — Added a containerized Dockerfile for background job processing workers. #706