Atualização 2.196
31/07/2026
v2.196.0.0BETAMINOR
Seymour31 de jul. de 2026
P2-B L3 (mapper proposal→plan→executor) + P2 L1/L2 (preview AtelScriptAdapter + pré-condição de hash)
- Contrato LLM L3 (
Core/LLM/ProposalToPlanMapper.cs+LlmHistoryEntry.cs+ 6 testes):MapToPlanrodaLlmGuard(rejeição → null + razão via out), resolve o adapter do catálogo (sem adapter → MissingPrecondition), constróiFileOperation(Patch, BeforeHash real, PredictedAfterHash = AfterHash da proposta, Diff derivado de PatchDiff) +OperationPlancom Preconditions de capacidade — nada é executado (o caller rodaOperationExecutorV2). Contrato de Edits de receitappp-sclmove-t3documentado e exposto como constantes:offset(long),newBytesBase64(string),beforeHash(string).LlmHistoryEntry= 8 campos de auditoria WITHOUT payload/key (testado em superfície via reflection + JSON sem conteúdo sensível). - P2 L1/L2 (
Core/Writers/AtelScriptAdapter.cs+ 11 testes): adapter preview-only (atel-script): recusa qualquer edição antes de tocar o staging; copy-only com edits vazios;ComputePreviewDiff(3 camadas viaAiDiffThreeLayer— provado com fixture real m001: edição de operando0x009E→0x3049(Firaga) muda bytes+disassembly+semântica);ValidateMonsterBinHash(SHA-256 pré-condição do bin de monstro WHOLE —Monster_File.Writereloca ponteiros). Não registrado no catálogo (L1 = nada escrito; registro vem comAtelPhaseRotationAdapterem L2). - Baseline: 207/207 PASS (185 → 207). ### MINOR
v2.195.0.0