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 paramsc/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)andvariantId (m)against the new collections before mapping.
- Old flow:
Added
- Pagination ✅ Second 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 bothc(catalogueId) andm(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 recorddateStart/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.