56 lines
2.4 KiB
Markdown
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
|
|
```
|