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.