# Validation – Production Readiness v1.2 ## Ausgangsdaten Der reale Testbestand zeigte unter anderem: - 50/50 Security-Lifecycles sauber abgeschlossen, kausal exakt +50 Nodes / +50 Edges / +50 Vektoren. - 21.341 Vektoren bei 21.351 vektorberechtigten Nodes: 10 Relation-Research-Nodes ohne Embedding. - Zwei Staging-Artikel. Ein HAProxy-Artikel war thematisch kohärent; ein Water-Leak-Artikel enthielt acht Quellen aus Water Leak Detection, Triple Extortion und BGP Prefix Filtering. - Der Water-Leak-Artikel hatte beim Erzeugen acht `synthesized_from`- und eine `proposes_merge`-Edge; ein späterer Staging-Reimport löschte exakt diese neun Runtime-Provenienz-Edges. - Learning-Run-Mutationen wurden durch `graph.updated` + Terminalsnapshot doppelt gezählt. Diese Befunde wurden als Regressionstests bzw. deterministische Readiness-Invarianten umgesetzt. ## Validierung Die Release-Quellen bleiben auf Go 1.26 und dem echten `modernc.org/sqlite`. Die lokale Offline-Umgebung stellt nur Go 1.23 bereit; Compile-/Unit-Validierung erfolgt deshalb in einer separaten Kopie mit einem compile-only SQLite-Stub. Der Release-Tree enthält diesen Stub nicht. Erfolgreich ausgeführt: - Topic-Guard-Tests für Water Leak / Triple Extortion / BGP. - Shared-Seed-Test: gemeinsamer generischer Hub darf den Topic-Guard nicht umgehen. - deterministischer Draft-Coherence-Gate: beobachteter Water-Leak-Mix wird verworfen; ein einzelner Supporting-Outlier in einem HAProxy-Artikel bleibt erlaubt. - Graph-Test: Legacy-Runtime-Provenienz überlebt Staging-Reimport. - Graph-Test: echte Artikellöschung cascadiert Runtime-Provenienz und hinterlässt keine dangling Edges. - Graph-Test: Legacy-Artikelstruktur (`generation_depth`, `source_node_ids`, Fingerprint) bleibt bei Reimport erhalten. - Analysis-Test: parallele Artikel bleiben über native Run-IDs getrennt. - Analysis-Test: Cluster-Scheduling wird nicht einem offenen Artikelrun zugerechnet. - Analysis-Test: Learning-Terminalmutationen werden exakt einmal gezählt. - projektweite Typkompilierung `go test ./... -run '^$'`. - `go vet ./...`. - vollständige ausführbare Tests für `internal/activity`, `internal/config`, `internal/research`, `internal/ollama`, `internal/workqueue`. - Race Detector für Activity, Article-Run-Rekonstruktion, Learning-Mutationsbilanz und Topic-Guard. - `node --check` für `analysis.js`, `source-agents.js`, `app.js`. - YAML-Parsing für `docker-compose.yml`, `deployment/docker-compose.full.yml`, `deployment/docker-compose.source-agent.yml`. ## Erwartete Invarianten nach Upgrade 1. Readiness `Embedding-Konsistenz`: exakt `vector_rows == vector_eligible_nodes`, nur 768D. 2. Readiness `Artikel-Provenienz / Topic-Coherence`: grün, nachdem bekannte Alt-Mixed-Topic-Entwürfe quarantänisiert wurden. 3. Ein erfolgreich erzeugter Artikelrun meldet kausal seinen Artikel-Node, seine Provenienz-Edges und sein Artikel-Embedding; keine fremden Parallelmutationen. 4. Learning-Bootstrap-Mutationen erscheinen nur einmal in der Workflow-Bilanz. 5. Neue Relation-Research-Nodes erhalten sofort ein Embedding; vorhandene Lücken werden durch `embedding.external_repair.completed` geschlossen. 6. `article.cluster.started` enthält `topic_guard=strict-v2` und `topic_labels`. 7. Parallel laufende Artikel haben unterschiedliche `article-...` Run-IDs und genau ein Terminalevent. 8. Nach Staging-Reimport bleiben `synthesized_from`, `proposes_*`, Generation Depth und Source-IDs erhalten. ## Bewusst nicht behauptet Ein vollständiger Go-Runtime-Test gegen den echten `modernc.org/sqlite`-Treiber kann in der Offline-Go-1.23-Umgebung weiterhin nicht ausgeführt werden. Der endgültige Runtime-Nachweis erfolgt auf der Zielumgebung mit Go 1.26. Deshalb ist v1.2 ein Release Candidate; Go/No-Go wird anhand des Readiness-Panels und eines neuen Analyseexports entschieden. - Analysis-Test: unkeyed Artikel-/Inbox-Telemetrie wird nicht mehr per Zeitnähe an einen offenen Workflow gehängt. - Legacy-Strukturtest: Generation Depth und Fingerprint überleben einen Reimport ohne `ai_think` im alten Staging-JSON. - finale projektweite Typkompilierung und `go vet` nach Grounding-Mutationshärtung erneut erfolgreich.