# Validierung: Filter Scopes und Sources Stand: 2026-08-05 ## Automatisch geprüft ```text node --check internal/web/static/app.js YAML-Parsing: docker-compose.yml YAML-Parsing: deployment/docker-compose.full.yml go test -run '^$' ./... go vet ./... go test ./internal/config go test ./internal/graph -run 'TestNodeFilter|TestScoped' go test ./internal/engine -run 'TestEffectiveFilter|TestRuntimeJSONFieldMerge' ``` Die vollständige Go-Codebasis wurde typgeprüft. Für die reine Kompilierungsprüfung wurde ausschließlich außerhalb des Projekts ein minimaler `database/sql`-Treiberstub verwendet, weil die Ausführungsumgebung `modernc.org/sqlite` nicht von `proxy.golang.org` herunterladen konnte. `go.mod` und `go.sum` im ausgelieferten Projekt verwenden unverändert den echten Treiber `modernc.org/sqlite v1.37.1`. ## Abgedeckte Backend-Fälle - Kategorien und Quellen werden zwischen den Dimensionen mit UND kombiniert. - Mehrere Werte innerhalb einer Dimension verwenden ODER-Semantik. - Leere Listen und `*` sind uneingeschränkt. - `__uncategorized__` und `__unsourced__` treffen Nodes ohne entsprechenden Wert. - Disjunkte Environment- und WebUI-Listen ergeben `MatchNone`. - Environment-Grenzen bleiben erhalten, wenn eine ältere `runtime-settings.json` neue Felder noch nicht enthält. - Embedding-Auswahl, Retrieval und AI-THINK-Kandidaten respektieren den jeweils wirksamen Scope. - Externe Nodes werden über die Domain ihrer URL als Quelle erkannt. - `GET /api/sources` und die erweiterten Runtime-Einstellungen sind typgeprüft. ## Browserprüfung Die Weboberfläche wurde mit einem simulierten Graph-Snapshot geprüft: ```text passender Wissens-Node → sichtbar passende Category-Taxonomie → sichtbar passende Source-Taxonomie → sichtbar fremder Wissens-Node, nur über semantische Edge verbunden → unsichtbar ``` Damit ist die frühere Display-Leckage über Kanten behoben. Die drei Visualisierungen verwenden denselben strikt gefilterten Snapshot. Zusätzlich wurden die sechs WebUI-Listen für Kategorien und Quellen, die ENV-Sperrmarkierung und die Anzeige der wirksamen Schnittmenge geprüft. ## Nicht in dieser Umgebung ausführbar Ein echter SQLite-Lauf mit `modernc.org/sqlite` war wegen blockierter DNS-/Modulauflösung nicht möglich. Auf dem Zielsystem sollte deshalb zusätzlich ausgeführt werden: ```powershell go test ./... go vet ./... docker compose up -d --build --force-recreate brain ```