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.jsonneue 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/sourcesund 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