Add a configurable Zeron sound signature - #320
Conversation
CI diagnosisThe failing This PR does not modify the browser fixture, browser implementation, appearance system, or backdrop code; its UI change is confined to sound notification state/settings. I built and ran the exact macOS browser fixture from the unchanged PR head locally. Two consecutive full runs passed, including the assertion that failed in Actions and all subsequent blur validation. That makes this an intermittent fixture/CI failure rather than a regression introduced by this PR. Provenance: the assertion was introduced in I attempted to rerun the failed GitHub job, but GitHub rejected it with |
|
@gaelcado where do these sounds come from? Were they programmatically generated, or sourced from somewhere? If they're sourced, we need an attribution |
wingleeio
left a comment
There was a problem hiding this comment.
Looks good. The per-event preferences preserve the master mute, notification baselines consume suppressed events, and attention requests are coalesced. Verified all 861 UI tests pass with current main, targeted formatting passes, and the synthesis scripts reproduce the committed audio exactly. The failed macOS browser check has been rerun. The documented integration with #216 still needs to preserve its Appshot playback path.
wingleeio
left a comment
There was a problem hiding this comment.
Rechecked after #216 merged. The sound overlap is resolved, preserving native Appshot playback and its independent preference alongside completion, input and attention sounds. The published tree matches the integration tested locally: all 901 UI tests passed, and targeted formatting is clean. The original failed macOS check also passed on rerun; fresh CI is running for this integrated revision.
Summary
ZERON_DISABLE_SOUNDas the global overrideListen
These immutable CDN links open in a browser’s native audio player without forcing a download:
All four are stereo, 48 kHz, 16-bit PCM WAV files at deliberately quiet peaks. The complete audition set is documented under
docs/sound-design/auditions/.Behavior
AwaitingInputErroredOfflineorReconnectingPlayback uses exclusive temporary-file creation, avoids PowerShell path interpolation, and retains Zeron dependency-free platform path:
afplayon macOS,Media.SoundPlayeron Windows, and the first available supported system player on Linux.Dependency
Depends on #216 and should land after it. That PR owns the Appshot cue, capture trigger, preloaded macOS playback, and independent Capture sound preference.
After #216 merges, this branch should be rebased onto the updated
mainand the expectedcrates/ui/src/sound.rsoverlap resolved by retaining the Appshot playback path while addingSound::Attention. A dry merge-tree review currently finds no other content conflicts.Verification
cargo test --locked -p zeron-ui— 811 passed, 0 failedrustfmt --edition 2024 --check crates/ui/src/settings/notifications.rs crates/ui/src/shell.rs crates/ui/src/sound.rs crates/ui/src/state.rsgit diff --check origin/main...HEADcargo fmt --all -- --checkstill reports unrelated formatting drift already present onorigin/main; every Rust file changed by this branch passes the targeted check above.Integration order
This draft should land after #216.
main.crates/ui/src/sound.rsby retaining the Appshot cue alongside the Done, Request, and Attention notification sounds.main.A local merge simulation of the current PR heads confirms that merging #216 followed by this head conflicts in
sound.rs; this is an expected integration step, not a stacked-branch dependency.Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.