# Version Changes

All notable project changes are recorded here and grouped by release version.

## Rules

- Use Semantic Versioning: `MAJOR.MINOR.PATCH`.
- Add every shipped code, config, data, and operational change under its release version.
- Update this file before tagging and deploying to production.
- Release tags must match version headers (`vX.Y.Z`).

## 3.0.2 - 2026-04-09

### Added

- Checkout supports in-place address editing from each saved delivery card via a top-right pencil action.
- Delivery address cards now render responsively in checkout (1 per row on mobile, 2 on tablet, 3 on laptop/desktop).

### Changed

- Checkout add/edit address form now enforces stricter blur + submit validation with inline errors.
- Address validation now restricts address lines to English characters, trims all inputs, and blocks spam-like repeated input.
- Country, state, and city are validated as mandatory fields in both client and server flows.

### Fixed

- Resolved checkout Blade parse/runtime issues introduced during address edit wiring by moving dynamic payloads to JSON script blocks.

## 3.0.1 - 2026-04-09

### Added

- GST report now supports `Order Type` filter (`All`, `POS`, `Online`, `POS to Online`) for both screen view and CSV export.
- GST report includes `Order Type` as a dedicated column in both the admin table and CSV download.

### Changed

- Added safe `GET /logout` redirect to home to avoid method errors from direct URL access, while keeping secure `POST /logout` behavior unchanged.

## 3.0.0 - 2026-04-04

### Breaking

- **Database**: Deployments must run `php artisan migrate` through the current migration head before serving traffic. Schema changes include unified products (removal of the legacy `product_variants` model and related column moves), shipment status storage changes, order source values, offline payment and split-payment fields, and new ticket/ledger/stock-audit tables. Any external reporting or ETL that assumed pre-unification tables or old enums must be updated.
- **Roles and permissions**: New capabilities (stock audit/adjustment, tickets, and related admin features) require updated role assignments; re-run permission seeders or reconcile roles in admin after migrate.
- **Operators**: POS, orders, carriers, and payments flows gained new fields and options; train staff on offline courier payments, stock-out display, and ticket workflows.

### Added

- Support **tickets** with messages, in-app **notifications**, assignment fields, and auto-close tracking.
- **Stock audits** and **adjustments** with movements; **stock out** labeling on storefront views.
- **Day ledgers** and **ledger entries** (including cash-to-bank entry types).
- **POS**: quick amount buttons, offline payments for courier, salesman selection, validation improvements, customer clear, asset cache bump for `pos.js`.
- **Delivery reports**; dashboard **WhatsApp credits** indicator.
- **Manual carrier shipments** and carrier process-type support; **product imports** tracking table.
- Product and order enhancements: shipping days, channel visibility, offline payment + screenshot on orders, and related admin/UI surfaces.

### Changed

- Admin and storefront **UI** (tabs, mobile layout, touch targets, inventory and order screens, alerts timeout, theme/color tokens).
- Order listing and **dashboard** metrics/presentation updates.

### Fixed

- **Razorpay** capture, refund, and related payment-screen issues.
- **Roles** and access edge cases; tax add/edit behavior.
- Walk-in customer **WhatsApp** messaging; assorted POS and payment UI bugs.

## 2.0.0 - 2026-03-03

### Added

- Introduced runtime app version config via `APP_VERSION` and `config('app.version')`.
- Displayed current app version in admin footer for admin-panel users.
- Added release governance documentation and checklist for V2 live rollout.
- Added automatic version resolver (`APP_VERSION=auto`) using git tag/commit, with manual override support.
