- createRole() now calls api.rolePermissions.save() on creation so the
role survives a page refresh (was only in local state before)
- UserModal now renders custom roles from savedPermissions context
alongside the system role buttons
- mapRole() passes custom_* role keys through unchanged
- handleSave falls back to u.role for custom roles (no backendRoleMap entry)
- Table badge handles missing ROLE_META entry for custom roles
- DB migration 082: removes users.role CHECK constraint so custom role
keys can be stored in the users table
- Backend POST/PATCH: allow custom_* roles through role allowlist checks
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>