Update 2.195
31.7.2026
v2.195.0.0BETAMINOR
Seymour31. Juli 2026
P2-B L2 (LLM-Vertrag HTTP-Adapter) + P2 L1 (ATEL-semantisches IR + Drei-Schichten-Diff)
- LLM-Vertrag L2 (
Core/LLM/LlmHttpAdapter.cs+ 8 Tests): Modell-Aufruf mit Timeout (CancelAfter), Abbruch,MaxResponseBytes-begrenzter Stream-Read, striktes JSON-Parsing (JsonUnmappedMemberHandling.Disallow— unbekanntes Feld = MalformedPayload), Key NUR imAuthorization: Bearer-Header (nie Body/Log/Exception; Pattern-Redaktion + exakte Session-Key-Redaktion), Nicht-Loopback-Host verweigert ohne Bestätigung VOR Netzwerkzugriff, base64 validiert, Fehler werden immer zu typisiertemLlmResultmit redigierter Meldung (kein roher Stack).LlmCredentialerhielt einen kontrollierten internen Accessor (ReadApiKeyCopy— Kopie, nie serialisiert; Reflection entfernt). Null echtes Netzwerk in Tests (Fake-DelegatingHandler). - P2 L1 — ATEL-semantisches IR (
FfxLib/Ai/AiSemanticScript.cs+AiDiffThreeLayer.cs+ 10 Tests): 100% additives Overlay über dem Codec (AiScript_File vollständig unberührt, RT0 361/361 erhalten):AiEvidenceState(Decoded/Hypothesis/Confirmed — L1 produziert nur Decoded),AiInstructionNodepro (Worker, Offset) mitMeaningangereichert über das echteAiCommandId.Decode(z. B.PUSHII -> Firaga);ThreeLayerDiff= Bytes-Schicht + Disassembly (AiScript_Diff.Comparewiederverwendet) + Semantik (Befehlsnamen/Evidenz). Validier gegen echte Fixturesm000.bin/m001.bin(echtes AiFile aus dem Korpus) + byte-identisches synthetisches RT0-Fixture. Subagent-Erwartungsfix: m000s3C D8 5F 00 3C 3C-Skript hat 4 Instruktionen (RET | CALLPOPA 3B | RET | RET), nicht 3 — Build hatte recht. - Baseline: 185/185 PASS (164 → 185). ### MINOR
v2.194.0.0