# PR - Asset Manager On-Demand Payload and OP_MODE ## Briefing Com bootstrap e `open_slice` ja estabilizados, o `AssetManager` pode ser migrado do modelo atual baseado em blob inteiro residente para o modelo decidido na `011`: - `asset_table` viva durante toda a execucao; - `preload` apenas no boot; - payload lido sob demanda; - pipeline `ROM -> open_slice -> CODEX/decode -> Bank` ou `ROM -> open_slice -> blob temporario -> CODEX/decode -> Bank`. Esta PR implementa a mudanca de comportamento interno do `AssetManager` sem reabrir o envelope de `assets.pa`. ## Decisions de Origem - `../decisions/011-assets-pa-autocontained-runtime-contract.md` ## Alvo Refatorar o `AssetManager` para consumir payload sob demanda e encapsular `OP_MODE` por codec/CODEX. ## Escopo - remover o baseline de `Arc>>` para payload inteiro residente; - fazer `AssetManager` depender de `asset_table` viva + origem de payload por slice; - tratar `preload` apenas na inicializacao; - encapsular `OP_MODE` por codec/CODEX; - suportar: - leitura direta da ROM via slice; - materializacao temporaria em memoria quando o codec exigir; - preservar a superficie observavel do dominio `asset`. ## Fora de Escopo - redefinir envelope de `assets.pa`; - `.pmc`; - novos codecs; - rediscutir a policy de `asset` syscall status-first. ## Plano de Execucao 1. Substituir `assets_data` por origem de payload em slices. 2. Adaptar preload para usar a nova origem de payload apenas durante o boot. 3. Adaptar `load()` e o caminho assíncrono para consumir slices sob demanda. 4. Introduzir `OP_MODE` derivado de `codec`/CODEX. 5. Garantir que o resultado continue indo para staging/resident/bank como hoje. ## Criterios de Aceite - `AssetManager` nao depende mais de payload inteiro residente em RAM. - preload usa a nova origem de payload e nao permanece vivo depois do boot. - `asset_table` continua sendo a fonte da verdade para resolucao de asset. - `asset.load/status/commit/cancel` preservam a superficie observavel atual. - o pipeline para decode/bank suporta leitura direta ou blob temporario conforme o `OP_MODE`. ## Tests / Validacao - testes de `AssetManager` para: - preload no boot; - leitura por offsets relativos ao payload; - ausencia de dependencia em blob inteiro residente; - path de leitura direta; - path de blob temporario; - smoke tests de `asset.load/status/commit/cancel` para garantir ausencia de regressao observavel. ## Riscos - regressao de preload ao trocar a origem do payload; - encapsulamento ruim entre source/view, codec e bank; - reintroduzir copia excessiva por atalho local no caminho assíncrono.