feat(guild): add 'dm' x-type (private 1:1, always-wake)

channel enum + X_TYPES + realtime XType gain 'dm'. dm channels are
forced private (never public) and non-unique (no dedup; create()
always makes a fresh one). computeWakeup: dm wakes every non-author
participant unconditionally (no rotation / no wake_mapping). The
message.created realtime payload now carries xType so the plugin can
treat dm specially.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
h z
2026-05-18 09:18:19 +01:00
parent 7e944a08f6
commit b1f7467161
3 changed files with 15 additions and 7 deletions

View File

@@ -16,9 +16,9 @@ export class Channel {
@Column({
name: 'x_type',
type: 'enum',
enum: ['general', 'work', 'report', 'discuss', 'triage', 'custom'],
enum: ['general', 'work', 'report', 'discuss', 'triage', 'custom', 'dm'],
})
xType!: 'general' | 'work' | 'report' | 'discuss' | 'triage' | 'custom';
xType!: 'general' | 'work' | 'report' | 'discuss' | 'triage' | 'custom' | 'dm';
@Column({ type: 'varchar', length: 16, default: 'text' })
kind!: 'text' | 'announcement';