RELEASE HISTORY

upgrade-path.php identifies a store's version by inspecting it — looking for
the files and database columns that only exist once a release has been
applied. It never trusts a stored version number, so the answer always
reflects the store as it actually is.

  1.0  Base catalog
       The store as originally built.

  1.1  Location SEO + image pipeline
       Dynamic location pages that describe the store's own trade, hardened
       image route with a fallback when GD is unavailable, and Image Settings
       finally wired to the storefront.
       Markers: app/routes/image-routes.php, app/routes/location-seo-routes.php

  1.2  Dual login + catalog controls
       Separate client and Inway logins with roles, the Login Details screen,
       bcrypt passwords, tax/GST toggle, hide-all-prices, currency dropdown.
       Markers: app/routes/account-routes.php, user_tbl.role,
                setting.currency_code

  1.3  Ordering + product colours
       Drag-and-drop ordering for products and categories, per-product card
       colours, bulk actions.
       Markers: app/routes/reorder-routes.php, products.sort_order,
                products.pc_title_color


ADDING YOUR OWN RELEASES
------------------------
The RELEASES table sits at the top of upgrade-path.php. When you ship
something new to Q2, add an entry naming it and listing a marker or two that
prove it is present — a file it adds, or a column it needs.

The upgrade path is calculated from that table, so nothing else needs
changing.

If you would rather version by your own feature milestones than by mine, just
replace the entries. The mechanism is the same.
