3.9 KiB
3.9 KiB
026-runtime-cartridge-entrypoint-removal-and-boot-protocol-propagation
Status: Completed
Decision: ../decisions/025-cartridge-manifest-entrypoint-removal-and-runtime-protocol.md
Commit: a30ac16
Briefing
Executar a propagacao de codigo da decision 025 no runtime, removendo entrypoint do loader e do estado de cartridge, endurecendo o boot da VM em func_id = 0 e ajustando testes e tooling local necessario para manter o stress path funcional.
Esta PR assume que a discussao arquitetural e o contrato normativo ja estao fechados. Nao e lugar para rediscutir authority de boot.
Decisions de Origem
Alvo
Propagar o protocolo de boot fixo em func_id = 0 para prometeu-hal, prometeu-system, prometeu-vm e tooling local afetado nesta workspace.
Escopo
- remover
entrypointdeCartridgeManifest,CartridgeDTOeCartridge; - parar de desserializar e propagar
entrypointno loader; - endurecer
VirtualMachine::initialize(...)para boot protocolar sem parametro textual; - remover
current_entrypointe o uso correspondente no boot do runtime system; - atualizar testes de loader, runtime system e VM init para o novo contrato;
- ajustar o stress tooling local necessario para continuar emitindo artefato compativel com
func_id = 0.
Fora de Escopo
- redesign geral de
prepare_call()para chamadas nao relacionadas a boot; - compatibilidade normativa para cartuchos legados baseados em
entrypoint; - mudancas amplas no compiler/PBS fora desta workspace;
- qualquer reabertura da decisao sobre erro canonico ou autoridade de boot.
Plano de Execucao
- Remover
entrypointdos tipos de cartridge emprometeu-hale atualizar o loader. - Endurecer
VirtualMachine::initialize(...)para carregar o programa e resolver boot exclusivamente emfunc_id = 0, reutilizandoVmInitError::EntrypointNotFoundquando o protocolo falhar. - Remover
current_entrypointdo runtime system e ajustar o caminho detick()para preparar a chamada de entrada sem dependencia textual. - Atualizar testes afetados em
prometeu-hal,prometeu-systemeprometeu-vm. - Ajustar
crates/tools/pbxgen-stressou fixture equivalente para nao depender mais deentrypointemmanifest.json. - Rodar a bateria de testes proporcional ao risco da mudanca.
Criterios de Aceite
- nenhum tipo ou loader ativo do runtime depende de
entrypointemmanifest.json; - o boot inicial da VM nao aceita mais parametro textual de entrypoint;
- cartucho sem funcao valida em
func_id = 0falha comVmInitError::EntrypointNotFound; current_entrypointdeixa de existir como estado operacional do runtime system;- o stress tooling local continua produzindo artefato executavel compativel com o contrato novo;
- os testes afetados passam sob o contrato endurecido.
Tests / Validacao
- testes unitarios de
prometeu-vmcobrindo boot valido emfunc_id = 0e falha quando0estiver ausente ou invalido; - testes de
prometeu-systemcobrindo inicializacao e ciclo de boot semcurrent_entrypoint; - testes de
prometeu-halcobrindo loader sementrypointno manifesto; - validacao do stress tooling local para garantir que o gerador nao continue emitindo contrato legado.
Riscos
- a remocao de
entrypointpode quebrar fixtures e helpers de teste dispersos fora dos call sites obvios; - mudar
VirtualMachine::initialize(...)sem revisar o caminho detick()pode deixar boot sem prepare inicial coerente; - deixar
prepare_call()parcialmente textual sem delimitar seu papel pode gerar confusao futuras, embora isso nao bloqueie esta PR; - tooling local que ainda grave
entrypointpode mascarar regressao se nao for atualizado no mesmo ciclo.