Block a user
[Task] Introduce outbox table and dispatcher for production-safe event delivery
[Task] Separate command bus from event bus
[Feature] Define typed
PlatformEvent envelope with actor, tenant, subject, resource, correlation, causation, classification, and payload
[Feature] Add regression tests for non-viable lower-level options being hidden or disabled
[Feature] Move mail/retention effective policy display onto shared policy components
[Feature] Add policy simulation before destructive/limiting changes
[Feature] Add explain endpoints and UI component contract for policy source paths
[Feature] Move delegation ceilings and "more restrictive only" validation into policy
[Feature] Move hierarchical policy evaluation into policy
[Feature] Add tenant lifecycle tests with files/mail/campaign installed and absent
[Feature] Add delete-veto orchestration through module providers
[Feature] Define tenant lifecycle events: created, suspended, resumed, deletion requested, erasure completed
[Feature] Define
TenantResolver and tenant-context protocols in the kernel
[Feature] Keep memberships and role assignments in access
[Feature] Move tenant registry, tenant settings, tenant lifecycle, tenant switching, and tenant deletion orchestration into tenancy
[Feature] Ensure core-only startup still works enough to show shell/health, but access is required for authenticated product use
[Feature] Define
PrincipalResolver and related protocols in the kernel
[Feature] Move login/session/admin access UI into access/admin module contributions
[Feature] Move access migrations into the access module migration registration
[Feature] Move access permissions and default role templates into the access manifest