prometeu-runtime/docs/runtime/pull-requests/PR004-asset-status-first-surface-and-lifecycle.md
2026-03-24 13:40:50 +00:00

55 lines
1.6 KiB
Markdown

# PR004 - Asset Status-First Surface and Lifecycle
## Briefing
A decision `010` fechou a superficie final de `asset`:
- `asset.load(name, kind, slot) -> (status, handle)`
- `asset.status(handle) -> status`
- `asset.commit(handle) -> status`
- `asset.cancel(handle) -> status`
Sem no-op silencioso e sem `Panic` operacional.
## Alvo
Implementar o contrato de `asset` em spec, registry e runtime.
Arquivos principais:
- `docs/runtime/specs/15-asset-management.md`
- `crates/console/prometeu-hal/src/syscalls/domains/asset.rs`
- `crates/console/prometeu-system/src/virtual_machine_runtime/dispatch.rs`
- `crates/console/prometeu-drivers/src/asset.rs`
- `crates/console/prometeu-hal/src/asset_bridge.rs` (se necessario)
## Escopo Funcional
- substituir `Err -> Panic` de `asset.load` por status operacional;
- tornar `asset.commit` e `asset.cancel` retornos explicitos de status;
- explicitar `UNKNOWN_HANDLE` em `asset.status`;
- validar slot index/kind no request path de `load`;
- manter erros de residency/slot no dominio `asset` (nao migrar para `bank`).
## Fora de Escopo
- redesign da politica interna de residencia;
- novos dominios de asset alem de `TILES` e `SOUNDS`.
## Critérios de Aceite
- assinaturas de syscall `asset` alinhadas com decision `010`;
- `asset.load` nao produz `Panic` para falha operacional;
- `commit`/`cancel` nao ficam em no-op silencioso;
- tabela de status por operacao documentada e testada.
## Tests
- `cargo test -p prometeu-system`
- `cargo test -p prometeu-drivers`
- cenarios de:
- handle desconhecido;
- transicao invalida;
- asset nao encontrado;
- slot invalido/kind mismatch.