Skip to content

fix(dashboard): replace unprovenanced notification MP3 - #11731

Merged
diegosouzapw merged 3 commits into
release/v3.8.51from
fix/v3850-replace-unlicensed-notify-audio
Aug 28, 2026
Merged

diegosouzapw merged 3 commits into
release/v3.8.51from
fix/v3850-replace-unlicensed-notify-audio

Conversation

@diegosouzapw

@diegosouzapw diegosouzapw commented Aug 27, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • deletes public/audio/ui-notify.mp3, whose origin and license could not be established
  • preserves optional audible feedback for both Model Lockout toggles with a locally synthesized 100 ms Web Audio chime (880 Hz sine + deterministic gain envelope)
  • creates the AudioContext only from the toggle gesture, resumes suspended contexts, fails open when Web Audio is unavailable or rejected, and closes the context when the card unmounts
  • adds no replacement asset, package, dependency, or copied third-party code

Evidence and status

Area Status Evidence
Binary provenance RESOLVED BY REMOVAL Deleted the unresolved 172,619-byte MP3 (SHA-256 4a716f2a47d4fa230840e14ecc96965ba6be05c62c1cafa9e6f7c540e458a42f); Git history remains recoverable from base 0915890 if an audit needs the original bytes.
Legacy runtime reference PASS Physical repository search returns no /audio/ui-notify.mp3 reference and the regression guard verifies both the file and component reference remain absent.
Toggle behavior PASS Both Model Lockout switches create and schedule generated oscillator feedback; legacy Audio asset playback is not called.
Browser fallback PASS Missing Web Audio leaves both toggles functional; suspended contexts resume before scheduling; resume rejection is swallowed without blocking the setting change.
Resource lifecycle PASS One context is reused per mounted card, oscillator/gain nodes disconnect on completion, and the context closes on unmount.
Scope PASS Only the unresolved asset, its sole consumer, and a focused UI regression test changed.

TDD evidence

Phase Result
RED (provenance + generated feedback) npm exec -- vitest run --config vitest.config.ts tests/unit/ui/model-lockout-notify-chime.test.tsx → 2 failed / 2 while the MP3 still existed and the generated-feedback contract was unmet.
RED (behavior tracer) After removing the legacy reference, the focused suite produced 1 failed / 2: expected two oscillators from the two toggle gestures, received zero.
RED (resource tracer) The focused suite produced 1 failed / 3 because the initial module-global context was not owned/released by the mounted card.
GREEN npm run test:vitest:ui -- tests/unit/ui/model-lockout-notify-chime.test.tsx → 6 passed / 6.

Additional validation

Command Result
focused ESLint with repository suppressions, no cache PASS
npm run typecheck:core PASS
git diff --check PASS
physical exact-path search + asset existence check PASS (no runtime reference; asset absent)

This PR is intentionally draft/open. It does not merge, tag, publish, release, or deploy anything.

Independent review follow-up

  • Independent correctness and Standards/Security reviews found no blocking defect.
  • Focused Vitest evidence is now 7/7 PASS after commit 87ecda603b.
  • The regression suite now proves one reused AudioContext, two synthesized oscillators, the 880 Hz / 100 ms envelope, oscillator-to-gain-to-destination wiring, per-note node cleanup, and the webkitAudioContext fallback.
  • Browser autoplay/user-activation policy remains configured by code inspection, not live-browser verified; no browser-compatibility claim is made here.

@diegosouzapw
diegosouzapw force-pushed the fix/v3850-replace-unlicensed-notify-audio branch from 87ecda6 to 1112290 Compare August 28, 2026 03:57
@diegosouzapw
diegosouzapw changed the base branch from release/v3.8.50 to release/v3.8.51 August 28, 2026 03:57
@diegosouzapw
diegosouzapw marked this pull request as ready for review August 28, 2026 07:34
@diegosouzapw
diegosouzapw merged commit 26a28b0 into release/v3.8.51 Aug 28, 2026
20 of 29 checks passed
muhamadgalihsaputra pushed a commit to niyatna/NiyatnaRoute that referenced this pull request Sep 27, 2026
…ence#11731)

Merged via /merge-batch (v3.8.51 provenance sweep). Boarded and validated together with the batch's other provenance/asset-cleanup PRs in a combined worktree — full gate suite green. Static-asset-only cleanup, no runtime code changes. Thank you.
@diegosouzapw
diegosouzapw deleted the fix/v3850-replace-unlicensed-notify-audio branch October 18, 2026 23:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant