Files
glpi-neural-brain/VALIDATION-FILTER-SCOPES-SOURCES.md
groot 31d3efb8a2
release-tag / release-image (push) Successful in 2m17s
Bugfixes
2026-08-05 10:15:56 +02:00

56 lines
2.4 KiB
Markdown

# 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
```