feat(routing): resolve ROLE and IdP Group teams; per-alert mutes (#27, part 3) #28

Merged
KofTwentyTwo merged 1 commits from fix/team-sources-mute-scope into develop 2026-10-14 15:50:35 +00:00
1 Commits
Author SHA1 Message Date
james.maesandClaude Opus 5.5 ea5f67933a feat(routing): resolve ROLE and IdP Group teams; per-alert mutes
Team member sources ROLE and IDP_GROUP were stored but never resolved,
so only manual members were notified. A host can now register an
AlertAudienceResolver (AlertsQBitConfig.withAudienceResolver); team
expansion merges its users with manual members, de-duplicated, bounded
by maxAudienceSize, and every user still passes the visibility check.
Without a resolver those sources resolve to nobody, the router logs it
and the team screen says so.

The per-alert Mute action muted the whole alert type, and RECORD-scope
mutes never matched because no record id reached the matcher. Mute now
mutes only that alert (new ALERT scope on type + dedup key), RECORD
mutes compare the stored scopeRecordId, and "Mute this alert type" is a
separate, clearly labelled action. Changesets 21-22 add
alerts_mute.scope_record_id and widen scope_value.

Refs #27

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 10:46:38 -05:00