docs: cross-reference sounds.md from voice.md + CLAUDE.md subsystem table

This commit is contained in:
Jannis Braun
2026-04-28 14:55:39 +02:00
parent 37de0feb31
commit 89b6c80031
2 changed files with 6 additions and 0 deletions
+1
View File
@@ -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 |
+5
View File
@@ -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