# Rollback Point — Yard Onboarding (New Process)

If the **entire new yard-onboarding process** needs to be undone, roll back
everything after the safe baseline below. This does NOT touch the earlier
Wheels America / Spalding / OEM work or anything else — only the new registry +
UI + commands.

## Safe baseline (state BEFORE any new-process work)
```
ee2a677a  Strip dev details from the PAMS Operations SOP
```
Everything from `ee2a677a` and earlier is unrelated to this effort and must stay.

## New-process commits (revert these to roll back fully)
Newest first. Add each new commit here as it lands.

| Commit | What |
|--------|------|
| e9cdbc55 | UX: tabbed layout — Summary / Locations / Yard Users (combined relation-manager tabs; GpsSubUser cross-conn model) |
| bee00e01 | UX: actionable phased stepper (progress bar, dots, Next banner, inline actions, list progress bar) |
| 12fcea98 | Create Test Orders (shipdev orders, GPS-only) + Create Yard Accounts (external sub-users + location mapping) buttons; +2 checklist items |
| 881cebc8 | Location address + create GPS ship-from location on save (writes shipdev.ship_from_locations, saves gps_location_id) |
| 9fca40bd | Allow adding locations on the yard View page (relation manager isReadOnly=false) |
| 4cc177e4 | Create GPS Account button — writes login user + API credential + webhook to shipdev, shows one-time password |
| 7f6bf0e9 | Suppress global order-items injection on our pages only (scoped render hook; orders untouched) |

**Note:** `4cc177e4` WRITES to the GPS production DB (shipdev) when Ops clicks
Create GPS Account. Rolling back removes the button/code, not any accounts
already created in GPS.
| 5181507c | UI restructure: yard-first (name+email), locations via relation manager, code/name auto from supplier, always-exclusive |
| 1c7e8d09 | Automation: GpsProvisioner + UI buttons (resolve/sync/verify/reset) + gps:auto-onboard command + error tracking |
| 1c6bf62d | Commands: gps:resolve / gps:sync / gps:verify (+ shipdev connection) |
| 0b976414 | Onboarding UI (Filament resource + IT checklist) |
| 09f3abe1 | Yard onboarding registry (additive overlay) — tables, GpsRegistry, provider, read-overlays |

**Uncommitted:** the cron schedule line in `app/Console/Kernel.php`
(`gps:auto-onboard` every 5 min) is live in the working tree but NOT committed —
that file carries another session's in-progress scheduling work. Decide whether
to commit it as-is (pollutes this feature's rollback) or land it separately.
With the registry empty the cron is a no-op ("No pending yards").

(To collapse into one "yard registry" commit before the migration commit:
`git reset --soft 09f3abe1^` then re-commit — all three are contiguous, mine,
unpushed. Or revert the range `09f3abe1^..HEAD` to roll back.)

## How to roll back everything (one shot)
```bash
git revert --no-commit ee2a677a..HEAD
git commit -m "Roll back new yard-onboarding process"
```
(Or, since the registry is additive/inert with an empty registry, simply leaving
it in place is already a no-op for existing yards — rollback is only needed to
remove the tables/UI entirely.)

## Safety note
The registry is an **additive overlay**: with `gps_warehouses` empty, every
integration point is a verified no-op (config = 33 warehouses, hash
`d760eedd3d42b1cb7d7e76d423dfef50`). So even un-reverted, it does not affect
existing yards.
