PR #254 · pramaan-io/pramaan-app · merged 2026-06-08
One careless delete orphans fourteen matters.
Active, archived, and erased clients sat in the same list.
Optimistic UI + unguarded delete = silent data loss.
The fix — Archive to shelve, never erase what's in use.
sequenceDiagram autonumber participant user as Front desk (UI) participant cache as Guest ledger (cache) participant api as Reception server (API) user->>cache: click Archive cache->>cache: flip status → archived cache->>api: POST /archive api->>api: assertContract (HR-21) api->>cache: 200 OK user->>user: router.refresh() user-->>api: Delete (in-use) api->>api: re-emit 409 pramaan.client.in_use