2.6 KiB
2.6 KiB
Agenda - Asset Fault Semantics and Surface
Problema
O dominio asset ja se comporta como dominio orientado a status em partes da surface, mas ainda promove erro operacional para Panic em pontos centrais.
Exemplo atual:
AssetLoadtransformaErr(e)dehw.assets().load(...)emVmFault::Panic(e).
Ao mesmo tempo:
AssetStatusja expoe um status numerico do dominio;- a spec
16aja aponta direcaostatus-firstpara falhas operacionais; - a decisao
003reforca a preferencia por status quando existir contrato funcional recuperavel.
Dor
- falha de asset pode derrubar o app como se fosse bug estrutural do runtime;
- a surface do dominio fica incoerente:
statuspara observar,Panicpara operar; - commit/cancel ainda nao deixam claro se handle desconhecido e status, no-op ou fault terminal.
Hotspots Atuais
Alvo da Discussao
Fechar a taxonomia de fault e, se necessario, ajustar a surface publica de asset para que:
- falhas operacionais virem
status; Trapfique reservado para erro estrutural da chamada;Panicfique restrito a invariantes quebradas.
O Que Precisa Ser Definido
-
AssetLoad. Decidir o que retorna quando:asset_idnao existe;- slot esta ocupado/conflita;
- backend falha;
- o asset manager entra em estado invalido.
-
AssetStatus. Confirmar se o enum atual e suficiente ou se precisa crescer. -
AssetCommiteAssetCancel. Decidir o shape de fault/status para:- handle desconhecido;
- handle ja finalizado;
- transicao invalida.
-
Surface. Decidir se
commit/cancelcontinuamvoidou se precisam de retorno explicito. -
Relacao com
bank. Definir se erros de residency/slot entram emassetstatus ou em agenda separada debank.
Dependencias
../specs/16a-syscall-policies.md
Critério de Saida Desta Agenda
Pode virar PR quando houver decisao escrita sobre:
- matriz de
status/Trap/Panicparaasset; - shape final de
AssetLoad,AssetStatus,AssetCommiteAssetCancel; - eliminacao dos
Panicoperacionais indevidos do dominio.