PATCH=LAUNDRY_STAGE_TO_TEST1_PROMOTION
DATE=2026-09-15
SOURCE=stage-posmobile.mylaundry.online
TARGET=test1.mylaundry.online
TARGET_DATABASE=mylaundry26_test1_live
PURPOSE=Promote Stage-certified laundry backend/API/work-board safeguards to Test1 while preserving Test1 mobile-app additions already reconciled into Stage.
FILES=16
MIGRATION=YES
ROUTES_CHANGED=NO
ZATCA_CHANGED=NO
ACCOUNTING_FORMULAS_CHANGED=NO

INCLUDES:
- Mobile API Safety Core: ticket idempotency, duplicate-delivery protection, delivery locking.
- Mobile Contract 1.1: branch/context, optional client/product pagination, service filter.
- Strict ticket readiness/state validation and Ready WhatsApp hook.
- Work Board: partial-delivery/delivered filters and invoice reprint links.
- Test1 improvements already merged into Stage: Mline update channel, default_payment, mobile delivery receipt fix, System Admin provision verification.
- Clean-client default master data source: قطعة + فئه1.
- Client release command for future certified promotions.

PRESERVES:
- Existing Test1 APK/update files.
- Test1 environment and credentials.
- Existing Test1 data.

SAFETY:
- Exact CLIENT_BASELINE_SHA256SUMS from uploaded test1.mylaundry.online15-09-2026.zip.
- Promotion aborts if any targeted Test1 file changed since that snapshot.
- File + DB backup before deploy; rollback on post-deploy failure.
