# WBMCZ — upload to the live server
## Everything from today's two batches · 07 Sep 2026

**8 files. No database change in either batch** — `activitmigration.php` already
covers everything these need.

Upload in this order. `includes/` holds the shared code the `admin/` screens
call, so a screen that arrives before its engine shows "undefined function" for
the minute in between.

---

## STEP 1 · includes/ — 3 files

| Size | File | What changed |
|---:|---|---|
| 44,916 | `includes/acl.php` | the `users.purge` permission |
| 72,331 | `includes/pipeline.php` | Pending KYC holds free + subscribed |
| 9,262 | `includes/admin_list.php` | **Reset no longer widens the list** |

## STEP 2 · admin/includes/ — 3 files

| Size | File | What changed |
|---:|---|---|
| 56,955 | `admin/includes/sidebar.php` | the frozen header row, shared by every page |
| 190,820 | `admin/includes/user_list_engine.php` | permanent delete · state & district · the new filter bar · frozen header |
| 153,378 | `admin/includes/product_engine.php` | frozen columns and frozen header |

## STEP 3 · admin/ — 2 files

| Size | File | What changed |
|---:|---|---|
| 53,963 | `admin/activity_task.php` | the step-row scrollbar, and the Free / Subscribed badge |
| 72,435 | `admin/staff.php` | removing staff now soft-deletes |

---

## AFTER UPLOADING

Check each file's size on the server against the table above — a half-uploaded
PHP file is the one failure that looks like a code bug.

Then, signed in as admin:

1. **Custom Roles** → tick **Erase a deleted account for good** (`users.purge`)
   for anybody who should have it. Nobody holds it until you grant it.
2. **User page → Reset** → the count must stay at your customer total, not jump
   to every user. That is the fix that mattered most.
3. Any user list → scroll down (header stays) and right (tick box and name stay).
4. **Activity & Task** → unchanged, with its own scrollbar on the step row.

---

## IF THE 05–07 SEPTEMBER WORK IS NOT ON THE SERVER YET

Then these 8 are not enough on their own — use **`FILE_LIST_2026_09_07.md`**
(92 files) instead, and run `activitmigration.php` once afterwards.

Eight sizes in that list are now out of date. Use these instead:

    44,916   includes/acl.php                       (was 44,857)
    72,331   includes/pipeline.php                  (was 71,674)
     9,262   includes/admin_list.php                (was not on the list at all)
    56,955   admin/includes/sidebar.php             (was 53,620)
   190,820   admin/includes/user_list_engine.php    (was 183,258)
   153,378   admin/includes/product_engine.php      (was 151,870)
    53,963   admin/activity_task.php                (was 52,589)
    72,435   admin/staff.php                        (was 71,195)

`includes/admin_list.php` is the one genuinely new name — it was unchanged when
that list was written and has changed since, so it is easy to miss.

---

## THE NOTES FOR EACH BATCH

    DEPLOY_2026_09_07_six_fixes.md              permanent delete, staff delete,
                                                Pending KYC, scrollbar,
                                                state/district, frozen columns
    DEPLOY_2026_09_07b_freeze_and_filters.md    frozen header row, the filter bar,
                                                the Reset fix

Documentation only — nothing to upload.
