Skip to main content
Version: 1.0.0

Changelog

All notable changes to ARShades will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Commit IDs are included for reference to the corresponding changes in the repo.


[1.6.1] - 2025-07-29

Fixed

  • Post-refactor bug fixes (11a2ef5)
    Addressed regressions discovered after the model refactor (navigation edge cases, stale cache reads, and UI state sync on warm starts). Stability restored across Try-On, Catalogue, and Notifications.

[1.6.0] - 2025-07-15

Added

  • Release packaging (6cb51d5)
    Prepared and published a new version following the data-model migration and pagination rollout.

Changed

  • Pagination tuning
    Finalized default page size (30 items) and cursor handling for catalogue product feeds.

[1.5.2] - 2025-07-14

Fixed

  • App Clip session bug (12a1618)
    Corrected session lifecycle in App Clip (token refresh + first-open attribution), ensuring accurate analytics and consistent “Open in App” prompts.

[1.5.1] - 2025-07-13

Changed

  • App Clip updates (e5e8db2)
    Brought the Clip in line with the new data flow (deep-link params c/m, minimal fetch path, and single-product Try-On).

[1.5.0] - 2025-07-03

Changed

  • Major refactor to new data structure (83037bf) ✅ Most important
    • Old flow:
      AppConfig → Brand → Linea → Taglia → Modello
    • New flow:
      AppConfig → Catalogues → CatalogueProducts (line now a tag) → CatalogueVariants (size now a map)
    • Introduced a mapping layer that translates the new Firestore schema back to the legacy domain objects (Brand, Linea, Taglia, Modello) so the rest of the app continues to work without large UI rewrites.
    • Updated deep-link hydration to resolve catalogueId (c) and variantId (m) against the new collections before mapping.

Added

  • PaginationSecond most important
    • Implemented cursor-based pagination for catalogue product feeds.
    • Default page size: 30; supports start(afterDocument:) when available.
    • Improves first contentful render and memory usage in Try-On carousels.

Changed

  • Sessions updated to new structure
    • Session docs and timers aligned with the new catalogue/product/variant model.
    • More granular fields for start/end, deeplink attribution, and per-catalogue counters.

[1.4.0] - 2025-07-02

Changed

  • Read catalogues instead of brands (d7cc79a)
    Boot sequence now uses AppConfig → Catalogues; Brands view is populated from catalogues (plus any Realm-learned catalogues discovered via deep links).

Changed

  • Rename session fields for product and variant (bc5d7d2)
    Updated session schema keys to match the new data structure and analytics conventions.

Migration Notes (for developers)

  • Data access
    Use the Catalogue → Products → Variants path for all reads. When calling existing UI code expecting legacy models, pass objects through the mapping layer.

  • Deep links
    Ensure both c (catalogueId) and m (variantId) are resolved via the new collections before building the mapped domain objects used by Try-On.

  • Pagination
    When extending lists, always request 30 items per page and carry the Firestore cursor (last document) between calls.

  • Sessions
    Use the updated session helpers to record dateStart/dateEnd, deeplink attribution, and per-catalogue counters. App Clip and full app now share consistent semantics.


[Unreleased]

  • Performance profiling on cold-start hydration.
  • Additional resiliency around offline cache + retry for USDZ downloads.