PR #270 · pramaan-io/pramaan-app · merged 2026-06-09
When a single delete breaks twelve matters
Picture a firm with two hundred active cases and no central place for label hygiene.
The obvious fix is the one that breaks production.
The fix — A label can only be deleted when nothing depends on it — the page enforces that end to end.
sequenceDiagram autonumber participant ui as Settings UI participant hook as Generated Hook participant gate as Gateway + Zod participant be as Backend ui->>hook: open settings, list labels hook->>gate: fetch via /participant-labels gate->>be: validate + canDelete check gate->>gate: canDelete=false → swap to archive be-->>ui: archive → optimistic list flip