Движок: onPlayed для лупов, onEnded, duration(key); игра без ручного лога амбиента
- onPlayed зовётся и на стартах лупов (нормализованные опции) — DEV-лог игры
  собирается целиком шпионом, ручной push в Game.playAmbience удалён
- onEnded(key): естественный конец sfx; заглушенные голосом (stop/вор/restart)
  событие не поднимают
- duration(key): длительность декодированного буфера (null до preload)
- Тесты: +5 в AudioManager.test.ts (440 всего); доки в том же коммите

Co-Authored-By: Claude Code <noreply@anthropic.com>
1 parent fb142ee commit 4ded668822df315f49202c09b088b2dff9c239e1
@root root authored 11 hours ago
Showing 4 changed files
View
apps/game/src/Game.ts
View
docs/engine/assets-audio-save.md
View
packages/engine/src/audio/AudioManager.ts
View
packages/engine/src/audio/__tests__/AudioManager.test.ts