87 lines
2.5 KiB
Markdown
87 lines
2.5 KiB
Markdown
---
|
|
id: AGD-0002
|
|
ticket: packed-cartridge-loader-pmc
|
|
title: Agenda - Packed Cartridge Loader PMC
|
|
status: open
|
|
created: 2026-03-27
|
|
resolved:
|
|
decision:
|
|
tags: []
|
|
---
|
|
|
|
# Agenda - Packed Cartridge Loader PMC
|
|
|
|
## Problema
|
|
|
|
O loader reconhece a extensão `.pmc`, mas o caminho empacotado ainda nao existe de verdade.
|
|
|
|
Hoje o dispatcher aceita a intenção e delega para um loader que sempre falha com `InvalidFormat`.
|
|
|
|
## Dor
|
|
|
|
- A plataforma declara dois formatos de entrada, mas só um funciona.
|
|
- Distribuição real de cartuchos fica travada no layout de diretório.
|
|
- Host, firmware e ferramentas nao conseguem validar o caminho de distribuição final.
|
|
- O runtime continua dependente de estrutura de workspace em vez de artefato fechado.
|
|
|
|
## Alvo da Discussao
|
|
|
|
Definir o formato e o contrato do cartucho empacotado `.pmc` como artefato de distribuição do runtime.
|
|
|
|
O objetivo nao é só "descompactar um zip", e sim fixar:
|
|
|
|
- layout interno;
|
|
- regras de validação;
|
|
- limites de compatibilidade;
|
|
- superfície de erro;
|
|
- impacto em assinatura/versionamento futuro.
|
|
|
|
## O Que Precisa Ser Definido
|
|
|
|
1. Container.
|
|
O `.pmc` é zip, tar, formato próprio, ou envelope simples com header e blobs?
|
|
|
|
2. Estrutura interna.
|
|
Quais arquivos são obrigatórios e opcionais:
|
|
- `manifest.json`
|
|
- `program.pbx`
|
|
- `assets.pa`
|
|
- outros metadados
|
|
|
|
3. Regras de validação.
|
|
Ordem de parsing, integridade, presença de arquivos, tamanho máximo, duplicatas e versão suportada.
|
|
|
|
4. Política de compatibilidade.
|
|
Como o loader reage a versões futuras do container e do manifesto.
|
|
|
|
5. Segurança e determinismo.
|
|
Como impedir traversal, nomes ambíguos, arquivos extras maliciosos e dependência da ordem física do container.
|
|
|
|
6. Relação com o loader de diretório.
|
|
O comportamento validado deve ser idêntico entre diretório e `.pmc`, mudando apenas a origem dos bytes.
|
|
|
|
## O Que Necessita Para Resolver
|
|
|
|
- especificação mínima do container `.pmc`;
|
|
- decisão sobre biblioteca/abordagem de parsing;
|
|
- matriz de erros determinísticos;
|
|
- testes com cartuchos sintéticos válidos e inválidos;
|
|
- garantia de equivalência comportamental com o loader de diretório.
|
|
|
|
## Fora de Escopo
|
|
|
|
- compressão otimizada;
|
|
- assinatura criptográfica;
|
|
- distribuição incremental;
|
|
- pipeline completo do builder/packer.
|
|
|
|
## Critério de Saida Desta Agenda
|
|
|
|
Pode virar PR quando houver definição escrita de:
|
|
|
|
- formato do `.pmc`;
|
|
- arquivos obrigatórios;
|
|
- erros canônicos;
|
|
- invariantes de segurança;
|
|
- estratégia de testes de compatibilidade entre diretório e pacote.
|