Resumo

  • A revisão 05 move o valor de reservado para consumido na mesma transação atômica que registra a entrada no provedor, antes do adaptador externo.
  • Depois dessa fronteira, timeout significa resultado indeterminado, não ausência de entrada; o saldo só volta com prova autenticada de que o efeito não pôde começar.
  • Revogação e congelamento de emergência impedem a ação se forem serializados primeiro; se a entrada ganhar, só protegem as admissões futuras.

A mensagem de erro não é o livro-caixa

Um recibo assinado pode dizer que um agente dispõe de uma capacidade limitada. Mas a assinatura não reduz o saldo quando duas réplicas agem ao mesmo tempo. Para isso, todos os executores precisam consultar o mesmo domínio transacional, capaz de conservar reservas, consumo e chaves de operação entre falhas e reinícios.

É essa composição que Bounded Capability Receipts and Durable Spend Control for Agent Actions propõe. O recibo liga emissor, sujeito, autorização de emissão, escopo fechado, quantidade, unidade, escala, prova do titular, validade e capacidade ancestral. O armazenamento calcula o restante como total menos consumido menos reservado.

O ponto sensível é quando a reserva vira consumo.

Na revisão 04, o sistema marcava o início da entrada no provedor e fazia a transferência contábil no commit posterior. A revisão 05 coloca tudo no mesmo ponto. Imediatamente antes do adaptador externo, uma transação autentica o dono da reserva, verifica prazo, capacidade atual, permissões e revogações, e, quando aplicável, confirma o estado ativo e a época do domínio de admissão. A mesma transação grava provider_entered, reduz reservado e aumenta consumido.

O resultado posterior não debita de novo. Ele encerra a operação como executada ou indeterminada. Assim, o saldo muda no primeiro instante em que o efeito externo pode ter começado, não quando uma resposta conveniente chega ao chamador.

Só a não entrada comprovada libera o valor

Um timeout não prova que o fornecedor ficou intocado. A chamada pode ter sido aceita, colocada em fila ou executada. Se não houver prova do resultado, a operação é indeterminada e o valor permanece consumido. O chamador deve reconciliar o identificador original, não criar outro para tentar de novo.

A devolução exige que o estado autoritativo mostre a operação ainda reservada e sem entrada no provedor. O proprietário autenticado pode então encerrar como not_entered, liberando o reservado. A chave e a ação continuam registradas como lápide contra replay. Retornar capacidade não renova o pedido antigo.

Essa escolha pode reduzir disponibilidade durante uma pane, mas evita que a mesma autoridade sustente duas compras, transferências ou exclusões. Cobrar um resultado indeterminado não afirma que o efeito aconteceu; afirma que sua ausência não está provada.

O botão de emergência também entra na fila

A revisão 05 adiciona um domínio opcional de admissão, com estado ativo/congelado e época crescente. A reserva captura a época e a entrada a verifica novamente. Se o congelamento ou a revogação vencer a serialização, a entrada é recusada e a reserva pode ser liberada com prova. Se a entrada vencer, a autoridade já foi consumida; o controle tardio não reclassifica o passado.

O mecanismo não para computação fora do domínio, não desfaz um efeito e não cria congelamento instantâneo entre armazenamentos desconectados. Também confia no adaptador para localizar honestamente a fronteira real.

Datatracker apresenta a revisão 05 como Internet-Draft individual ativo, atualizado em 6 de setembro de 2026, estado I-D Exists, sem endosso formal do IETF. O texto busca Experimental, enquanto a ficha hoje não informa status RFC pretendido. Não é padrão, certificação, implantação ou resultado de interoperabilidade.

Canonicalização JSON, Ed25519, data/hora e linguagem normativa tornam o artefato reproduzível. Não provam que o provedor aceitou ou recusou a ação. Declaração assinada, estado corrente, entrada externa e efeito observado continuam sendo registros diferentes.

Fontes