AuthCleanupDeps Dependencies for the cleanup helpers.
inheritance
log
Loggeraudit
Bound audit emitter. cleanup_expired_role_grant_offers writes via
audit.emit_pool (the captured pool + config + listener chain), so
one slot covers both row persistence and SSE/WS fan-out. Required —
production wiring always has a bound emitter on AppDeps.audit, and
tests that need a no-op pass create_test_audit_emitter().