3.0 KiB
3.0 KiB
PR - Assets.pa Bootstrap and Header Loading
Briefing
A decisao 011-assets-pa-autocontained-runtime-contract.md exige que o runtime deixe de depender de asset_table e preload no manifest.json e passe a materializar essas estruturas a partir do header de assets.pa.
O primeiro passo de codigo deve atacar apenas bootstrap e carga de header, sem misturar isso com a mudanca maior de leitura sob demanda do payload.
Esta PR existe para fechar cedo:
- falha antecipada quando
Capability::Assetexigirassets.paausente; - parse do prelude binario e do header JSON;
- materializacao de
asset_tableepreloada partir deassets.pa.
Decisions de Origem
../decisions/011-assets-pa-autocontained-runtime-contract.md
Alvo
Implementar o novo caminho de bootstrap e leitura do header de assets.pa.
Escopo
- atualizar
cartridge_loader.rspara reconhecerassets.pacomo binario autocontido; - introduzir parse do prelude binario fixo;
- introduzir parse do header JSON;
- remover dependencia primaria de
asset_tableepreloadnomanifest.json; - atualizar
cartridge.rspara refletir a nova origem da metadata; - falhar cedo quando
Capability::Assetestiver declarada eassets.paestiver ausente; - disponibilizar
asset_table,preload,payload_offsete origem deassets.papara as etapas seguintes do runtime.
Fora de Escopo
- leitura sob demanda por slice;
- refactor do
AssetManagerpara deixar de depender de blob inteiro; - integracao de
OP_MODEcom CODEX; .pmc;- novos codecs.
Plano de Execucao
- Implementar parsing do envelope:
- prelude binario;
- header JSON;
- payload base offset.
- Atualizar o modelo
Cartridgepara parar de tratarasset_tableepreloadcomo dados vindos primariamente do manifest. - Alterar o bootstrap do cart para:
- materializar
manifest.json; - checar cedo
Capability::Assetvs presenca deassets.pa; - abrir
assets.pa; - carregar
asset_tableepreloaddo header.
- materializar
- Preservar compatibilidade do restante do runtime com a nova origem dos dados, sem ainda mexer na estrategia de payload.
Criterios de Aceite
asset_tableepreloadpassam a vir do header deassets.pa.- o runtime falha cedo quando
Capability::Assetestiver presente eassets.paestiver ausente. - carts sem
Capability::Assetcontinuam validos semassets.pa. manifest.jsondeixa de ser a fonte primaria deasset_tableepreload.- o envelope de
assets.pae parseado de forma consistente com a decisao011.
Tests / Validacao
- testes de loader para:
assets.paausente com e semCapability::Asset;- prelude invalido;
- header JSON invalido;
- parse valido de
asset_tableepreload;
- testes de boot para garantir falha antecipada antes de preload quando o artefato exigido nao existir.
Riscos
- deixar fallback implicito para metadata no
manifest.json; - falhar tarde demais na ausencia de
assets.pa; - acoplar parse do envelope a detalhes de filesystem antes de introduzir uma fonte de payload mais limpa.