# Proposal: Varslingssystem ## Konsept Når noe skjer som angår deg — ny samtale, ny melding, ny oppgave, noen nevner deg — får du et varsel. Varsler er noder i grafen, ikke en separat mekanisme. ## Varsling som noder ``` node_kind: 'notification' metadata: { type: "added_to_conversation", actor_id: "vegard-uuid", target_id: "redaksjonen-uuid", seen: false } belongs_to → din person-node ``` Fordeler: - Varsler er søkbare, filtrerbare, arkiverbare - Samme PG NOTIFY → WebSocket-pipeline som alt annet - Ingen ny infrastruktur ## Trigger-hendelser | Hendelse | Varsel | |----------|--------| | Lagt til i samtale | "Vegard la deg til i Redaksjonen" | | Nevnt i melding (@Trond) | "Vegard nevnte deg i Redaksjonen" | | Ny melding i samtale (valgfritt) | "3 nye meldinger i Redaksjonen" | | Tildelt oppgave | "Vegard tildelte deg: Fiks lyden" | | Innsendt artikkel behandlet | "Artikkelen din ble godkjent" | | Orkestrering fullført | "Transkribering ferdig" | ## Leveringskanaler Samme varsel kan leveres via flere kanaler: - **WebSocket → toast i appen** (alltid, sanntid) - **Ulest-badge i Mine ting** (alltid) - **Epost** (konfigurerbart per bruker i metadata.preferences) - **Lyd-ping** (konfigurerbart) Brukerens preferanser styrer hva som trigger epost vs bare in-app varsel. Default: alt in-app, epost kun for direkte nevnelser og invitasjoner. ## Visning Varsler vises som: - Klokke-ikon i header med ulest-teller - Dropdown med siste varsler - Klikk → naviger til relevant kontekst - "Marker alle som lest" Kan også være et panel i arbeidsflaten ("Varsler"-trait) for de som vil ha det synlig. ## Ikke-forstyrrende - Ingen popup-vinduer, ingen blokkerende dialoger - Toast forsvinner etter 5 sekunder - Bruker velger selv hva som sender epost - "Ikke forstyrr"-modus per arbeidsflate ## Implementering 1. `notification`-node-type i maskinrommet 2. Trigger-logikk i vaktmesteren (ved edge-opprettelse, melding, etc.) 3. Frontend: toast-komponent + varsler-dropdown i header 4. `synops-notify` CLI finnes allerede — utvid med notification-noder 5. Epost-varsling via eksisterende `synops-mail --send`