Dings: sender-instrument earcons per motif, stock sounds when no manifest #36

Closed
void wants to merge 3 commits from void/dings-hook into main

2026-11-09

Void
dings tests: pin the path guard, prototype names, pick volume, array senders
Some checks failed
Build pull request / Build pull request (pull_request) Failing after 3m43s
Soul's surviving mutants: dropped dot-segment guard, hasOwnProperty dropped in readClips,
pickDing volume constant, isRecord without the array check. The `in` + `{}` pair is
equivalent (a prototype name resolves to a non-clip, so neutral applies either way).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-09 10:48:28 +00:00
Void
dings: play them for messages and invites, stock sound when no manifest
Some checks failed
Build pull request / Build pull request (pull_request) Failing after 3m11s
MessageNotifications and InviteNotifications ask useDings; with no dings/manifest.json
the stock notification sounds are untouched. public/dings is copied into the build.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-09 10:36:18 +00:00
Void
dings: the decision of which earcon plays, with tests
Sender picks the instrument, event picks the motif: own clip, else neutral, else
silence; mentions and DMs loud, messages quiet; manifest read defensively; no audio
before the first user gesture. The test was written first and failed on the missing
module.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-09 10:36:18 +00:00