64 lines
2.1 KiB
Markdown
64 lines
2.1 KiB
Markdown
# Agenda - Audio Fault Semantics and Surface
|
|
|
|
## Problema
|
|
|
|
O dominio `audio` hoje se comporta como comando deterministico com forte tendencia a no-op/fallback, mas essa politica ainda nao esta escrita como contrato.
|
|
|
|
Exemplos atuais:
|
|
|
|
- `AudioPlay` cai para `bank_id = 0` quando o asset nao e encontrado;
|
|
- o driver retorna sem efeito quando `voice_id` esta fora da faixa;
|
|
- samples nao resolvidos nao produzem fault terminal.
|
|
|
|
## Dor
|
|
|
|
- a semantica real de erro fica escondida em detalhes de implementacao;
|
|
- nao esta claro quando `audio` deve ser no-op, `status`, `Trap` ou `Panic`;
|
|
- futuras mudancas podem cristalizar `Panic` onde hoje o dominio tolera ausencia de recurso.
|
|
|
|
## Hotspots Atuais
|
|
|
|
- [dispatch.rs](/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/crates/console/prometeu-system/src/virtual_machine_runtime/dispatch.rs#L340)
|
|
- [dispatch.rs](/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/crates/console/prometeu-system/src/virtual_machine_runtime/dispatch.rs#L359)
|
|
- [audio.rs](/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/crates/console/prometeu-drivers/src/audio.rs#L170)
|
|
|
|
## Alvo da Discussao
|
|
|
|
Fechar a politica de fault e surface de `audio` para o MVP.
|
|
|
|
## O Que Precisa Ser Definido
|
|
|
|
1. `voice_id` invalido.
|
|
Decidir entre:
|
|
- no-op deterministico;
|
|
- `status`;
|
|
- `Trap`.
|
|
|
|
2. Sample/bank ausente.
|
|
Decidir entre:
|
|
- no-op deterministico;
|
|
- `status`;
|
|
- `Trap`.
|
|
|
|
3. Voice unavailable.
|
|
Decidir se o dominio precisa retorno de `status` para esse caso ou se politica de voz resolve isso sem retorno.
|
|
|
|
4. Surface.
|
|
Decidir se `AudioPlay`/`AudioPlaySample` continuam `void` no MVP.
|
|
|
|
5. Faixas numericas.
|
|
Decidir a politica para pitch/pan/volume fora da faixa normativa.
|
|
|
|
## Dependencias
|
|
|
|
- `../decisions/004-host-fault-taxonomy.md`
|
|
- spec de audio
|
|
|
|
## Critério de Saida Desta Agenda
|
|
|
|
Pode virar PR quando houver decisao escrita sobre:
|
|
|
|
- matriz de `status`/`Trap`/`Panic` para `audio`;
|
|
- posicao explicita sobre no-op deterministico no dominio;
|
|
- shape final de retorno de `AudioPlay` e `AudioPlaySample` no MVP.
|