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 10.10.0.

Generated 05 September 2026Contact support

v10.10.0

Version 10.10.0

Released 05 September 2026

New

  • Automatically create and deploy the normal Caloti release after a reviewed, green, same-repository dev to main promotion.
  • Add explicit current-main retry and ancestor-verified historical redeployment modes without a second authorization step for ordinary releases.

Improved

  • Verify promotion parent lineage and the authoritative main SHA before release and again at every production mutation boundary, with serialized fail-closed execution.
  • Report version, backend/migrations, frontend/health, mobile submission, and store metadata outcomes independently, including intentional blocked-target skips.

v10.9.5

Version 10.9.5

Released 05 September 2026

Fixed

  • Ensure mobile deployment evaluates after intentionally skipped server paths.

v10.9.4

Version 10.9.4

Released 05 September 2026

Fixed

  • Gate mandatory mobile deployment directly on creation of a production release.

v10.9.3

Version 10.9.3

Released 05 September 2026

Fixed

  • Ensure the mandatory mobile deployment decision reaches downstream release jobs.

v10.9.2

Version 10.9.2

Released 04 September 2026

Fixed

  • Build and submit both mobile platforms for every new production release.

v10.9.1

Version 10.9.1

Released 04 September 2026

Fixed

  • Preserve the “Caloti MCP” footer label before remote translations hydrate.

v10.9.0

Version 10.9.0

Released 04 September 2026

New

  • Publish the localized MCP connection guide in the global footer and sitemap.

Improved

  • Limit MCP guide indexing to the English and South African English canonical routes while keeping unverified client compatibility labels experimental.

v10.8.0

Version 10.8.0

Released 04 September 2026

New

  • Add the OAuth-protected, role-aware MCP endpoint for public marketplace, client, business, stylist, and private admin-support reads.
  • Add localized MCP connection guides, OAuth consent, Connected Apps, and safe admin reply drafts.

Improved

  • Harden MCP authorization, audit durability, rate limits, public-data truth, and shared-platform deployment controls.
  • Repair Sentry runtime health reporting and canonical production secret synchronization.

v10.7.5

Version 10.7.5

Released 30 August 2026

Improved

  • Maintenance updates and internal improvements.

v10.7.4

Version 10.7.4

Released 30 August 2026

Improved

  • Maintenance updates and internal improvements.

v10.7.3

Version 10.7.3

Released 30 August 2026

Fixed

  • Validate claim route UUIDs (#1392).
  • Remediate active Sentry issues (#1396).
  • Sync protected branches through pull requests (#1398).

v10.7.2

Version 10.7.2

Released 28 August 2026

Fixed

  • Promote writable production log root (#1385).

v10.7.1

Version 10.7.1

Released 28 August 2026

Fixed

  • Bound Caloti tunnel startup latency.
  • Harden Caloti fence readiness.
  • Isolate Caloti control checks from forwards.

v10.7.0

Version 10.7.0

Released 27 August 2026

New

  • Add disposable shared-target evidence profile (#1312).

Fixed

  • Bind final import target credentials.
  • Bind source database bridge to private tunnel.
  • Bind source service password file.
  • Complete final cutover readiness controls.
  • Complete fixed cutover action chain.
  • Enable fixed source database forward.
  • Generate private source tunnel config.
  • Harden Caloti fence readiness (#1359).
  • Match password file through fixed tunnel.
  • Render bounded libpq options exactly.
  • Select fixed target PostgreSQL client.
  • Use platform-native receipt modes.
  • Support disposable scheduler evidence.
  • Disable transport in disposable evidence mode (#1313).
  • Support owner mac toolchain.
  • Use fixed owner capture root.
  • Disable provider in disposable evidence mode (#1314).
  • Handle missing gallery assets safely.

v10.6.14

Version 10.6.14

Released 22 August 2026

Fixed

  • Package regular-file archives.

v10.6.13

Version 10.6.13

Released 22 August 2026

Fixed

  • Allow blocked deployment target in release contract.

Changed

  • 10.6.13.

v10.6.13

Version 10.6.13

Released 22 August 2026

Fixed

  • Allow blocked deployment target in release contract.

v10.6.12

Version 10.6.12

Released 21 August 2026

Fixed

  • Disable RNFirebase SPM on iOS.

v10.6.11

Version 10.6.11

Released 21 August 2026

Fixed

  • Increase Kotlin build heap.

v10.6.10

Version 10.6.10

Released 21 August 2026

Fixed

  • Tolerate slow backend cold starts.
  • Defer app health until deployment.

v10.6.9

Version 10.6.9

Released 21 August 2026

Fixed

  • Allow backend bootstrap to finish.
  • Allow backend bootstrap to finish (#1282).
  • Allow backend bootstrap to finish (#1283).

v10.6.8

Version 10.6.8

Released 21 August 2026

Fixed

  • Resolve legacy AMI through EC2.
  • Resolve legacy AMI through EC2 (#1279).
  • Deploy legacy AMI resolver (#1280).

v10.6.7

Version 10.6.7

Released 21 August 2026

Fixed

  • Pin retained legacy deployment region.
  • Pin retained legacy deployment region (#1277).
  • Route retained legacy deployment correctly (#1278).

v10.6.6

Version 10.6.6

Released 21 August 2026

Fixed

  • Recover af-south infrastructure bootstrap.
  • Recover af-south infrastructure bootstrap.

Changed

  • Promote af-south bootstrap recovery.

v10.6.5

Version 10.6.5

Released 21 August 2026

Fixed

  • Exclude merge commits from commitlint range.
  • Exclude merge commits from commitlint range.
  • Select CloudFormation network availability zones explicitly.
  • Select CloudFormation network availability zones explicitly.

Changed

  • Promote Caloti 10.6.4 infrastructure remediation.

v10.6.4

Version 10.6.4

Released 21 August 2026

Fixed

  • Recover terminal CloudFormation rollbacks.

v10.6.3

Version 10.6.3

Released 21 August 2026

Fixed

  • Isolate CloudFormation templates by region.

v10.6.2

Version 10.6.2

Released 21 August 2026

Fixed

  • Prevent pre-push ref pipe deadlock.
  • Prevent duplicate telemetry reports.
  • Upgrade expo sdk and harden stability telemetry.

v10.6.1

Version 10.6.1

Released 20 August 2026

Fixed

  • Bound runtime artifact peak disk.

v10.6.0

Version 10.6.0

Released 20 August 2026

New

  • Publish immutable platform artifacts.

Fixed

  • Avoid runtime artifact staging copy.
  • Keep platform dispatch within input limit.
  • Raise backend build heap limit.
  • Verify release ancestry offline.

v10.5.2

Version 10.5.2

Released 20 August 2026

Fixed

  • Raise backend build heap limit.

v10.5.1

Version 10.5.1

Released 20 August 2026

Fixed

  • Verify release ancestry offline.

v10.5.0

Version 10.5.0

Released 20 August 2026

New

  • Publish immutable platform artifacts.

v10.4.1

Version 10.4.1

Released 14 August 2026

Fixed

  • Allow reusable deployment permission ceiling.
  • Install locked Linux build bindings.
  • Provision PostgreSQL for cron contract.
  • Use recognized migration runner.
  • Make backup connection target explicit.
  • Align final shared platform contract.
  • Align shared-platform migration contract.
  • Finalize platform migration controls.

v10.4.0

Version 10.4.0

Released 13 August 2026

New

  • Initial release.
  • Add cross-platform email security flow.

Fixed

  • Continue production bootstrap without Swagger.
  • Harden contact changes and credential sessions.
  • Hash password reset requests and consume once.
  • Keep email action tokens email-bound.
  • Remove legacy client email mutation flow.
  • Isolate git context in release tooling.
  • Make PM2 deploy health checks reload-safe.
  • Recover interrupted backend artifact swaps.
  • Recover interrupted backend dependency swaps.
  • Sync frontend keys.
  • Prevent alternative search update loops.
  • Preserve safe denial telemetry context.
  • Bound public SEO reads and remove retry amplification.
  • Bind replacement verification to user and reauth.
  • Activate named throttles and disable production docs.
  • Align ReviewResponse comment field and fix workspace compilation issues.

Changed

  • Bump shared packages.
  • Bump shared packages.

v10.3.0

Version 10.3.0

Released 07 August 2026

New

  • Wire discovery preference sync and stylist context switching.
  • Track client Meta lifecycle events.
  • Use native Apple Sign-In on iOS.
  • Prioritize independent stylists.
  • Add discovery preference enums and stylist context endpoints.
  • Add native Apple Sign-In oauth endpoint.
  • Add stylist-first search contracts.
  • Export USER_DISCOVERY_PREFERENCE endpoint.
  • Add discovery preference and context fields.

Fixed

  • Address release PR review and UX findings.
  • Unblock release pre-push unit gates.
  • Clarify Android Play submission kill-switch error.
  • Use GH_PAT to enable Android production submissions.
  • Address PR 1240 review blockers.
  • Correct search criteria copy typing.
  • Complete strict country search defaults.
  • Keep SSR country defaults off the client apiClient.

Changed

  • Bump lucide-react-native from 1.21.0 to 1.27.0 (#1208).
  • Bump shared packages.
  • Bump shared packages.
  • Bump shared packages.
  • Bump shared packages.

v10.2.4

Version 10.2.4

Released 03 August 2026

Fixed

  • Accept deployed readiness contract.
  • Accept deployed readiness contract.

v10.2.3

Version 10.2.3

Released 03 August 2026

Fixed

  • Preserve standalone cache during reconciliation.
  • Preserve standalone cache during reconciliation.

v10.2.2

Version 10.2.2

Released 03 August 2026

Fixed

  • Wait for private database convergence.
  • Wait for private database convergence.

v10.2.1

Version 10.2.1

Released 03 August 2026

Fixed

  • Preserve cache security group identity.

v10.2.0

Version 10.2.0

Released 03 August 2026

New

  • Optimize data service runtime.

v10.1.7

Version 10.1.7

Released 02 August 2026

Fixed

  • Anchor EAS operations to mobile project.
  • Cache managed Android build dependencies.
  • Harden local EAS build safeguards.
  • Harden mobile release gates.
  • Increase Android build metaspace.
  • Verify large Android bundle signatures.

Improved

  • Stabilize Android Gradle cache keys.

v10.1.6

Version 10.1.6

Released 01 August 2026

Fixed

  • Avoid Cloudflare origin hairpin gate.
  • Preserve edge health rollback.

v10.1.5

Version 10.1.5

Released 01 August 2026

Fixed

  • Validate health endpoint contracts.

v10.1.4

Version 10.1.4

Released 01 August 2026

Fixed

  • Use authoritative rollout health.

v10.1.3

Version 10.1.3

Released 01 August 2026

Fixed

  • Address salon discovery review findings.
  • Resolve active Sentry regressions.
  • Scope salon discovery and reduce CloudWatch metrics.
  • Address review contract gaps.
  • Harden salon discovery and galleries.

Improved

  • Right-size production compute.

v10.1.2

Version 10.1.2

Released 31 July 2026

Fixed

  • Recognize active target iOS reviews.

v10.1.1

Version 10.1.1

Released 31 July 2026

Fixed

  • Keep lockfile versions synchronized.

v10.1.0

Version 10.1.0

Released 31 July 2026

New

  • Add soft updates and align communication UX.
  • Add shared app update contract.
  • Enforce cost-first communication delivery.
  • Prefer WhatsApp with SMS fallback.

Fixed

  • Address messaging reliability and update UX.
  • Harden production error recovery.
  • Use Metro-safe update constants.
  • Remove automatic invitation SMS contract.
  • Align reminder contracts with supported delivery.
  • Enforce strict parsers and invite links.
  • Remove unsupported paid send endpoints.
  • Remove obsolete verification fallback fields.

Changed

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

v10.0.6

Version 10.0.6

Released 29 July 2026

Fixed

  • Tolerate confirmed App Store processing outages.

v10.0.5

Version 10.0.5

Released 29 July 2026

Fixed

  • Publish Android release notes to submitted build.

v10.0.4

Version 10.0.4

Released 29 July 2026

Fixed

  • Defer App Store version creation during review.

v10.0.3

Version 10.0.3

Released 29 July 2026

Fixed

  • Terminate correction cli cleanly.

v10.0.2

Version 10.0.2

Released 29 July 2026

Fixed

  • Harden correction and price display.

v10.0.1

Version 10.0.1

Released 29 July 2026

Fixed

  • Recover missing salon countries.

v10.0.0

Version 10.0.0

Released 29 July 2026

Breaking Changes

  • Remove implicit payment currency contracts.
  • Enforce explicit mobile subscription money.
  • Service and subscription contracts now use explicit Money and pricing quotes.
  • Make subscription money contracts explicit.
  • Synchronize pricing translation keys.
  • Make plan change prices explicit money.
  • Unify service package pricing contracts.
  • Centralize service currency precision.
  • Disclose currency-scoped analytics.
  • Scope operational revenue by currency.
  • Enforce explicit service and billing money.
  • Remove obsolete budget contracts.
  • Preserve store transaction currency.
  • Remove fabricated mobile purchase endpoint.
  • Enforce explicit local and billing currencies.
  • Remove fabricated subscription products endpoint.
  • Align subscription pricing channels.
  • Make payment history money explicit.
  • Make client booking prices explicit.
  • Make search and webhook currencies explicit.
  • Make managed client spending explicit.
  • Expose analytics currencies.
  • Remove fixed-currency service templates.
  • Preserve client booking currencies.
  • Require explicit rebooking pricing.
  • Cut over local service pricing.
  • Add explicit local service pricing contracts.

New

  • Add safe Meta match diagnostics.
  • Harden Meta conversion tracking.
  • Preserve paid acquisition identifiers.
  • Cut over local service pricing.
  • Enforce explicit local and billing currencies.
  • Enforce explicit service and billing money.
  • Add explicit local service pricing contracts.
  • Add paid acquisition report rows.
  • Disclose currency-scoped analytics.
  • Make plan change prices explicit money.
  • Scope operational revenue by currency.
  • Unify service package pricing contracts.
  • Centralize service currency precision.

Fixed

  • Scope operational revenue by currency.
  • Configure Paystack country eligibility.
  • Enforce synchronized shared publishing.
  • Handle unpublished shared versions.
  • Keep shared package versions synchronized.
  • Recover shared publish after partial version bump.
  • Resume breaking shared publications.
  • Resume interrupted shared publishes.
  • Validate resumed package source.
  • Address pricing and billing review findings.
  • Address pricing cutover review findings.
  • Address pricing review findings.
  • Complete explicit money rollout.
  • Complete strict monetary consumers.
  • Complete strict pricing cutover.
  • Complete strict pricing cutover.
  • Enforce monetary integrity across workflows.
  • Harden billing and pricing flows.
  • Preserve analytics currency context.
  • Preserve client booking money.
  • Synchronize published monetary contracts.
  • Complete local pricing and billing cutover.
  • Disclose currency-scoped monetary totals.
  • Parse subscription status money contract.
  • Preserve background revenue currency.
  • Harden money and billing contracts.
  • Backfill explicit service amounts.
  • Expose salon service analytics endpoint.
  • Preserve invalid money input for validation.
  • Preserve search currency constraints.
  • Remove nonexistent stylist endpoint.
  • Scope search prices to explicit currency.
  • Standardize Meta registration value.
  • Expose analytics currencies.
  • Make managed client spending explicit.
  • Remove fabricated mobile purchase endpoint.
  • Remove fabricated subscription products endpoint.
  • Remove implicit payment currency contracts.
  • Require explicit rebooking pricing.
  • Preserve store transaction currency.
  • Align subscription pricing channels.
  • Enforce explicit mobile subscription money.
  • Make client booking prices explicit.
  • Make payment history money explicit.
  • Make search and webhook currencies explicit.
  • Make subscription money contracts explicit.
  • Preserve client booking currencies.
  • Synchronize pricing translation keys.
  • Clarify currency recovery and search controls.
  • Recover interrupted provider events.

Improved

  • Remove fixed-currency service templates.
  • Remove obsolete budget contracts.

Changed

  • 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.
  • 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.
  • Bump shared packages.
  • Bump shared packages.
  • Bump shared packages.
  • Bump shared packages.
  • Bump shared packages.
  • Bump shared packages.

v9.7.0

Version 9.7.0

Released 26 July 2026

New

  • Add nudge outcomes to support inbox.
  • Add performance leaderboard tables.
  • Add support ticket triage and user nudges.
  • Complete catalog feature instrumentation.
  • Add admin performance leaderboards.
  • Add admin performance leaderboards.
  • Add admin leaderboard contracts.
  • Add admin nudge outcome contracts.
  • Add leaderboard client retention.
  • Add support ticket and nudge contracts.
  • Clarify leaderboard detail contracts.
  • Add admin support inbox copy.

Fixed

  • Address late pull request findings.
  • Address pull request review findings.
  • Close final review race conditions.
  • Address final nudge review findings.
  • Address leaderboard review findings.
  • Exclude non-actionable outreach records.
  • Resolve final review findings.
  • Resolve final support and analytics review findings.
  • Scope analytics and candidate refreshes.
  • Preserve strict error and country contracts.
  • Render booking notification times in the salon timezone.
  • Burn sibling confirmation tokens on consume.
  • Enforce atomic start guards and remove dead notifications.
  • Guard salon-only booking races.
  • Drop false waitlist slot-available expiry countdown.
  • Keep admin support queue fresh.
  • Update booking conflict translation keys.
  • Expose salon moderation routes.
  • Re-export buildPublicBookingConfirmationActionUrl from barrel.
  • Support TypeScript 6 builds.
  • Scope conversation state by participant identity.
  • Remove unsupported Next eslint config.
  • Stabilize admin error fallback copy.

Improved

  • Use buildPublicBookingConfirmationActionUrl builder.

Changed

  • Align shared packages to 18.10.11.
  • 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.
  • Sync published package versions.
  • Sync published package versions.
  • Extend admin nudge translation contract.

v9.6.0

Version 9.6.0

Released 24 July 2026

New

  • Add booking_confirmation_requests durable state machine.
  • Automated in-app confirmation channel + concurrency-safe sweeps.
  • Canonical attendance confirm/decline transitions.
  • In-app confirmation-request initiation + client reply wiring.
  • Public one-tap attendance confirm/decline token.
  • Remember and suppress undeliverable salon-client emails.
  • Add appointment-confirmation interface strings.
  • Add client email-undeliverable badge strings.
  • Add today's-confirmations panel + reminder-action strings.
  • Confirmation delivery policy, server-reserved type, realtime event.
  • Flag undeliverable-email clients in the CRM list.
  • Interactive appointment-confirmation buttons in chat + provider actions.
  • Add confirmation-metadata timeZone + public confirm-URL helper.
  • Appointment-confirmation message type + booking-confirmation routes.
  • Add emailUndeliverable to SalonClient for the CRM badge.
  • Flag undeliverable-email clients in the CRM list.
  • Guest confirm page + appointment-confirmation UX and timezone fixes.
  • Interactive appointment-confirmation CTA + ask-to-confirm action.
  • Today's-confirmations panel with manual reminder actions.

Fixed

  • Harden appointment-confirmation reminders (authz, copy, render, deliverability).
  • Wire guest confirm token, atomic sweeps, and confirmation read fixes.
  • Override npm to 11.18.0 to pull the patched bundled tar.
  • Drop dead booking section from the subscription payment-failed email , closes #if.
  • Reframe payment-failed copy for subscriptions, not bookings , closes #if.
  • Add missing reservedMessageType error key.
  • Add Terms of Use (EULA) + privacy links to App Store descriptions.
  • Render confirmation card in salon timezone + 44pt touch targets.
  • Stop suppressing booking client notifications.
  • Guard matchMedia/connection addEventListener against non-conforming EventTargets.

Improved

  • Remove redundant /appointments write stack and dead orchestrator.
  • Remove dead welcome and reminder-queue email code.

Changed

  • Bump tailwindcss from 4.3.1 to 4.3.2 (#1195).
  • Bump shared packages.
  • Bump shared packages.
  • Bump shared packages.

v9.5.0

Version 9.5.0

Released 22 July 2026

New

  • Period-over-period trend indicators on the Metrics Summary.
  • Admin management hub — users, stylists, salons, approvals, reviews + support triage.
  • Optional previous-period trend blocks on metrics-summary tiles.

Fixed

  • Address PR #1204 review findings (Codex + 3 review agents).
  • Add missing topCitiesTitle translation key.
  • Attribute city-less people to their signup country in the cities report.
  • Fold accents in the shared city grouping key.
  • Normalize city grouping across SEO, search, and config surfaces.

Changed

  • Bump shared packages.

v9.4.0

Version 9.4.0

Released 22 July 2026

New

  • Incoming-unresolved support inbox view, metrics card, nav reorder.
  • Sortable, paginated detailed-metrics tables with country tags.

Fixed

  • Onboarding city recovery, metrics-table a11y, and review fixes.
  • Normalize and validate city names across all write paths.
  • Normalize waitlist + stylist-enrollment city matching.
  • Stop deriving city from address comma-splits.
  • Treat stale push tokens as a skip, not a delivery error.
  • Drop Singapore salons from the Johor Bahru batch and fix city casing.
  • Stop deriving city from address comma-splits in stylist onboarding.

v9.3.0

Version 9.3.0

Released 19 July 2026

New

  • Capture signup attribution and emit verified/activated CAPI events.
  • Notify clients of support messages via bell, push and email.

Fixed

  • Default an undefined request body to {} (bodyless-POST 500s).
  • Tolerate a bodyless POST /auth/refresh (undefined @Body).
  • Guard realtime emits when no WebSocket server is attached.
  • Minor bug fixes.
  • Enforce verified-contact notification eligibility everywhere.
  • Project raw User PII out of public and cross-user responses.
  • Project salon-staff and client-invitation User relations.

v9.2.0

Version 9.2.0

Released 17 July 2026

New

  • Add 24h support feedback-invite cron.
  • Add one-time support feedback broadcast script.
  • Add SupportMessagingService send-as-support entry point.
  • Add unread support-message email/SMS fallback cron.
  • Customer support in-app messaging channel (backend).
  • Support-channel migrations and user columns.
  • Admin-initiated support threads and admin messaging parity.
  • Add admin Support Inbox tab.
  • Admin metrics screens and first-class admin navigation.
  • Add admin Support Inbox route + nav.
  • Add ConversationType.SUPPORT and SUPPORT_EMAIL constant.

Fixed

  • Use --ignore-scripts on backend staging sharp and tooling installs.
  • Add bounce return-path, verify-email spam guidance, and a mailbox audit tool.
  • Close support-thread IDOR/PII gaps and harden support jobs.
  • Exempt admins from the phone-capture gate.

Changed

  • Bump shared packages.

v9.1.0

Version 9.1.0

Released 17 July 2026

New

  • 410 for purged salons, per-country default tab, location-aware search.
  • Drop Verified badge and add 30-day New badge across web and mobile.
  • Add server-side client tag filter to managed-clients lists.
  • Salon search falls back to saved-address coords on denied permission.
  • Provenance categories, Cities/Countries admin metrics + seed purge.
  • Add new-badge window, SearchDefaultTab and isNew fields + ci consumer type-check gate.
  • Add Salon.isNew, staff isNew, salon status endpoint; drop dead seo isVerified.
  • Salon provenance + geo analytics contracts + purge endpoint.

Fixed

  • Address PR #1200 review — clamp acos 500s, scope services/categories, search UX.
  • Compute review and payment stats from server aggregates, not one page.
  • Copy all nest-cli assets in the tsc build fallback, not just templates.
  • Stage backend deps and build so a deploy never mutates the live tree.
  • Salon-owner getStaffMembers returns bare StaffMember array not catalog.
  • SearchServices reads paginated items envelope; getServiceCategories is string[].

Changed

v9.0.0

Version 9.0.0

Released 16 July 2026

Breaking Changes

  • Subscription_features loses the upgradeMessage column.

New

  • Serve the client tag catalog salon-wide so every tag is filterable.
  • Add a role filter to Detailed Metrics and the north-star bookings card.
  • Add analytics role scoping and the north-star bookings tile.
  • Add the salon-wide client tag catalog endpoints.
  • Serve top spenders with the salon client stats.
  • Shared previous-salon validation, role-key source of truth, location-scoped stats.
  • Paginate the managed-clients list so every client is reachable.

Fixed

  • Canonicalize service rejection handling.
  • Classify user-facing service failures.
  • Harden cross-platform workflows and observability.
  • Route onboarding remediation by messageKey so it works in every locale.
  • 503 mid-query connection losses, split upstream from DB outage group.
  • Cause-title Sentry captures, serve 503 on DB outages, warn on webhook probes.
  • Classify Twilio 21408 as permanent and keep phone numbers out of comms log titles.
  • Keep emails, phone numbers, IPs and street addresses out of log titles.
  • Keep PII and unbounded causes out of Sentry log titles.
  • Reconcile admin counts, stop retrying dead cards, drop shadowed routes.
  • Stop recipient bounces raising Sentry errors, and stop re-bouncing them.
  • Stop reinstalling node_modules under the live backend during seeding.
  • Attribute cron heartbeats to their deploy environment.
  • Block READ_MEDIA_IMAGES/VIDEO from the Android manifest.
  • Guard openSettings calls, salt message grouping, match remediation by messageKey.
  • Make Sentry source-map upload deterministic and verifiable.
  • Route every settings affordance through guarded, user-visible failure paths.
  • Route expected failures through classified logging, not error-level Sentry.
  • Stop the notification-badge poll surfacing as unhandled rejections.
  • Surface real badge-poll failures and share-sheet errors instead of going dark.
  • Close the UX review gaps on managed clients and admin reports.
  • Restore Sentry signal on pricing-load and trending-discovery failures.
  • Scope owner client stats to the active branch and drop stale walk-in pools.
  • Serve managed-client stats from the whole book, not the fetched page.
  • Stop expected rejections reaching Sentry and close the previous-salon validation holes.
  • Stop the clients list claiming it holds every client.

Improved

  • Consume the shared analytics role keys and previous-salon predicate.
  • Delete the dead hooks carrying the page-in-query-key shape.
  • Drop the dead subscription_features.upgradeMessage column.
  • Delete orphaned review service methods and stale references.

Changed

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

v8.0.0

Version 8.0.0

Released 15 July 2026

Breaking Changes

  • PlanFeatureValue no longer has upgradeMessage/upgradeMessageKey,.

New

  • Rebuild admin metrics as Metrics Summary and Detailed Metrics.
  • Monitor cron liveness via CloudWatch heartbeats.
  • Keep the admin console English-only instead of gating locales on it.
  • Translate the last two customer-facing keys into all locales.
  • Add Sentry-independent uptime check for the web app.
  • Add client data export to reach parity with web.
  • Add admin metrics summary contracts and all-countries analytics scope.
  • Add the canonical CSV serializer.

Fixed

  • Drop the dead index declaration for the removed services table.
  • Drop the dead index declaration for the removed services table.
  • Exclude admins from the referral report's user counts.
  • Map Staff Scheduling to the surface that actually emits usage.
  • Restore the zero-downtime reload and drain on shutdown.
  • Restore the zero-downtime reload and drain on shutdown.
  • Withhold cron heartbeats when the job itself fails.
  • Stop the migration guard refuting markers with its own prose.
  • Stop the migration guard refuting markers with its own prose.
  • Drop the stale @xmldom/xmldom override.
  • Patch js-yaml and excon advisories.
  • Converge the web CSV neutraliser so exports match mobile.
  • Humanize the referral attribution labels.
  • Repair wrong-script strings and guard against the whole class.
  • Rescue the Traditional Chinese mis-filed as Twi into zh-Hant.
  • Append client pages instead of replacing the list.
  • Localize location-search and update-recovery alerts.
  • Show a loading state on the salon-owner clients list.
  • Stop mislabelling RevenueCat failures as PRODUCT_NOT_FOUND.
  • Stop mislabelling RevenueCat failures as PRODUCT_NOT_FOUND.
  • Stop the clients list blanking, lying, and truncating silently.
  • Neutralise CSV formula injection in exports.

Improved

  • Cut span ingestion to fit the Sentry span quota.
  • Index the per-client booking lookup behind the metrics summary.

Improved

  • Collapse every CSV export onto the shared serializer.
  • Drop the dead upgrade statics from callers, seeds and locales.
  • Finish removing upgradeMessage, and fix the review findings.
  • Remove the dead upgradeMessage statics from the plan catalog.

Changed

  • Bump shared packages.
  • Bump shared packages.
  • Bump shared packages.
  • Update mobile react-navigation and react-hooks lint plugin.
  • Stop ESLint crawling compiled iOS app bundles.

v7.0.0

Version 7.0.0

Released 14 July 2026

Breaking Changes

  • Consume canonical SalonService from @caloti/types 17.
  • @caloti/types no longer exports Service; use SalonService.
  • The services table and legacy Service entity are gone;.

New

  • Emit service_viewed and availability_checked funnel steps.
  • Add Sentry cron monitors for business-critical schedulers.
  • Expose the salon IANA timezone on availability responses.
  • Repoint service foreign keys at the canonical salon_services table.
  • Stream backend and web SSR logs to Sentry Logs.
  • Wire CloudWatch alarms to SNS email notifications.
  • Surface search prices, top services, and live filter facets.
  • Add batched, timezone-aware provider availability probing.
  • Normalize caught errors into low-cardinality analytics codes.

Fixed

  • Address PR #1188 review findings.
  • Repair legacy-table reads, broken sorts, and guest seat availability.
  • Stop expected feature-limit 403s flooding Sentry; gate mobile add-location.
  • Unshadow the public seat-availability route; exclude soft-deleted salons; guard currency.
  • Add availability retry affordance and distinguish service chips.
  • Stop misreporting discovery outages as market absence; align dashboard refresh.
  • Repair public booking funnel.
  • Scope availability to the selected canonical service.
  • Stop dashboard pull-to-refresh leaking unhandled rejections.
  • Stop search service tests loading the navigator module graph.
  • Surface failures from fire-and-forget booking, chat, and review actions.
  • Quote raw-SQL aliases in public discoverability predicates.
  • Classify CMS post and OG-image routes as localized public paths.
  • Degrade SEO discovery fetch failures instead of failing SSR.
  • Repair newsletter email links, root og:image, waitlist route, and auth resilience.

Improved

  • Consolidate availability probing on the shared timezone-aware walk.
  • Materialize the directory city aggregation.

Improved

  • Delete the dead legacy salon-service CRUD surface.
  • Move search, seo, and admin readers off the legacy Service model.
  • Remove dead CloudWatch logging code.
  • Route backend traces to Sentry only, drop X-Ray collector.
  • Remove the legacy Service model entirely.
  • Consume canonical SalonService from @caloti/types 17.
  • Remove the legacy Service interface.

Changed

  • Bump shared packages.
  • Bump shared packages.
  • Bump shared packages.
  • Bump shared packages.
  • Tear down dead CloudWatch logging estate.

v6.3.0

Version 6.3.0

Released 13 July 2026

New

  • Add executive analytics dashboard.
  • Add executive dashboard contracts.

Fixed

  • Address dashboard review findings.
  • Secure public salon staff catalogs.
  • Validate public salon staff catalogs.
  • Add privacy-safe salon staff contract.
  • Model revenue trends by currency.
  • Associate form labels with controls.

Changed

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

v6.2.1

Version 6.2.1

Released 12 July 2026

Fixed

  • Address PR #1186 bot review — search double-count, role attribution.
  • Carry role dims on funnel events and tag internal traffic.
  • Close feature_used coverage gaps across 7 surfaces.
  • Close onboarding step-event boundary gaps.
  • Count auto-executed and cross-screen guest searches.
  • Exclude marketing-tracking params from search intent.
  • Unify the favorites feature_used extra as favorited.
  • Stop logger unit tests shipping entries to prod CloudWatch.
  • Surface GA4 Measurement Protocol disabled state at warn in production.
  • Align change-password rules and checklists with the canonical password rule.
  • Remove /register dead-click traps and fix registration_started semantics.
  • Localize corrected password copy and prune stale password keys.
  • Address PR #1186 review — popular-search chips, analytics param parity.
  • Align validationSchemas.password to the canonical rule.
  • Drop legacy isStrongPassword; public stylist endpoints in createStylistService.
  • Address PR #1186 review — dead-click labels, toast, password polish.

Changed

  • Bump shared packages.
  • Bump shared packages.

v6.2.0

Version 6.2.0

Released 10 July 2026

New

  • Brand the shared email layout with the Caloti logo.
  • Make sharing the hero of the booking-page-live email.

Fixed

  • De-spam the booking-page-live email subject in all locales.
  • Point salon go-live CTA at the dashboard share panel.
  • Add SALON_OWNER_DASHBOARD action path + builder.
  • Guard auth token storage writes against missing localStorage.
  • Stop the language switcher 404ing on app routes.
  • Survive missing or locked-down browser storage.

Changed

  • Bump shared packages.

v6.1.1

Version 6.1.1

Released 10 July 2026

Fixed

  • Import LocalizationModule into SalonModule so SalonStaffService boots.

v6.1.0

Version 6.1.0

Released 10 July 2026

New

  • Fall back to localized SMS when a WhatsApp language is unapproved.
  • Localize account and auth emails; fix block-aware eq helper.
  • Localize all SMS notifications by recipient language.
  • Localize booking emails with reusable emailCopy infrastructure.
  • Localize invitation and approval emails; remove dead templates.
  • Localize payment, review, launch-waitlist emails and layout footer.
  • Localize salon-owner and business emails.
  • Make WhatsApp template selection language-aware with English fallback.
  • Notify providers when their booking page goes live.
  • Add provider booking-link share card.
  • Surface live availability on provider profiles.
  • Add provider booking-link and share-message builders.
  • Add provider booking-link share panel.
  • Surface live availability on provider profiles.

Fixed

  • Add missing waitlist notification copy keys to en.json.
  • Address PR review — go-live ordering, in-app locale, availability timezone, comms copy.
  • Consolidate per-language WhatsApp SIDs into one JSON var.
  • Address PR review — weekly-hours i18n key, dark-mode card, share dedup, skeletons.
  • Address PR review — availability probing, deep-link fallback, share panel parity, a11y.

Improved

  • Reuse shared buildProviderShareMessage in booking-page-live email.
  • Consolidate provider availability types; drop dead share builder.
  • Consume shared availability types; drop removed share builder.

Changed

  • Bump shared packages.
  • Bump shared packages.
  • Translate email and waitlist notification keys into all 34 locales.
  • Translate remaining UI keys into all 34 locales.
  • Translate SMS and notification keys into all 34 locales.

v6.0.0

Version 6.0.0

Released 08 July 2026

Breaking Changes

  • VerificationType.IDENTITY and BadgeType.VERIFIED_IDENTITY.

Fixed

  • Resolve latent bugs from sentry-pattern sweep.
  • Per-request sentry isolation and logger metadata plumbing.
  • Pass oauth provider error detail through to sso-callback telemetry.
  • Recipient-failure classification and deliverability surfacing.
  • Classify revenuecat network errors and gate generic error reporting.
  • Exempt enhanced-error.service from its own captureError lint rule.
  • Reapply salon-stylist step exclusion on flow resume.
  • Messaging-service support, country gate, and twilio error classification.
  • Suppress indexeddb unload-race noise in offline indicator.

Improved

  • Denormalize publicly-listable filter for directory insights.

Improved

  • Remove identity-verification from profile service, DTOs, and admin-documents sync.
  • Lint-guard and reroute error captures through categorized reporting.
  • Remove dormant identity-verification enum values.
  • Remove identity-verification UI and orphaned StylistDocumentReview.
  • Lazy-init offline queue indexeddb only for authenticated users.

Changed

  • Data-cleanup migration for identity-verification records.

v5.0.0

Version 5.0.0

Released 07 July 2026

Breaking Changes

  • Staff client endpoints (POST /bookings/staff/create and /salon-owner/clients*,.

New

  • Consume shared CLARITY_EVENTS catalog on web + mobile.
  • Salon-scoped client book decoupled from platform accounts.
  • Add CLARITY_EVENTS smart-event catalog + ClarityEventName type.
  • Locale-aware OG link-preview banners for home, stylists and salon-owners.

Fixed

  • Address PR review — review_requests re-point, archive authz, recoverability, parity.
  • Drop misleading subscription bullets from stylist work-arrangement cards.
  • Restore stylist-onboarding salon search and GET /salons filter contract.
  • Scope stale-sync metric to provider-backed subs and stamp lastSyncedAt on sync.
  • Emit booking_completed Clarity event on booking success.
  • Emit fb:app_id OG meta tag, wired from SSO_FACEBOOK_APP_ID at deploy.
  • Init Clarity and Meta Pixel via Script onReady; map ad_Storage from marketing consent.
  • Reduce onboarding and verification friction.

Improved

  • Use shared geo coordinate guards in map components.
  • Centralize finite-coordinate guards in geo.

Changed

  • Bump shared packages.
  • Bump shared packages.

v4.23.0

Version 4.23.0

Released 05 July 2026

New

  • Aggregate platform subscription revenue in dashboard.
  • Record accepting user on salon-owner invitations.
  • Claim salon-owner booking invites via social signup.
  • Resume invited-client booking after signup.
  • Register action URL carries redirect and split name prefills.
  • Register action URL carries the inviting salon name.

Fixed

  • Report handled non-blocking failures at warn, not error.
  • Collapse email-retry logging to one descriptive final-attempt error.
  • Don't retry or over-report permanent email hard-bounces.
  • Guard missing recipients in waitlist email + free-plan expiration.
  • Log best-effort side-effect failures at warn, not error.
  • Make unconfirmed-owner alert idempotent + mark failed push reminders.
  • Persist per-step markers on auto-approved onboarding.
  • Skip booking reminders/alerts with no recipient to stop retry storms.
  • Stop reporting expected access-denied 403s to Sentry.
  • Skip 2-hour email reminder when client has no email.
  • Prune orphaned admin keys and translate new keys.
  • Guard search map against non-finite salon coordinates.
  • Recognize map camera-cancellation nested in the error cause.
  • Stop reporting expected handled API errors to Sentry.
  • Collect stylist phone during onboarding for phone-less accounts.
  • Drop third-party crawler salon-SEO transient errors from Sentry.
  • Guard Google Maps against non-finite coordinates.
  • Stop reporting expected handled 4xx (403/404/429) to Sentry.

Improved

  • Remove unused minRiskLevel users filter.
  • Return a messageKey for the stylist-not-approved error.
  • Remove unused minRiskLevel from AdminUserFilters.

Changed

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

v4.22.0

Version 4.22.0

Released 02 July 2026

New

  • Last-7-day KPI cards, drop Risk column, fix onboarding count.
  • Record client-invitation join attribution at registration.
  • Add shared resolveOptionalTranslation helper.
  • Regenerate translation-keys union and add isClientInvitationToken.
  • Add clientInvitationToken to register request contract.

Fixed

  • Backfill onboarding step markers for isOnboarded users.
  • Review fixes for admin users and dashboard (PR 1176).
  • Write completion markers on submission and claim approvals.
  • Write per-step onboarding markers on non-wizard completion paths.
  • Harden client-invitation claim and bind authed accepts.
  • Relocate mis-nested i18n fallback subtrees to canonical paths.
  • Accessible KPI trend badges and Revenue prior-7d baseline.
  • Remove dead gtag paths, consent page_view double-count, stylists badge.
  • Remove legacy GA4 gtag bootstrap that multi-counted page_views.

Improved

  • Consume shared isClientInvitationToken on web and mobile.
  • Consume shared resolveOptionalTranslation from @caloti/shared-utils.
  • Remove dead availabilityPreview and socialSharing duplicates.
  • Remove duplicated errors.onboarding UI subtrees.

Changed

  • Bump shared packages.
  • Bump shared packages.
  • Bump shared packages.
  • Drop stale jest coverage globs and committed lint dumps.

v4.21.0

Version 4.21.0

Released 30 June 2026

New

  • Add a resend cooldown to the verify-email banner.
  • Catch mistyped email domains across more web forms.
  • Nudge unverified users to verify email and catch signup typos.
  • Preserve links and structure in plaintext emails.
  • Add shared suggestEmailCorrection email-typo helper.

Fixed

  • Address PR review for the verify-email + plaintext work.
  • Skip redundant build-time type-check/lint on the deploy server.

Improved

  • Consume shared suggestEmailCorrection, drop local copies.

Changed

  • Bump shared packages.

v4.20.0

Version 4.20.0

Released 30 June 2026

New

  • Add referral_step taxonomy and JoinedVia attribution enum.
  • Emit referral invite_initiated on web and mobile.
  • Emit referral_step server-side and persist join attribution.
  • Instrument guest acquisition journeys.
  • Persist feature usage activation state.
  • Track subscription lifecycle in GA4.
  • Wire subscription lifecycle tracking wrappers.
  • Capture phone at SSO signup before onboarding.
  • Add feature usage analytics endpoint.
  • Add guest journey analytics taxonomy.
  • Add subscription lifecycle analytics events.

Fixed

  • Address PR #1168 review findings (upload transcode, throttling, UX).
  • Harden public salon SEO and map camera handling.
  • Mount guest-journey landing tracker in the root layout.
  • Exempt cacheable public SEO reads from per-IP throttling.
  • Skip unseeded amenity slugs instead of failing salon onboarding.
  • Tolerate reference-data and pricing gaps instead of failing.
  • Nest stylist schedule daysShort under the canonical i18n path.
  • Require country selection in SSO signup completion.
  • Transcode HEIC document and identity uploads to JPEG.
  • Upload verification documents as verification_document type.
  • Support iOS HEIC avatar uploads and align webp contract.
  • Upload review images via the working /upload endpoint.
  • Degrade gracefully when SEO directory fetches fail (SSR).
  • Transcode HEIC/webp document and identity uploads to JPEG.

Changed

  • Bump eslint-plugin-react-hooks to 7.1.1.
  • Bump shared packages.
  • Bump shared packages.
  • Bump shared packages.
  • Bump shared packages.
  • Bump shared packages.
  • Remove dead cache-manager dependencies from node-api.
  • Upgrade @react-native-firebase suite to 25.1.0.
  • Upgrade redis to 6 and connect-redis to 9 in node-api.
  • Remove dead messaging upload methods.
  • Remove orphaned UPLOAD_REVIEW_IMAGE endpoint.

v4.19.1

Version 4.19.1

Released 28 June 2026

Fixed

  • Forward GA4 event parameters via the gtag arguments queue.
  • Relax password rule to letter+digit and drop Sentry 4xx noise.
  • Atomically swap frontend node_modules on deploy to kill the SSR 500 race.
  • Pass --ignore-scripts to frontend native-binding installs.
  • Resolve stylist schedule daysShort and correct weekday abbreviations.
  • Translate relaxed password copy across all locales.
  • Deliver must create the App Store version (eas submit only uploads the binary).
  • Guard external-link opens and silence the expected onboarding 404.
  • Prevent public salon-detail 502s and ride out transient SSR fetch failures.
  • Mark test salons publicly listable for directory e2e.
  • Stop double-firing GA4 events from the analytics layer.

Improved

  • Skip redundant store screenshot uploads + clickable changelog link.
  • Halve Sentry trace sample rates to curb span quota.
  • Denormalize salon listability off the directory-insights hot path.

v4.19.0

Version 4.19.0

Released 27 June 2026

New

  • Comprehensive web feature-usage tracking (feature_used).
  • Instrument mobile onboarding funnel + feature usage.
  • Instrument pricing-entitlement features for activation.
  • Instrument web onboarding-step funnel events.
  • Shared onboarding-step + feature-usage event taxonomy.
  • Smarter login/signup error recovery + mobile header quick-login.
  • Curated What's New highlights for feature releases (Apple 2.3.12).
  • Hands-off store release — auto-release iOS + Android production rollout.
  • Localize 19 iOS locales + wire store publish/submit into release CI.
  • Rewrite store descriptions for all locales (verified reviews, salons & stylists).
  • Author J21 support + J22 settings journeys (web + mobile).

Fixed

  • Accept string step ids in onboarding event builder.
  • Compute real averageRating in salon-owner analytics.
  • Compute real totalBookings/totalReviews in getProfileStats.
  • Correct booking confirmation-code validation; +branch coverage.
  • Restore 404 for budget-ranges unknown country; align e2e harness.
  • Return 404 + messageKey for unknown budget-ranges and geolocation country codes.
  • Emphasize "salons & stylists"; localized screenshots + CI publish.
  • Add testid and aria-label to message send button.
  • Route /onboarding/welcome, /invited, /debug through (app) not 404.
  • Salons & stylists + verified-reviews copy across all node-api locales.
  • Collapse pressable cards/rows to single accessible elements.
  • Correct Bengali locale code + harden store-publish CI per review.
  • Make guest Account join-as buttons properly accessible.
  • Make StaffCard inner action buttons individually accessible.
  • Preserve auth 401 error metadata so login/register recovery prompts fire.
  • Resolve caloti:// invitation deep links without leading slash.
  • Resolve slash-less custom-scheme booking/messages deep-link intents.
  • Submit_review submits only (screenshots pushed by push_metadata).
  • Theme-aware search type tabs for dark-mode contrast.
  • Translate offline sync-failed Alert strings.
  • Deep-link salon open for J01/J02 (autocomplete behind keyboard).
  • Modal-safe keyboard dismiss in J04 onboarding step 2.
  • Re-foreground warm app between mobile setup and recording.
  • Record J14 employed-stylist invitation via HTTPS deep link.
  • Reliable taps for J01/J02/J14/J17 remaining flows.
  • Tolerate +-prefixed dialCode in phone normalizers.
  • A11y color contrast on stylist portfolio avatar initials , closes #c63f05 #f9ece6.
  • Mobile cookie-banner touch target + e2e suite hygiene.
  • Onboarding prompt owns post-booking navigation on a client's first booking.
  • Stop emitting GTM purchase events for direct-to-salon bookings.

Improved

  • Drop dead staff-schedule types; emit stylist analytics view.
  • Consolidate duplicated getSalonTimeZone into shared resolver.
  • Reuse client summary mapper for managed stylist clients.
  • Remove orphaned clients.workspace.labels.birthday/referralSource keys.
  • Remove unused SearchScreen quick-filter/discovery dead code.

Changed

  • Bump shared packages.
  • Bump shared packages.
  • Bump shared packages.
  • Bump shared packages.
  • Disallow private app routes in robots + redirect /market.
  • Mobile recording fixes — fling-momentum, recorder self-heal, seeds, flows.

v4.18.1

Version 4.18.1

Released 25 June 2026

Fixed

  • Complete Meta CAPI user_data (event_source_url + hashed name/country).
  • Fire canonical sign_up on all registration paths, drop legacy user_registered (#1162).

v4.18.0

Version 4.18.0

Released 25 June 2026

New

  • Mirror salon duplicate-detection to the mobile create flow.
  • Warn salon owners about duplicate listings before creating.

Fixed

  • Make the frontend deploy zero-downtime.
  • Make guest-account professional signup buttons E2E-tappable.
  • Address salon duplicate-detection review feedback.
  • Soften salon-owner create copy and surface the claim path.

Improved

  • Remove 13 orphaned components with no production callsites.
  • Remove two more orphaned components.

Changed

  • Translate salon-owner onboarding copy and duplicate notice.

v4.17.0

Version 4.17.0

Released 25 June 2026

New

  • Default salon owners to creating a new salon, demote claim.
  • Improve onboarding stepper and scope the work-arrangement note.

Fixed

  • Make Sentry dSYM upload non-fatal in EAS builds.
  • Address PR #1157 review feedback.
  • Address review feedback on responsive onboarding/dashboard.
  • Make onboarding and dashboard layouts responsive on mobile.
  • Show a single mobile menu on dashboard routes.

Improved

  • Generalize DashboardShell and adopt it in the admin layout.
  • Remove dead ValidatedBookingFlow component.

Changed

  • Upgrade OpenTelemetry SDK to 2.x.
  • Bump otel-collector to 0.154.0.

v4.16.0

Version 4.16.0

Released 24 June 2026

New

  • Forward fbp/fbc to Meta CAPI and set Subscribe event_source_url.
  • Forward Meta _fbp/_fbc and add Google Consent Mode v2.
  • Restyle mobile app-install banner and localize copy.

Fixed

  • Address PR #1155 review findings.
  • Accept optional fallback email in OAuth exchange DTO.
  • Inject Meta Conversions API secrets into backend runtime env.
  • Apply privacy consent to Firebase Analytics and Crashlytics.
  • 44px carousel arrows and non-overflowing search sort row on mobile.
  • Build production with webpack instead of Turbopack.
  • Eliminate dead clicks on SSO buttons and onboarding nav.
  • Guard Web Storage access against SecurityError.
  • Make /stylists/search filters a mobile disclosure.
  • Prevent iOS zoom on country search + cover admin drawer with tests.

Improved

  • Standardize admin CRUD list pagination envelope.

Changed

  • Patch-bump iOS build gems for security advisories.
  • Pin multer to ^2.2.0 to patch upload DoS advisories.
  • Remove dead code and clear unused-vars lint warnings.

v4.15.0

Version 4.15.0

Released 24 June 2026

New

  • Add wysiwyg editor and improve user management.
  • Add onboarding steps tracking and filters.
  • Add email to OAuthExchangeRequest.
  • Implement onboarding and SSO layout improvements.

Fixed

  • Gracefully handle missing email on SSO and progressNotFound.
  • Handle missing email on Apple SSO gracefully.
  • Resolve deployment ts check failure and bump shared package versions.
  • Use pending deep link intent role on guest account creation.
  • Address 404 boundaries and enhance onboarding form consistency.
  • Improve mobile-friendliness of high-traffic surfaces.
  • Make modals, admin dashboard, and owner actions mobile-friendly (Tier 2/3).
  • Prevent lost input in client onboarding services step.
  • Return countries array from paginated admin endpoint.

Changed

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

v4.14.0

Version 4.14.0

Released 23 June 2026

New

  • Add wysiwyg editor and improve user management (#1153).

v4.13.0

Version 4.13.0

Released 21 June 2026

New

  • Add file upload support for CMS Post cover images.
  • Enhance CMS post editor with tiptap modal and resolve lint issues.
  • Implement full-screen Dialog for categories and fix hydration and TS errors.
  • Implement stacked card layout for mobile user management and moderation queue badges.
  • Add email update flow, interstitial welcome screen, and fix various issues.

Fixed

  • Address PR 1146 subagent review feedback.
  • Update e2e tests for new welcome interstitial screen.
  • Fire Meta CAPI server events regardless of client consent.
  • Resolve Sentry OAuth noise and missing country free plan crashes.
  • Add set -x to debug pm2 start.
  • Drop port-3000 build test that collides with live PM2 cluster.
  • Fix next.js bin path in pm2 ecosystem and prevent logs hang.
  • Prevent pm2 start from triggering set -e termination.
  • Deduplicate expo-font and remove unused @expo/config-plugins.
  • Fix typescript error by adding missing imports.
  • Stabilize admin user management tests.
  • Stabilize playwright and mobile tests, add UX improvements.
  • Update maestro flows for welcome interstitial.
  • Handle welcome interstitial UI, suspense hydration errors, and node-api lint errors.
  • Ignore .next/ in eslint config to prevent read failures on dynamically cleaned chunks.
  • Expose login validation error title to alerts and update lucide icons.
  • Resolve all mobile lint errors and apply zero-tolerance policy.
  • Resolve e2e test failures for independent stylists and real-time availability.
  • Resolve e2e test failures for independent stylists and real-time availability (#1138).
  • Resolve login-validation and logout E2E failures.
  • Refactor derived state in PhoneVerification.
  • Finish unit test fixes and configuration cleanup.
  • Resolve admin-users mock and timer bleed, add missing translation key.
  • Resolve timer mock bleed in booking analytics tests using process.nextTick.
  • Align fetchUsers function signature.
  • Externalize server-only packages for Turbopack runtime resolution.
  • Resolve missing brand icons after lucide upgrade.
  • Stop reporting expected IndexedDB-unavailable failures to Sentry.

Improved

  • Enforce strict TS 6.0 and zero legacy policy.
  • Convert derived state from effect to render phase.

Changed

  • Fix mobile eas build image to latest.
  • Upgrade container and runtime base images to Node 26.
  • Upgrade Node.js to v26 across all environments.
  • Upgrade typescript to v6.0 and mobile to Expo SDK 56.
  • Sync lucide-react version to match lockfile to fix CI.

Changed

  • Fix jest test setup, sync translations, and resolve authStore linting errors.
  • Fix remaining eslint issues.
  • Save uncommitted changes before PR.
  • Update package-lock.json after merges.
  • Update shared packages.
  • Update shared packages.
  • Update shared packages.
  • Bump shared packages.
  • Resolve expo-font duplicate and cleanup zod override.
  • Merge fix/eas-build-image into dev.
  • Resolve conflicts from subagent branches.
  • Resolve conflicts in fix/post-pr-review-issues using dev versions.
  • Promote react-hooks rules to error and suppress existing violations.

Changed

  • Automated PR: subagent-Mobile-E2E-Specialist-self-04a1a6cc (#1142).
  • Automated PR: update-admin-users-e2e-coverage (#1140).

v4.12.0

Version 4.12.0

Released 18 June 2026

New

  • Cosmetic polish and search redesign.

Fixed

  • Address PR #1131 review comments.
  • Resolve failing unit tests and update UI styling.
  • Ux and architecture fixes for search screen, fix all tests.

Changed

  • Formatting fixes.

v4.11.1

Version 4.11.1

Released 17 June 2026

Fixed

  • Address PR review findings.
  • Auth UX polish — SSO heading, role-above-SSO, tab-aware search, dividers.
  • Mobile stylist search dedup + PhoneInput focus polish.
  • Fire sign_up on the SSO callback authenticated branch for new users.

Improved

  • Zero-downtime backend deploy via pm2 cluster reload.

Changed

v4.11.0

Version 4.11.0

Released 17 June 2026

New

  • Show SSO options above the login/register forms.

Fixed

  • Tighten focus state and a11y on the auth + search changes.
  • Fire sign_up on SSO signup so Google/SSO registrations are tracked.
  • Remove redundant stylist search box; outline main search box in brand orange on focus.
  • Scope main search box focus outline to the text input only.

v4.10.0

Version 4.10.0

Released 17 June 2026

New

  • Track signup funnel analytics events for GA4 parity.
  • Add serviceCategory to city waitlist request and entry.
  • Notify clients when salons and independent stylists go live.
  • Add provider acquisition CTAs to content and locations pages.
  • Reduce registration friction with role-skip and country auto-detect.
  • Scope launch-waitlist signups to the browsed service category.

Fixed

  • Clear the bottom tab bar on tab screens; gallery a11y label.
  • Launch-waitlist UX — filter pill, tab-bar clearance, category capture.
  • Category-aware launch alert copy and honest email CTA.
  • Correct launch category source and make per-type dedupe atomic.
  • Empty-state notify i18n params + waitlist modal a11y.
  • Make the empty-state notify CTA an accessible button.
  • Remove stray focus outline on the search box and outline-none utilities.

Improved

  • Defer GTM and lazy-load the mobile app banner to improve LCP.

Changed

  • Bump shared packages.

v4.9.0

Version 4.9.0

Released 17 June 2026

New

  • Lock the frontend origin to Cloudflare and serve an Origin Certificate.

v4.8.0

Version 4.8.0

Released 16 June 2026

New

  • Front the frontend with an ALB + regional AWS WAF.
  • Add provider acquisition CTA to location pages.
  • Add registration funnel + activation analytics events.
  • Reduce registration friction.

Fixed

  • Drop redundant public security-group ingress (3000/3001/5432).
  • Deploy Meta Pixel ID to production frontend build.
  • Drop deploy smoke-check Sentry noise (cold-start salon 5xx).
  • Filter iOS WKWebView in-app-browser Sentry noise.
  • Keep the sticky mobile CTA clear of the cookie-consent banner.

Improved

  • Protect the edge with Cloudflare instead of an ALB.

Changed

  • Remove superseded marketing hero fallback keys (zero-legacy).

v4.7.0

Version 4.7.0

Released 15 June 2026

New

  • Add Meta Conversions API for server-side conversion tracking.
  • Add consent-gated Meta Pixel for ad conversion tracking.
  • Compact bottom consent bar to stop burying landing content.
  • Forward dedup event_id and marketing consent for Meta CAPI.
  • Redesign stylist & salon-owner landing pages, mobile-first.

Fixed

  • Log transient socket connect errors at warn, not error.
  • Address a11y review findings on the marketing landing redesign , closes #c63f05.
  • Correct SEO response statuses for dead salons and "-N" directory URLs.
  • Drop Facebook in-app-WebView "Java object is gone" Sentry noise.
  • Make Button focus-visible ring actually render under Tailwind v4 , closes #c63f05.
  • Register brand palette in @theme so opacity/variant utilities render #c63f05 #c63f05 #212121 #c63f05.
  • Stack bottom bars above the consent bar; defensive button wrap.

Improved

  • Single consent gate in metaTrack, drop redundant check.

Changed

  • Add "stylist, not a machine" ad + profile banner assets.

v4.6.1

Version 4.6.1

Released 12 June 2026

Fixed

  • Address PR 1117 agent review findings.
  • Give solo stylists access to salon waitlist management.
  • Update social handles to @BookCaloti and centralize social links , closes #TheCalotiWay #BookCaloti.
  • Address PR 1117 review feedback on purge gating and waitlist docs.
  • Attribute reviews to stylists and support solo virtual salons.
  • Make the e2e recording-fixture purge complete and opt-in.
  • Return decimal columns as numbers via column transformers.
  • Keep npm output out of captured shared publish versions.
  • Resolve react-hooks lint warnings without behavior changes.
  • Skip un-routable cities in directory link lists.

v4.6.0

Version 4.6.0

Released 08 June 2026

New

  • Drive notification badge from realtime websocket events.
  • Present foreground push as a local notification banner.

Fixed

  • Exclude canonical fixture slugs when deactivating orphan stylists.
  • Keep solo client access for a stylist with a pending salon enrollment.
  • Make SMS opt-in by default for new notification preferences.
  • Re-activate provisional stylist row on enrollment approval.
  • Skip WhatsApp in the generic notification channel fan-out.
  • Lift salon-card favorite-button out of the card-press wrapper.
  • Align web recording slugs to the youtube manifest journey ids.
  • Pre-warm web/16 + web/19 routes so beat 1 renders content.
  • Preserve VFR dwells in mobile postprocess; extend J11/J17 flows.
  • Re-record web/14 ending on the stylist dashboard workspace.
  • Target the resolved API origin in the J03 rebook seed.
  • Drop unroutable directory entries before they crash SSR.
  • Normalize navigator.language before passing to Intl APIs.
  • Skip un-routable locations in discovery resolver scans.
  • Skip un-slugifiable city names in directory routes and sitemap.

Improved

  • Dispatch FCM notifications concurrently via sendEach.

Changed

  • Track CLAUDE.md at canonical case and ignore the local youtube pipeline.
  • Clean fixture data (names, emails, salon images) for recordings.
  • Give seeded stylist fixtures a believable bio + locale.
  • Harden J03 capture flow (first-tap settle + b3 details dwell).
  • J11/j15 flow updates for stable capture.
  • Make recording emails read like what a real user types.
  • Mobile recording fixes — 7-day hours, clean fixtures, robust taps.
  • Purge orphan fixtures + finish clean-data sweep for recordings.
  • Rebuild J03 mobile flow in beat order + completed-booking seed.
  • Tighten web/16 add-service pacing and add pipeline prompt.

v4.5.1

Version 4.5.1

Released 30 May 2026

Fixed

  • Dismiss the decimal keypad in the add-service modal.
  • Dismiss the onboarding keyboard off the Next button on iOS.
  • Drag-dismiss the keyboard on the provider location step (iOS).
  • Expose booking-card controls to the iOS accessibility tree.
  • Expose client-card and conversation-row content to the iOS a11y tree.
  • Expose modal/picker rows to a11y and keep onboarding keyboard down.
  • Keep onboarding footer above the keyboard, dismiss on form collapse.
  • Keyboard navigation for the client onboarding/address forms.
  • Resume the booking after guest signup instead of landing on Home.
  • Use public stylist API for guest profile + booking target.
  • Give seeded solo stylists a virtual salon so they can add services.
  • Point the stylist-invitation seed at the API's database.
  • Cut Sentry noise and stabilize recording-path UX.
  • Treat denied geolocation as a warning, not a Sentry error.

Improved

  • Index directory-insights query paths to clear slow DB query alerts.

Changed

  • Adapt J16 solo-stylist recording flow for iOS.
  • Add J11 iOS owner-operating-setup split flows.
  • Add work-in-progress J04 iOS onboarding flow.
  • Add work-in-progress J09 iOS owner-claim flow.
  • Align J15 stylist-bookings flow to the seed.
  • Complete web recording pass with perceptible pacing.
  • Dismiss add-service keypad and harden J16 sections.
  • Document iOS test-mode build path + adapt mobile flows.
  • Pre-warm mobile recorder to drop the iOS cold-launch lead-in.
  • Re-record J01 in the true web order (book -> auth -> resume).
  • Record J01 guest-discovery signup booking on iOS.
  • Record J03 iOS (client rebook + booking details).
  • Record J04 post-booking onboarding on iOS.
  • Record J05 iOS (client review management).
  • Record J06 iOS (client booking waitlist).
  • Record J07 iOS (client favorites).
  • Record J08 owner create-salon onboarding on iOS.
  • Record J09 owner-claim on iOS + self-contained seed pipeline.
  • Record J10 iOS (owner manage bookings/clients/staff/services).
  • Record J11 iOS (owner operating setup).
  • Record J12 iOS (owner analytics gate + subscription).
  • Record J13 solo-stylist onboarding on iOS.
  • Record J14 employed-stylist invitation on iOS (17/17 mobile done).
  • Record J15/J16 iOS flows and document root causes.
  • Record J17 iOS (growth/retention/subscription).
  • Rework J02 stylist segment for iOS + mobile VFR postprocess.
  • Scaffold J14 employed-stylist invitation flow (blocked).

v4.5.0

Version 4.5.0

Released 26 May 2026

New

  • Expose admin search-indexing endpoints.

Fixed

  • Add admin feature management endpoints.
  • Add salon approval email cta.
  • Align seat creation salon contract.
  • Allow local automated signup retries.
  • Include salon owners in pending approvals.
  • Keep automated signups low risk.
  • Use styled generic booking notification emails.
  • Localize waitlist card copy.
  • Normalize saved salon responses.
  • Run hooks with posix shell.
  • Add branch location translations.
  • Add service package tutorial copy.
  • Align Android React host bootstrap.
  • Align service package contract.
  • Avoid duplicate dashboard verification prompts.
  • Expose solo stylist public profile.
  • Expose stylist portfolio management.
  • Include salon id in review submissions.
  • Keep seat add action visible.
  • Keep signup submit action reachable.
  • Preserve invitation deep links during onboarding.
  • Remove duplicate stylist verification prompt.
  • Resolve Android Hermes compiler path.
  • Sync search type toggle with results.
  • Validate canonical send types.
  • Send service package items contract.
  • Hide duplicate client review actions.
  • Show clients their pending reviews.
  • Align tutorial service category picker.
  • Dismiss keyboard in stylist onboarding flow.
  • End claim tutorial on review state.
  • Handle Android location permission wording.
  • Isolate mobile e2e database setup.
  • Provide app url for mobile e2e backend.
  • Remove invalid await in mobile browse tests.
  • Stabilize employed stylist invitation onboarding.
  • Stabilize mobile rebooking fixtures.
  • Stabilize owner management tutorial recording.
  • Stabilize stylist onboarding tutorial recording.
  • Stabilize web client onboarding recording.
  • Use active country for mobile client signup.
  • Address recording follow-up issues.
  • Allow local dev image optimization.
  • Preserve filled skeleton image dimensions.
  • Refresh admin claim approval counts.
  • Render managed bookings routes.
  • Suppress review timestamp hydration drift.
  • Tune portfolio grid image loading.

Improved

  • Address review findings on admin feature CRUD.

Changed

  • Merge origin dev.
  • Bump shared packages.
  • Add regeneration workflow.

v4.4.0

Version 4.4.0

Released 24 May 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 18 May 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 18 May 2026

Fixed

  • Render directory landing routes dynamically.

v4.3.4

Version 4.3.4

Released 17 May 2026

Fixed

  • Generate lint-valid network security config.

v4.3.3

Version 4.3.3

Released 17 May 2026

Fixed

  • Merge dev launch cleanup.

v4.3.2

Version 4.3.2

Released 14 May 2026

Fixed

  • Tighten crawl controls and indexnow drain.

v4.3.1

Version 4.3.1

Released 14 May 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 13 May 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 11 May 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 05 May 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 04 May 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 04 May 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 29 April 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 28 April 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 25 April 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 25 April 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 24 April 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 24 April 2026

Fixed

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

Changed

Changed

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

v2.3.7

Version 2.3.7

Released 24 April 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 23 April 2026

Fixed

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

v2.3.5

Version 2.3.5

Released 23 April 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

v2.3.4

Version 2.3.4

Released 23 April 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 22 April 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 22 April 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

v2.3.1

Version 2.3.1

Released 22 April 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

v2.3.0

Version 2.3.0

Released 21 April 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

v2.2.1

Version 2.2.1

Released 20 April 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

v2.2.0

Version 2.2.0

Released 20 April 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

v2.1.4

Version 2.1.4

Released 20 April 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 20 April 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 19 April 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 19 April 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 19 April 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

v2.0.0

Version 2.0.0

Released 19 April 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 18 April 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 18 April 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 18 April 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 16 April 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

v1.7.1

Version 1.7.1

Released 15 April 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 15 April 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/[email protected] - @caloti/[email protected].
  • Remove dead declarations, silence false-positive alt-text.
  • Remove unused imports and fix prettier formatting.

v1.6.0

Version 1.6.0

Released 14 April 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/[email protected].
  • Update shared package versions - @caloti/[email protected].
  • Update shared package versions - @caloti/[email protected].
  • Update shared package versions - @caloti/[email protected].
  • Update shared package versions - @caloti/[email protected].
  • Update shared package versions - @caloti/[email protected] - @caloti/[email protected].
  • 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 13 April 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 13 April 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

v1.3.0

Version 1.3.0

Released 12 April 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 11 April 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 11 April 2026

Fixed

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

v1.1.3

Version 1.1.3

Released 10 April 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 10 April 2026

Fixed

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

v1.1.1

Version 1.1.1

Released 10 April 2026

Fixed

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

v1.1.0

Version 1.1.0

Released 10 April 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 09 April 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 09 April 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 28 March 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 08 December 2025

New

  • Initial mobile testing release for internal distribution.
Caloti Product Updates