# Changelog

All notable changes to the Pharmacy System Starter will be documented in this file.

When tagging a new release, add a section here summarising the changes since the previous tag. This helps customer project teams understand what they're pulling in during an upstream sync.

Format: group changes under **Added**, **Changed**, **Fixed**, **Removed**, **Security** headings.

---

## [Unreleased]

### Added
- Customer project workflow documentation and init script (`git_workflow_customer_projects.md`, `init-customer-project.sh`)
- Bitbucket Pipelines CI configuration
- Health check endpoint at `/health` for Envoyer deployment verification

---

## [v1.1.0] — 2026-03-02

### Added
- Component registry with Twig component scanning, preview, and API endpoints (#122, #157, #158)
- Rate limiting on assessment, login, and registration forms (#104)
- Laravel log viewer integration (#150)
- Media manager v2 (#63)
- WebP image support (#91)
- Sitemap generator (#115)
- Vite build system replacing Webpack (#113)
- Docker setup with MailHog for local email testing (#48, #77)
- Database encryption and decryption commands (#106)
- CMS search by slug (#94)
- BMI and ethnicity assessment fields (#112)
- OTP login for mtcadmin replacing password auth (#93)
- CMS triggers for database events (#56)
- 2FA support (#73)
- Express registration flow
- Make commands for scaffolding controllers, migrations, models (#98)
- Admin order management improvements (#137)
- Reorder functionality for customers (#119)

### Changed
- Upgraded to Laravel 11, PHP 8.4, Twig 3 (#57)
- Migrated from Webpack/Mix to Vite (#113)
- CSS variables (custom properties) replacing LESS variables throughout (#58)
- Base font size updated to 16px (#68)
- Replaced jQuery Chosen with native HTML selects (#131)
- Replaced Slick/Splide sliders with Swiper (#130, #134)
- Removed dead carousel dependencies from main-app.js (#133)
- Redundant CSS removed (#132)
- Wisebee script loading optimised — only loads on relevant pages (#111)
- Twig cache handling refactored with production caching for modules/plugins (#107)
- Server response performance improvements (#149)
- Laravel cache integrated into site menu (#148)
- Setup script improvements (#102)

### Fixed
- Assessment ID preservation during checkout (#165)
- Duplicate basket addresses (#164)
- Multi-category product assessment lookup (#167)
- Duplicated function and registry file loading (#161)
- Assessment seeder referencing non-existent pharmacy (#162)
- Vite configuration — LESS loaded once via JS for HMR (#154, #160)
- JSON URL HTTPS on localhost (#156)
- Member session overwrites between patients (#83)
- Admin product sorting and duplicate display (#87)
- Partners section overflow at 1120–1456px (#65)
- Register member failing — separate member assignment (#151)
- Canonical URL on inner pages (#118)
- Member not found due to encrypted email (#97)
- Admin menu issues (#80)
- Missing address page (#138)
- Fontawesome icons not loading in admin (#120)
- Various PHP deprecation issues from PHP 8.4 upgrade (#66)

### Removed
- MoxieManager — security vulnerability (#50)
- Redundant MtcPdo code (#61)
- Unused ezine database tables

### Security
- CMS, uploadify, and asset loader security patches (#123)
- Uploads folder .htaccess to prevent PHP execution (#116)
- Input validation and security improvements (#127)

---

## [v1.0.0]

Initial release of the Pharmacy System Starter.
