feat(gateway): capture NSFW/age-restricted messages but skip AI analysis + exclude from public archive

Previously isAgeRestrictedMessage() early-returned in messageCreate/messageUpdate,
so NSFW-channel messages were never stored at all. Now they are captured like
any message (visible in dashboard), while the existing age-restricted skip path
(queueMessageAnalysis -> buildAgeRestrictedSkipResult) marks them clean with flag
age_restricted WITHOUT calling the LLM.

NSFW content is also deliberately kept OUT of the Qdrant public semantic-search
archive (archiveMessageEmbedded skips when isAgeRestricted), so it can't be found
via public web search. No schema change needed (metadata already carries channel.nsfw).
This commit is contained in:
asepharyana
2026-08-30 20:19:34 +07:00
committed by asepharyana
parent 50967f6481
commit 441b5282ef
@@ -45,6 +45,10 @@ di dashboard), tetapi **tidak dianalisis AI** (tidak dipanggil LLM).
dengan flag age_restricted, dan TIDAK ada panggilan LLM (log llm-caller tidak
menampilkan id pesan NSFW).
## Status
- Request 1: DONE & DEPLOYED (commit 50967f64, CI green, gateway restart 20:17 WIB).
- Request 2 (video): dicatat, belum dikerjakan — lihat section di bawah.
## Request 2 (video) — NOT in this change
Fitur record video kamera/screenshare orang lain. @discordjs/voice hanya
mendukung **audio** receive. Video orang lain butuh WebRTC viewer baru