From 89b6c800319da894b44cf1bffec55da8261a8ffd Mon Sep 17 00:00:00 2001 From: Jannis Braun <151788261+TheZwiss@users.noreply.github.com> Date: Tue, 28 Apr 2026 14:55:39 +0200 Subject: [PATCH] docs: cross-reference sounds.md from voice.md + CLAUDE.md subsystem table --- CLAUDE.md | 1 + docs/systems/voice.md | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/CLAUDE.md b/CLAUDE.md index 9356c5f9..6664a32f 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -149,6 +149,7 @@ Before modifying any subsystem, read its spec from `docs/systems/`. After making | [dm-system.md](docs/systems/dm-system.md) | DM lifecycle (1-on-1 + group), soft-close/reopen, ownership transfer, federation relay, deterministic federatedId, system messages | DM features, group DM management, DM federation | | [spaces.md](docs/systems/spaces.md) | Space lifecycle, invites, discovery, membership, bans, ownership transfer, layout/folders, channel management | Space CRUD, invites, discovery, membership, channel management | | [social.md](docs/systems/social.md) | Friend requests, friendships, mutuals, user discovery, friend relay, socialStore cross-instance loading | Friends, social graph, user discovery, mutual calculations | +| [sounds.md](docs/systems/sounds.md) | System-sound inventory: every file in `packages/web/public/sounds/` mapped to its event + audience, viewer-detection data-channel protocol, message-sound filter, settings hooks | Any sound-effect change, viewer-tracking work, message-sound semantics | | [admin.md](docs/systems/admin.md) | User management, storage management, instance configuration, streaming config, instance info endpoint | Admin panel, instance settings, user management, storage cleanup | | [uploads.md](docs/systems/uploads.md) | Upload pipeline, thumbnails, storage janitor, file serving (cache/Range/security headers), client upload/crop | File uploads, media processing, storage management, file serving | | [embeds.md](docs/systems/embeds.md) | URL extraction, embed classification, provider handling, OG scraping, SSRF protection, image probing, client renderers | Embed/link preview features, metadata fetching, SSRF policy | diff --git a/docs/systems/voice.md b/docs/systems/voice.md index ddf6fd11..a0991c28 100644 --- a/docs/systems/voice.md +++ b/docs/systems/voice.md @@ -143,6 +143,11 @@ The `SoundController` uses `isSelf(id)` which checks against BOTH `currentUser.i **Disconnect teardown:** `roomRef` is set to `null` before calling `destroyRoom()`. This prevents `ParticipantDisconnected` events (fired during teardown) from triggering `updateParticipants`, which would cause `user_leave` sounds for departing participants alongside the disconnect sound. +**Sound effects.** The full system-sound inventory and trigger map lives in +`docs/systems/sounds.md`. This includes the `stream_watch` data-channel +protocol used for viewer detection (mirroring the existing `deafen` +data-channel ping receiver in `handleDataReceived`). + --- ## Voice Moderation