44 lines
1.4 KiB
Markdown
44 lines
1.4 KiB
Markdown
# PR003 - Audio Status-First Surface and Fault Matrix
|
|
|
|
## Briefing
|
|
|
|
A decision `009` fixou que `audio` deve seguir status-first.
|
|
|
|
No MVP atual, `audio.play` e `audio.play_sample` devem retornar `status:int`.
|
|
|
|
## Alvo
|
|
|
|
Aplicar a decisao `009` em spec e runtime para o dominio `audio`.
|
|
|
|
Arquivos principais:
|
|
|
|
- `docs/runtime/specs/05-audio-peripheral.md`
|
|
- `crates/console/prometeu-hal/src/syscalls/domains/audio.rs`
|
|
- `crates/console/prometeu-system/src/virtual_machine_runtime/dispatch.rs`
|
|
- `crates/console/prometeu-drivers/src/audio.rs`
|
|
|
|
## Escopo Funcional
|
|
|
|
- mudar surface de retorno de `audio.play` e `audio.play_sample` para `status`;
|
|
- remover fallback implicito e no-op silencioso para erros operacionais;
|
|
- validar faixas normativas (`volume`, `pan`, `pitch`) com status explicito;
|
|
- limpar caminhos que poderiam escalar para `Panic` por input de app.
|
|
|
|
## Fora de Escopo
|
|
|
|
- novos comandos de audio (stop/set pan/set pitch etc) fora do contrato atual;
|
|
- mudanca de arquitetura do mixer host.
|
|
|
|
## Critérios de Aceite
|
|
|
|
- `ret_slots` de `audio.play` e `audio.play_sample` atualizados no registry;
|
|
- casos operacionais retornam status inteiro canonico;
|
|
- `voice_id` invalido e asset/sample ausente nao ficam silenciosos;
|
|
- sem `Panic` operacional no dominio.
|
|
|
|
## Tests
|
|
|
|
- `cargo test -p prometeu-system`
|
|
- `cargo test -p prometeu-drivers`
|
|
- cenarios com `voice_id` invalido, asset ausente e range invalido.
|