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

2.4 KiB

Validierung: Filter Scopes und Sources

Stand: 2026-08-05

Automatisch geprüft

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:

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:

go test ./...
go vet ./...
docker compose up -d --build --force-recreate brain