Product Updates

Shipped changes and fixes by release.

Caloti now publishes one shared product version across web, mobile, and API release metadata. The current deployed release is 4.4.0.

Generated May 24, 2026Contact support

v4.4.0

Version 4.4.0

Released May 24, 2026

New

  • Improve amenity and service category selection.
  • Add OSM-based salon discovery script and 35 new amenities.
  • Add tutorial-fixtures seed for completed bookings.
  • Expand OSM salon discovery coverage.
  • Persist google_place_id, wire MAX_IMAGES_PER_SALON, expand workflow countries.
  • Require OSM email at discovery and Google match post-enrichment.
  • Expand service and amenity picker metadata.

Fixed

  • Extend amenities enum with inclusivity/wellness/discounts/products.
  • Align ios eas capabilities.
  • Downgrade transient SMTP and indexing alerts to warn.
  • Preserve OSM hours and country fallbacks.
  • Address bing scan findings.
  • Address PR review feedback.
  • Harden post-deploy SEO contract and keyword-rich CTAs.

Improved

  • Reduce directory insight query payload.
  • Split featured salons directory query to avoid join cartesian.

Changed

  • Bump shared packages.
  • Bump shared packages.

v4.3.6

Version 4.3.6

Released May 18, 2026

Fixed

  • Stabilize e2e seed entity registry.
  • Bypass signup burst limit for e2e runs.
  • Align auth option tap targets.
  • Align availability blocking statuses.
  • Dismiss guest checkout keyboard.
  • Filter occupied stylist slots.
  • Hide empty notification destination.
  • Hide recurring upgrade prompts from clients.
  • Keep guest checkout option reachable.
  • Open salon service selection reliably.
  • Parse appointment times in salon timezone.
  • Recheck occupied slots before submit.
  • Submit guest checkout from keyboard.
  • Switch guest checkout state atomically.
  • Localize public follow-on copy.
  • Add login account prompt fallback.
  • Allow e2e screen capture bypass.
  • Allow local android api cleartext.
  • Format waitlist preferred times.
  • Guard optional native startup modules.
  • Localize salon details error fallback.
  • Retain auth tokens after login.
  • Smooth salon claim onboarding transition.
  • Submit login from password keyboard.
  • Address launch cleanup review feedback.
  • Address manifest review feedback.
  • Align discovery indexation and listing states.
  • Avoid false empty search states.
  • Canonicalize generic country pages.
  • Canonicalize placeholder search urls.
  • Clean public page fallbacks and sentry noise.
  • Clean search snippets and salon-first copy.
  • Localize public follow-on copy.
  • Localize pwa manifest metadata.
  • Polish public changelog copy.
  • Polish public page metadata and fallbacks.
  • Preserve city search filters.
  • Remove public loading and admin copy leaks.
  • Sanitize search placeholder filters.
  • Tighten public indexation controls.
  • Tighten search indexing and directory consistency.
  • Associate floating labels with controls.

Changed

  • Set up Dependabot for npm and GitHub Actions updates.

v4.3.5

Version 4.3.5

Released May 18, 2026

Fixed

  • Render directory landing routes dynamically.

v4.3.4

Version 4.3.4

Released May 17, 2026

Fixed

  • Generate lint-valid network security config.

v4.3.3

Version 4.3.3

Released May 17, 2026

Fixed

  • Merge dev launch cleanup.

v4.3.2

Version 4.3.2

Released May 14, 2026

Fixed

  • Tighten crawl controls and indexnow drain.

v4.3.1

Version 4.3.1

Released May 14, 2026

Fixed

  • Force API translation hydration.
  • Remove raw translation keys from header test ids.
  • Render translated SSR auth forms.
  • Render translated SSR chrome.
  • Unblock translation startup.
  • Clean up bing crawl edge cases.
  • Redirect stale crawl paths.

v4.3.0

Version 4.3.0

Released May 13, 2026

New

  • Add SendGrid editorial newsletters.
  • Add newsletter contracts.

Fixed

  • Keep indexnow deploy submissions body safe.
  • Address PR review recommendations.
  • Address SendGrid PR review feedback.
  • Address console metadata and search map issues.
  • Avoid dead service location links.
  • Canonicalize www at nginx edge.
  • Reduce search payload and seed localized cms posts.
  • Stabilize localized CMS sitemap rows.
  • Strengthen metadata for bing reports.

Changed

  • Bump shared packages.

v4.2.0

Version 4.2.0

Released May 11, 2026

New

  • Add backend search indexing pipeline.
  • Add IndexNow deployment notifications.
  • Improve search indexing observability.

Fixed

  • Skip throttling for public seo reads.
  • Improve article CTA contrast.
  • Move trending salons below search.
  • Ignore aborted plan requests.
  • Address pr review feedback.
  • Localize discovery links.
  • Add server heading for salon profiles.
  • Return 404 for missing salon profiles.
  • Restore workspace test stability.
  • Detect delete dependencies from pg catalog.

v4.1.0

Version 4.1.0

Released May 5, 2026

New

  • Add shared salon directory details.
  • Add marketplace-backed salon directory pages.
  • Add salon directory translation text.

Fixed

  • Update vulnerable direct packages.
  • Suppress expected signup and cms noise.
  • Address localization and monitoring feedback.
  • Stabilize localized discovery flows.
  • Address directory review feedback.
  • Harden CMS article rendering.
  • Harden directory service URLs.

Changed

  • Bump shared packages.
  • Bump shared packages.

v4.0.0

Version 4.0.0

Released May 4, 2026

Breaking Changes

  • Add external invitation delivery summary.

New

  • Improve provider invite sharing.
  • Add external invitation delivery summary.
  • Add invite channel helpers.

Fixed

  • Pass signup abuse secret to backend runtime.
  • Address review feedback.

Changed

  • Bump shared packages.
  • Bump shared packages.
  • Bump shared packages.
  • Bump shared packages.

v3.0.0

Version 3.0.0

Released May 4, 2026

Breaking Changes

  • Registration risk enums move to shared enums.
  • Shared User no longer includes signupIpHash or signupUserAgentHash. These fields are only on admin user detail contracts.
  • Add registration anti-abuse helpers.
  • Add signup anti-abuse contracts.

New

  • Add external invitation endpoints with transactional claim flow.
  • Add invite.\* translations across 34 supported locales.
  • Add signup abuse controls.
  • Add FAQ CTA button support.
  • Improve editorial authoring.
  • Localize FAQ CTA currency examples.
  • Support localized FAQ content.
  • Replace hero CTAs with integrated search bar and role links.
  • Add web invite modal, channel buttons, and /invited landing.
  • Add IntegratedSearchBar and redesign BrowseScreen with role CTAs.
  • Add invite modal, /invited deep link, and registration token plumbing.
  • Add directory content CMS foundations.
  • Implement phase 2 indexation cleanup.
  • Add external invitation contracts to types and utils.
  • Add SEO content contracts.
  • Expose invitation auth and anti-abuse contracts.
  • Add signup anti-abuse contracts.
  • Add registration anti-abuse helpers.

Fixed

  • Align store pricing discrepancy detection.
  • Contain admin shell horizontal overflow.
  • Keep store sync response resilient.
  • Preserve filtered pricing selections.
  • Remove public chrome from admin routes.
  • Stabilize pricing maintenance tables.
  • Upsert app store price sync rows.
  • Wrap pricing bulk edit controls.
  • Support high-denomination country pricing.
  • Address signup abuse review findings.
  • Derive signup timing server-side.
  • Harden signup abuse freshness counters.
  • Improve content publishing flow.
  • Style cms article links.
  • Scope popular cities, services, and featured locations to detected country.
  • Address external invitation review findings.
  • Address follow-up review feedback.
  • Address OAuth review feedback.
  • Extend App Store sync timeout.
  • Align public signup trust SQL.
  • Fetch CMS sitemap posts by locale.
  • Shrink sitemap payload.
  • Unblock AI crawler indexation.
  • Keep signup hashes admin-only.
  • Extend store sync request timeout.

Changed

  • Add more dependancies.
  • Add SEO content contracts.
  • Add SEO seed root scripts.
  • Update brand and seo messaging.
  • Update lock file.
  • Bump shared packages.
  • Bump shared packages.
  • Bump shared packages.
  • Bump shared packages.
  • Bump shared packages.
  • Bump shared packages.
  • Bump shared packages.
  • Bump shared packages.
  • Bump shared packages.
  • Bump shared packages.
  • Bump shared packages.

v2.5.1

Version 2.5.1

Released April 29, 2026

Fixed

  • Use App Store territory currency.
  • Preserve distance sorting aliases.
  • Resolve recent sentry regressions.
  • Centralize store endpoint constants.
  • Allow manual employer salon creation.
  • Suppress expected handled Sentry errors.

Improved

  • Use shared namespace constants.

Changed

  • Bump shared packages.

v2.5.0

Version 2.5.0

Released April 28, 2026

New

  • Support manual salon phone entry.

Fixed

  • Address PR 1052 review issues.
  • Guard Notification API and quiet expected 4xx leaks to Sentry.
  • Order stylist/salon distance by expression to survive .select clone.
  • Enforce seat list response contract.

Changed

  • Bump shared packages.

v2.4.1

Version 2.4.1

Released April 25, 2026

Fixed

  • Provide preview API URL to EAS.
  • Address dev promotion review.
  • Address QA review comments.
  • Bridge native login fallback.
  • Map client upcoming appointments.
  • Merge QA blocker fixes.
  • Stabilize login and address QA blockers.

v2.4.0

Version 2.4.0

Released April 25, 2026

New

  • Add country code helpers.
  • Add unclaimed employer salon onboarding contract.

Fixed

  • Address pr review feedback.
  • Resolve open Sentry issues across web and api.
  • Harden employer salon setup.
  • Scope address country during onboarding.

Changed

  • Commit remaining launch updates.
  • Bump shared packages.
  • Bump shared packages.
  • Bump shared packages.

v2.3.9

Version 2.3.9

Released April 24, 2026

Fixed

  • Restore error autopilot cleanup project default.
  • Harden production verification flows.
  • Prevent completed business onboarding retries.
  • Show salon owner final submit action.
  • Hydrate onboarding addresses.
  • Align email resend flows.
  • Improve code delivery flows.
  • Stop profile reload loop.

Changed

  • Remove error autopilot cleanup workflow.

v2.3.8

Version 2.3.8

Released April 24, 2026

Fixed

  • Return canonical bookings response.
  • Resolve active production issues.

Changed

  • Update shared package versions - @caloti/types@16.2.26 - @caloti/shared-utils@16.2.25.
  • Update shared packages.
  • Remove error autopilot issue automation.

Changed

  • Update AGENTS.md.
  • Update Claude.md.

v2.3.7

Version 2.3.7

Released April 24, 2026

Fixed

  • Stabilize cross-workspace test suites.
  • Filter 404/423/security-audit events from Sentry.
  • Filter expected HTTP status codes client-side on mobile + web.
  • Tighten sentry noise filters.

v2.3.6

Version 2.3.6

Released April 23, 2026

Fixed

  • Localize subscription confirmation pricing.
  • Prevent NewConversationScreen infinite update loop.

v2.3.5

Version 2.3.5

Released April 23, 2026

Fixed

  • Allow long app store price identifiers.
  • Show localized subscription pricing.
  • Address follow-up review feedback.
  • Address review feedback.
  • Align plan summaries and translations.

Changed

  • Update shared package versions - @caloti/types@16.2.25 - @caloti/shared-utils@16.2.24.
  • Update shared packages.

v2.3.4

Version 2.3.4

Released April 23, 2026

Fixed

  • Use canonical store sync secrets.
  • Wire store price sync credentials.
  • Load subscription plans from RevenueCat.
  • Untrack production env and tighten subscription tests.
  • Address pr review findings.

v2.3.3

Version 2.3.3

Released April 22, 2026

Fixed

  • Address shared-device review feedback.
  • Clear persisted store data on account changes.
  • Isolate persisted account state and keyboard-safe profile edits.
  • Isolate shared-device persisted state.
  • Scope persisted state by user.
  • Scope remaining shared-device service storage.
  • Log invitation-accept failures on the booking page.

v2.3.2

Version 2.3.2

Released April 22, 2026

Fixed

  • Address PR review concerns on subscription contract and auth guard.
  • Specific storefront mismatch copy and account-level telemetry.
  • Resolve countryPricingId even when event carries pricing.
  • Stop logging SALON_NOT_FOUND booking page errors to Sentry.

Changed

  • Update shared package versions - @caloti/types@16.2.24 - @caloti/shared-utils@16.2.23.

v2.3.1

Version 2.3.1

Released April 22, 2026

Fixed

  • Subscribe to FCM topics on mid-session grants; gate subscription UI.
  • Canonicalize FCM device timezone on registration.
  • Add notification permission and restore-mismatch keys.
  • Initialize FCM registration after onboarding permission grant.
  • Register token on first GRANTED and gate subscription self-management.
  • Stop unprompted notification permission alert and add re-enable path.
  • Canonicalize optional timezones.
  • Enforce subscription ownership on restore and plan changes.
  • Harden ownership and sync flows.
  • Harden subscription e2e and salon owner contracts.
  • Forward worker flags.
  • Add restore account role mismatch keys.

Improved

  • Consume canSelfManageSubscription/isSoloStylistUser from shared-utils.
  • Consolidate NotificationProvider solo-stylist check.

Changed

  • Stabilise misc mobile tests, tune test runner, document sub ownership.
  • Update shared package versions - @caloti/types@16.2.19 - @caloti/shared-utils@16.2.18.
  • Update shared package versions - @caloti/types@16.2.20 - @caloti/shared-utils@16.2.19.
  • Update shared package versions - @caloti/types@16.2.21 - @caloti/shared-utils@16.2.20.
  • Update shared package versions - @caloti/types@16.2.22 - @caloti/shared-utils@16.2.21.
  • Update shared package versions - @caloti/types@16.2.23 - @caloti/shared-utils@16.2.22.
  • Update shared packages.
  • Update shared packages.
  • Resolve ruby dependabot alerts and widen npm brace-expansion override.
  • Clear lint errors in notification flow.
  • Unblock mobile test type-check after shared types tightening.

v2.3.0

Version 2.3.0

Released April 21, 2026

New

  • Add expired restore purchase status.

Fixed

  • Address PR #1034 review feedback.
  • Classify schema/query-definition Postgres faults as 500 and enrich logs.
  • Exclude endDate from subscription sync snapshot.
  • Add expired display e2e coverage.
  • Complete owner feature gate follow-up.
  • Complete owner feature gate follow-up.
  • Resolve owner feature gate merge.
  • Align mobile restore and management flows.

Improved

  • Use captureContext form for Sentry messages and migrate withScope callers.

Changed

  • Update shared package versions - @caloti/types@16.2.18 - @caloti/shared-utils@16.2.17.
  • Update ve translations.

v2.2.1

Version 2.2.1

Released April 20, 2026

Fixed

  • Exclude inactive branches from owner context.
  • Address additional PR feedback.
  • Address PR review feedback.
  • Improve nguni and sotho locale quality.
  • Improve southern african locale coverage.
  • Reduce same-as-English locale debt.
  • Sync subscription restore copy in remaining locales.
  • Gate locked branches and harden iOS restore.
  • Add owner salon context normalization.

Changed

  • Update shared package versions - @caloti/shared-utils@16.2.16.
  • Update shared package versions - @caloti/types@16.2.17.

v2.2.0

Version 2.2.0

Released April 20, 2026

New

  • Add parked-branches banner on the salon-owner dashboard.
  • Route BRANCH_LOCKED_FOR_PLAN responses to the upgrade screen.
  • Tag dashboard salons with plan accessibility end-to-end.
  • Render locked salon branches with re-subscribe cta.
  • Add MobileAppBanner component for mobile install nudge.
  • Render locked salon branches with re-subscribe cta.
  • Wire up MobileAppBanner + apple-itunes-app meta.
  • Add SALON_MANAGEMENT_MY_SALONS endpoint.
  • Add BranchLockedReason and SalonAccessibilityFields.
  • Tag SalonOwnerDashboardResponse.salons with accessibility.

Fixed

  • Address Codex review on salon-management plan-lock path.
  • Compute plan access on full owner list and return all salons.
  • Gate multi-location branches when the salon owner's plan allows fewer.
  • Address Codex review round 2 — plan-access + lock recovery.
  • Prefer first accessible branch in salon fallback pickers.
  • Localize mobile app banner copy.
  • Sync bundled branch lock messaging.
  • Sync feature tour locale contracts.
  • Centralize access control across messaging flows.
  • Stop onboarding auto-save from clobbering in-progress edits.
  • Delete stale .well-known static files shadowing dynamic routes.
  • Filter address autocomplete by selected country.
  • Use canonical my-salons contract.
  • Align branch access across clients.
  • Sync translation key union.

Improved

  • Consume BranchLockedReason + accessibility types from @caloti/types.
  • Use SALON_MANAGEMENT_MY_SALONS constant in useParkedBranches.

Changed

  • Update shared package versions - @caloti/types@16.2.12 - @caloti/shared-utils@16.2.11.
  • Update shared package versions - @caloti/types@16.2.13 - @caloti/shared-utils@16.2.12.
  • Update shared package versions - @caloti/types@16.2.14 - @caloti/shared-utils@16.2.13.
  • Update shared package versions - @caloti/types@16.2.15 - @caloti/shared-utils@16.2.14.
  • Update shared package versions - @caloti/types@16.2.16 - @caloti/shared-utils@16.2.15.

v2.1.4

Version 2.1.4

Released April 20, 2026

Fixed

  • Pass release_notes via env to avoid bash quoting breakage.

Changed

  • Restore pre-push hook executable bit.

v2.1.3

Version 2.1.3

Released April 20, 2026

Fixed

  • Batch seo metadata lookups to remove N+1 query.
  • Expose Twilio error code and reason on SMS send failures.
  • Reject malformed region codes and log full Google error body.
  • Stop sending expected 401 responses to sentry.
  • Dedupe GOOGLE_PLACES_API_KEY line in backend deploy workflow.
  • Align document smoke copy.
  • Create and retain shared test users across specs.
  • Isolate admin auth and stabilize admin flows.
  • Stabilize admin and auth flows.
  • Stabilize admin service category flows.
  • Align admin service category copy.
  • Block unsupported admin access.
  • Harden gateway and mobile access guards.
  • Emit clarity and expected-state messages as breadcrumbs.
  • Gate sibling subscription hooks against anonymous 401s.
  • Harden profile and places test contracts.
  • Skip current-subscription query for anonymous users.
  • Stop surfacing "Session expired" for anonymous 401s.
  • Align salon owner e2e and locale state.
  • Align test helpers and frontend regressions.
  • Bootstrap e2e auth sessions from backend.
  • Stabilize service category edit flow.
  • Address reviewer feedback for PR #1030.
  • Align pricing seeding and e2e flows.
  • Persist onboarding state for fixture users.
  • Seed stylist portfolio data for e2e.
  • Align admin pricing and real auth flows.
  • Stabilize auth and salon context fixtures.
  • Align profile sharing and stylist not-found ux.

v2.1.2

Version 2.1.2

Released April 19, 2026

Fixed

  • Pin EAS iOS image to Xcode 26.1 and build iOS first.
  • Stabilize additional e2e flows.
  • Stabilize e2e seat and package flows.
  • Stabilize pricing and packages e2e.

v2.1.1

Version 2.1.1

Released April 19, 2026

Fixed

  • Align web fixtures with current contracts.
  • Pin EAS iOS image to Xcode 16.2 for Expo SDK 55.
  • Stabilize e2e startup and not-found props.

Improved

  • Consume shared Google URL helpers in seeds enricher.

Changed

  • Drop stale mapbox mocks from jest.setup.js.

v2.1.0

Version 2.1.0

Released April 19, 2026

New

  • Add Google Places types and Maps Platform URL helpers.

Fixed

  • Drop Table-B hints from Google Places autocomplete request.
  • Return paginated client bookings responses.
  • Align booking contracts and translation fallbacks.
  • Unpin EAS iOS image to default to avoid Xcode 26.2 breakage.

Improved

  • Consume shared Google Places types and URLs.
  • Use shared Google URL helpers in clients.

Changed

  • Update shared package versions - @caloti/shared-utils@16.2.10.
  • Update shared package versions - @caloti/types@16.2.11.

v2.0.0

Version 2.0.0

Released April 19, 2026

Breaking Changes

  • Mapbox is fully removed. All geocoding, autocomplete, routing, and map rendering now uses Google APIs (Places API New, Geocoding, Routes, Maps JavaScript, Static Maps).
  • Add GooglePlacesService + PlacesProvider interface; delete MapboxPlacesService.
  • Rewrite GeocodingService to call Google Geocoding API only; map OVER_QUERY_LIMIT/REQUEST_DENIED to typed errors.
  • Drop MAPBOX_ACCESS_TOKEN from env validator, .env files, and specs; require GOOGLE_PLACES_API_KEY at runtime.
  • Rename salons.mapbox_place_id column to external_place_id via migration.
  • Add googleMaps.service.ts (Maps JS + Routes) and GoogleMap.tsx.
  • Collapse Map.tsx to a single Google provider (no dispatcher).
  • Remove mapbox-gl, @types/mapbox-gl, @mapbox/search-js-react deps; add @googlemaps/js-api-loader + @types/google.maps.
  • Rewrite Playwright specs + testIDs against Google endpoints.
  • Replace Mapbox Static Images URLs with Google Static Maps in chat location previews (web + mobile).
  • Extend nginx CSP with maps/places/routes googleapis.com; drop mapbox.
  • Replace MAPBOX_ACCESS_TOKEN in CloudFormation (master + ec2-instances), generate-parameters, deploy workflows, and codex env.
  • Require GOOGLE_PLACES_API_KEY, GOOGLE_PLACES_WEB_API_KEY, GOOGLE_MAPS_WEB_API_KEY secrets.
  • Rewrite ARCHITECTURE Maps section, DEPLOYMENT, GITHUB-SECRETS-SETUP, FEATURE-PARITY, service-providers, platform-differences, copilot-instructions, README, and data-schema to reflect single Google provider.

Fixed

  • Address PR #1026 Google migration review findings.
  • Address review feedback on env validator, maps loader, mobile docs.
  • Align test contracts and stabilize test runtime.
  • Prevent language normalizer from throwing before validation.
  • Prevent raw error keys leaking to clients.
  • Localize registration conflict errors.
  • Use EXPO_PUBLIC_GOOGLE_PLACES_API_KEY for chat static map previews.
  • Stop calling Routes API from browser with Maps JS key.

Improved

  • Replace Mapbox with Google Places across stack.

v1.10.1

Version 1.10.1

Released April 18, 2026

Fixed

  • Address PR #1024 review findings (async prefill, locale, country scope).
  • Address PR #1025 review findings (phone regression, auth perf, geocode perf).
  • Eliminate cross-country bleed in search, invites, and auth cache.
  • Route user-facing dates through device/user locale instead of en-US.
  • Resolve Zimbabwe address/phone/profile cross-country bleed.
  • Import PASSWORD_MIN_LENGTH from @caloti/shared-utils.

v1.10.0

Version 1.10.0

Released April 18, 2026

New

  • Native iOS, web-direct Places, telemetry, E2E, translations.
  • Route address autocomplete through device Google Places.

Fixed

  • Address Codex + Copilot review feedback.
  • Address fourth-round Codex P2 findings.
  • Address second-round Codex P1/P2 findings.
  • Address third-round Codex P1/P2 findings.
  • Move resolvedSignupCountryName above openManualForm.
  • Pass proximity to native Places on web.
  • Remove legacy place alias and localize location alerts.
  • Restore global.fetch assignment in nativePlaces test.
  • Use expo autolinking searchPaths for local places module.
  • Address bot-flagged issues in Google Places integration.

Improved

  • Localize hardcoded a11y labels and alert strings.

Changed

  • Improves google places integration.

v1.9.0

Version 1.9.0

Released April 18, 2026

New

  • Distinguish expired subscriptions from never-subscribed.
  • Expired-aware CTAs in feature gates, upgrade prompt, pricing.

Fixed

  • Manual-entry country code + expired-sub resubscribe.
  • Web parity for sparse-coverage + observability.
  • Address autocomplete falls back to native geocoding in sparse-coverage countries.
  • IPad keyboard can cover Continue button in country/language pickers.
  • Phone country picker now respects manual user selection.
  • Address PR 1021 review feedback.

v1.8.0

Version 1.8.0

Released April 16, 2026

New

  • Expand product-supported languages to full catalog.
  • Improve salon-owners and stylists landing pages , closes #join-process.

Fixed

  • Align mobile subscription tests and backend locale bundles.
  • Downgrade Mapbox per-suggestion retrieve failures to warn.
  • Log 401 responses at warn level, not error.
  • Translate salonOwner.locations.form.createButton across locales.
  • Address iOS App Store rejection issues.
  • Downgrade expected-behavior subscription telemetry to info.
  • Downgrade storefront pricing mismatch from warn to info.
  • Expose Restore Purchases to all roles in Settings.
  • Route iOS navigation through Apple Maps via nativeMapsService.
  • Fingerprint Sentry captureMessage calls by message.
  • Improve icon contrast on landing pages.
  • Repair plan fixtures and locale translations.
  • Align suites with current app contracts.

Improved

  • Remove unused GeofenceRegion interface.

Changed

  • Update shared package versions - @caloti/shared-utils@16.2.9.
  • Update shared package versions - @caloti/types@16.2.10.
  • Ignore vscode workspace settings.

v1.7.1

Version 1.7.1

Released April 15, 2026

Fixed

  • Address PR review feedback on Sentry fixes.
  • Add fbq stub to prevent ReferenceError on SSO callback.
  • Resolve Facebook OAuth emailNotVerified error.
  • Add @rollup/rollup-linux-x64-gnu to frontend deploy deps.
  • Install rollup + lightningcss linux binaries in deploy script.
  • Guard subscription sync against missing auth token.
  • Prevent false 'Visible in search results' for incomplete profiles.
  • Prevent onboarding form text disappearing on re-render.
  • Use graceful fallback when APP_URL is not configured.
  • Skip feature check API call for anonymous users.

Improved

  • Add in-memory cache to getSEOMetadata to fix N+1 pool connects.

v1.7.0

Version 1.7.0

Released April 15, 2026

New

  • Optional client email, account/salon deletion, and type safety fixes.
  • Add web discovery funnel events.
  • Make client email optional in types and add optionalEmail validation.

Fixed

  • Trace handled failures and clear timeout leaks.
  • Stabilize oauth callbacks and enforce app url.
  • Repair test workflow entrypoints.
  • Bump npm direct dependencies for security.

Improved

  • Align manual memoization deps with React Compiler.
  • Clear purity/immutability/incompatible-library warnings.
  • Hoist inline components out of render (static-components).
  • Stop reading refs during render (react-hooks/refs).
  • Stop syncing prop->state in effects (set-state-in-effect).

Changed

  • Integrate pending WIP across mobile, node-api, and e2e.
  • Lint zero errors, SSR dev troubleshooting, store-submission checklist.
  • Update lock file.
  • Update shared package versions - @caloti/types@16.2.9 - @caloti/shared-utils@16.2.8.
  • Remove dead declarations, silence false-positive alt-text.
  • Remove unused imports and fix prettier formatting.

v1.6.0

Version 1.6.0

Released April 14, 2026

New

  • Upgrade consent and marketing tracking.
  • Widen locale routing to 47 codes and extend plan localisation.
  • Localise subscription plans and refresh landing pages , closes #feature-comparison.
  • Add localised data deletion anchor and fix stylist footer link , closes #data-deletion.

Fixed

  • Guard email verification tokens.
  • Harden social sign-in callbacks.
  • Preserve oauth callback errors.
  • Surface provider oauth errors.
  • Align seat confirmation availability.
  • Preserve seat selection through confirmation.
  • Align salon onboarding validation locales.
  • Sync salon owner locale keys.
  • Build iOS E2E app without Metro.
  • Clarify subscription management.
  • Compact service editor on phones.
  • Enlarge register terms tap target.
  • Expose nested card controls to accessibility.
  • Hydrate guest auth register prefill.
  • Make notification reads optimistic.
  • Preserve guest booking resume state.
  • Preserve guest registration resume prefill.
  • Restore branch exit and subscription sync.
  • Restore keyboard drag dismissal on form screens.
  • Restore stylist onboarding salon flows.
  • Sync external onboarding step updates.
  • Align revenuecat ios dependencies.
  • Defer diagnostics prompt until onboarding is done.
  • Initialize country state for fresh sessions.
  • Keep diagnostics prompt out of auth flows.
  • Label client note editor input.
  • Persist onboarding step changes before navigation.
  • Prefer detected phone country.
  • Require salon descriptions before continuing.
  • Stabilize async service handlers.
  • Suppress diagnostics prompt during onboarding.
  • Use stable local ids.
  • Capture auth and verification failures.
  • Capture auth and verification failures.
  • Capture handled auth and alert errors.
  • Capture security settings failures.
  • Expand request and privacy error capture.
  • Expand sentry tracing and handled capture.
  • Report verification flow failures.
  • Trace password recovery failures.
  • Trace profile completion failures.
  • Trace profile media and document failures.
  • Align e2e booking reset SQL with schema.
  • Include pending stylist invitations in enrollment summary.
  • Restore filtered seat queries.
  • Seed business hours for test salons.

Changed

  • Checkpoint local workspace changes.
  • Improve localisation.
  • Localisation improvements.
  • Localisation improvements.
  • Localisation improvements.
  • Unblock lint + mobile typecheck, safe app-url defaults, plan i18n parity.
  • Update shared package versions - @caloti/types@16.2.3.
  • Update shared package versions - @caloti/types@16.2.4.
  • Update shared package versions - @caloti/types@16.2.5.
  • Update shared package versions - @caloti/types@16.2.6.
  • Update shared package versions - @caloti/types@16.2.7.
  • Update shared package versions - @caloti/types@16.2.8 - @caloti/shared-utils@16.2.7.
  • Stabilise maestro flows, a11y labels, and auth-store formatting.

Changed

  • Choe: update shared packages.
  • Choe: update shared packages.

v1.5.0

Version 1.5.0

Released April 13, 2026

New

  • Add active location owner context.

Fixed

  • Address pr1014 review issues.
  • Harden follow-on context flows.
  • Surface branches in selectors.
  • Remove customer-facing google analytics copy.

Improved

  • Burn down salon warning debt.

v1.4.0

Version 1.4.0

Released April 13, 2026

New

  • Align preference summaries across apps.
  • Persist exact hair subtype ids.
  • Add client preference formatters.
  • Add client preference summary builder.
  • Add communication preference helper.
  • Add missing api endpoint contracts.
  • Preserve exact client hair subtypes.

Fixed

  • Improve branch setup and client details.
  • Add hours telemetry and breaks label.
  • Improve phone input and hours flow.
  • Add telemetry and clean backend build.
  • Share preference labels and log mutations.
  • Align note access gates and sync locale keys.
  • Mirror new location keys across locales.
  • Restore onboarding integration runner.
  • Address remaining location setup findings.
  • Support numeric enum error mappings.
  • Correct config and public endpoint contracts.
  • Resolve stylist owner and notes parity.
  • Unify stylist salon access checks.
  • Normalize storefront country codes.
  • Normalize storefront country codes.
  • Tighten RevenueCat purchase handling.
  • Tighten RevenueCat purchase handling.

Improved

  • Remove dead preferred times field.
  • Consume shared formatters.
  • Consume shared summary builder.
  • Use shared-utils endpoint contracts.
  • Remove stale preferences settings flow.
  • Use shared endpoint contracts for public data.
  • Use shared verify payment endpoint.

Changed

  • Update shared package versions - @caloti/shared-utils@16.2.2.
  • Update shared package versions - @caloti/shared-utils@16.2.3.
  • Update shared package versions - @caloti/shared-utils@16.2.4.
  • Update shared package versions - @caloti/shared-utils@16.2.5.
  • Update shared package versions - @caloti/shared-utils@16.2.6.
  • Update shared package versions - @caloti/types@16.2.2.
  • Reduce test noise and document integration runner.

v1.3.0

Version 1.3.0

Released April 12, 2026

New

  • Enrich third-party integrations with free-tier features.
  • Wire up Clarity events and GA4 subscription properties in business flows.

Fixed

  • Create branch locations under root salon.
  • Address location setup review findings.
  • Replace any type in syncFromPaystack with strict shape.

Improved

  • Simplify diagnostics consent prompt.
  • Migrate RevenueCat REST API from V1 to V2.
  • Simplify diagnostics consent banner.

Changed

  • Fix API version docs and remove legacy FCM_SERVER_KEY fallback.
  • Add location limit translations.

v1.2.0

Version 1.2.0

Released April 11, 2026

New

  • Add diagnostics consent and reusable salon setup.

Fixed

  • Persist language cookies consistently.
  • Prefer storefront pricing for subscriptions.
  • Use direct store quotes for subscriptions.
  • Add global expo-web-browser mock to restore HomeScreen test suite.
  • Navigate to stylist client details via Modal navigator.
  • Surface subscription load failures.
  • Align salon gating with runtime entitlements.
  • Enforce billable entitlement contracts.

Improved

  • Remove HomeScreen dead code and skip subscription fetch for clients.
  • Replace local RootStackParamList with canonical navigation types.

Changed

  • Fill missing locale keys.

v1.1.4

Version 1.1.4

Released April 11, 2026

Fixed

  • Restore public salon seats route.
  • Preserve localized request context.
  • Handle storefront currency mismatches.

v1.1.3

Version 1.1.3

Released April 10, 2026

Fixed

  • Address PR review — add Sentry Jest mock and filter active seats only.
  • Add missing public seats endpoint for booking flow.
  • Add Sentry observability to subscription screen and fix changelog URL.
  • Simplify public changelog history.

v1.1.2

Version 1.1.2

Released April 10, 2026

Fixed

  • Resolve sentry cli in eas hook.
  • Stabilize replay consent state.

v1.1.1

Version 1.1.1

Released April 10, 2026

Fixed

  • Align sentry expo builds.
  • Correlate clarity with sentry.
  • Harden clarity correlation state.

v1.1.0

Version 1.1.0

Released April 10, 2026

New

  • Add sentry and clarity monitoring.

Fixed

  • Address review feedback.
  • Align release semver and mobile store pricing.
  • Avoid heredoc parsing in release outputs.
  • Block mismatched store currencies on mobile subscriptions.
  • Cap semantic-release GitHub release body.
  • Deploy main merges without new releases.
  • Tighten client monitoring boundaries.
  • Tighten replay privacy guards.
  • Use clarity for replay only.
  • Sync dev after main merges.
  • Restrict commitlint pushes to branches.
  • Stabilize frontend linux native deps.
  • Support manual release deployment backfills.
  • Localize public changelog route.

Changed

  • Add commitlint dependencies.

v1.0.0

Version 1.0.0

Released April 9, 2026

Breaking Changes

  • Replace monolithic consolidated migration with 7 domain-specific migrations.

New

  • Api: implement missing mobile app endpoints.
  • Mobile: add Firebase Crashlytics for native crash reporting.
  • Mobile: add salon claim flow to onboarding (P1-9).
  • Mobile: add stylist clients feature and enhance existing screens.
  • Mobile: implement salon creation flow.
  • Mobile: migrate to Continuous Native Generation (CNG).
  • Mobile: upgrade to Reanimated 4.1.3 for New Architecture optimization.

Fixed

  • Api: harden registerPreUploadedImages with transaction, dedup, and correct error behavior.
  • Mobile: align launcher icon and restore type-check.
  • Mobile: block onboarding navigation while gallery images are still uploading.
  • Mobile: pass abort signal to eager gallery upload requests.
  • Mobile: register missing gallery images on partial onboarding retry.
  • Web: block onboarding Next while gallery images are uploading.
  • Web: preserve gallery URLs on step remount and block nav on upload failures.

Improved

  • Api: consolidate admin endpoints and standardize API tags.
  • Mobile: replace hardcoded emojis with Lucide icons.
  • Mobile: simplify Help & Support screen to email only.
  • Mobile: use PLAN_FEATURES from @caloti/types as single source of truth.

v0.2.0

Version 0.2.0

Released April 9, 2026

New

  • Add amenity category translations across locales.
  • Add amenity slugs to search result summaries.
  • Add mobile auth resume booking coverage.
  • Add mobile onboarding claim and salon-stylist flows.

Fixed

  • Fix locale coverage for service and favorites copy.
  • Fix review reminder parity and stale app contracts.
  • Fix role-aware subscription gates and booking parity.
  • Fix stylist onboarding submit contract and parity regressions.

Improved

  • Align search i18n with shipped locale contracts.
  • Localize profile and document account surfaces.
  • Remove translation fallbacks and isolate edge-safe locale imports.
  • Standardize web icon rendering.

v0.1.0

Version 0.1.0

Released March 28, 2026

New

  • Introduced the first coordinated mobile application release for broader internal and preview distribution.

Improved

  • Stabilized shared package synchronization and release packaging across the product surfaces.
  • General bug fixes and performance improvements.

v0.0.1

Version 0.0.1

Released December 8, 2025

New

  • Initial mobile testing release for internal distribution.