Files
glpi-neural-brain/VALIDATION-PRODUCTION-READINESS-V1.2.md
jbergner 440423c5b6
release-tag / release-image (push) Successful in 2m43s
RC-3
2026-08-09 11:29:13 +02:00

54 lines
4.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.