3.2 KiB
3.2 KiB
PR-030 - PBS Host Admission and Capability Gating Diagnostics
Briefing
O pipeline PBS ja distingue fases host-admission e load-facing, mas hoje nao emite E_HOST_* no frontend/build pipeline.
Sem essa etapa, problemas de capability para host bindings aparecem tarde demais ou ficam sem trilha diagnostica alinhada ao contrato das specs.
Esta PR introduz uma etapa explicita de host-admission com diagnosticos deterministas e explicita o boundary de autoridade: build calcula requirements; concessao acontece no runtime.
Motivation
- Alinhar o frontend/build pipeline com
6.2e7para capability gating. - Produzir falha previsivel e rastreavel por
code/phase/templateId. - Evitar aceitacao silenciosa de host surface sem capacidade declarada.
Target
- Criar fase de host-admission no pipeline PBS apos linking/metadata extraction.
- Calcular
requiredCapabilitiesa partir dos host bindings usados. - Validar consistencia de metadata de capability por binding.
- Emitir
E_HOST_*com faseHOST_ADMISSION. - Expor
requiredCapabilitiespara o packer auxiliar emissao/validacao demanifest.json.
Scope
prometeu-build-pipeline+frontends/prometeu-frontend-pbs.- Contrato de contexto para capabilities requeridas no build (nao concedidas).
- Testes de conformance (positivo/negativo) para host-admission.
Method
- Introduzir metadata dedicada de capability no host binding:
[Capability(name = "...")]na assinatura host, sem sobrecarregarHost(...).
- Introduzir
HostAdmissionContextno frontend/build para carregar capabilities requeridas no build. - Coletar host bindings canonicos a partir de metadata reservada extraida (
Host(module,name,version)+Capability(name)). - Calcular deterministicamente
requiredCapabilitiespor programa/modulo. - Rejeitar deterministicamente inconsistencias de metadata de capability (
E_HOST_*). - Exportar
requiredCapabilitiespara consumo do packer na geracao/validacao demanifest.json. - Manter regra de autoridade:
- frontend/build nao concede capabilities,
- loader/plataforma continua autoridade final de admissao e grant.
Acceptance Criteria
- Pipeline emite
E_HOST_*comphase=HOST_ADMISSIONpara metadata invalida/ausente de capability. code,templateId,spanestaveis e assertaveis em testes.requiredCapabilitiese produzido deterministicamente para o mesmo source set.- Sem metadata invalida de capability, o mesmo programa passa sem
E_HOST_*. - Gate U cobre ao menos 1 fixture positiva e 1 negativa de host-admission.
Tests
- Positivo: binding
@sdk:gfxcom[Capability(name = "gfx")]. - Negativo: binding host sem
Capability. - Negativo: capability desconhecida/declaracao invalida no contexto.
- Asserts por campos maquina-estaveis do diagnostico.
Non-Goals
- Substituir validacao final do loader.
- Definir policy UX/prompts de permissao.
- Concluir modelo final de grants por plataforma.
Affected Documents
docs/pbs/specs/6.2. Host ABI Binding and Loader Resolution Specification.mddocs/pbs/specs/7. Cartridge Manifest and Runtime Capabilities Specification.mddocs/pbs/specs/12. Diagnostics Specification.mddocs/pbs/specs/13. Lowering IRBackend Specification.md