Atualização 2.195
31/07/2026
v2.195.0.0BETAMINOR
Seymour31 de jul. de 2026
P2-B L2 (adapter de contrato LLM HTTP) + P2 L1 (ATEL semântico IR + diff three-layer)
- Contrato LLM L2 (
Core/LLM/LlmHttpAdapter.cs+ 8 testes): chamada de modelo com timeout (CancelAfter), cancelamento, leitura de stream limitadaMaxResponseBytes, parse estrito JSON (JsonUnmappedMemberHandling.Disallow— campo desconhecido = MalformedPayload), chave ONLY no headerAuthorization: Bearer(nunca body/log/exceção; redação de padrão + redação exata session-key), host non-loopback recusa sem confirmação ANTES tocando a rede, base64 validado, falhas sempre viramLlmResulttipado com mensagem redigida (sem stack cru).LlmCredentialganhou um accessor interno controlado (ReadApiKeyCopy— cópia, nunca serializada; reflection removida). Zero rede real nos testes (DelegatingHandler fake). - P2 L1 — ATEL semântico IR (
FfxLib/Ai/AiSemanticScript.cs+AiDiffThreeLayer.cs+ 10 testes): overlay 100% aditivo sobre o codec (AiScript_File totalmente intocado, RT0 361/361 preservado):AiEvidenceState(Decoded/Hypothesis/Confirmed — L1 produz só Decoded),AiInstructionNodepor (worker, offset) comMeaningenriquecido via oAiCommandId.Decodereal (e.g.PUSHII -> Firaga);ThreeLayerDiff= camada de bytes + disassembly (AiScript_Diff.Comparereutilizado) + semântica (nomes de comando/evidência). Validado contra fixtures reaism000.bin/m001.bin(AiFile real do corpus) + fixture sintética byte-identical RT0. Fix de expectativa de subagente: o script3C D8 5F 00 3C 3Cdo m000 tem 4 instruções (RET | CALLPOPA 3B | RET | RET), não 3 — o Build estava certo. - Baseline: 185/185 PASS (164 → 185). ### MINOR
v2.194.0.0