16 lines
1.5 KiB
Markdown
16 lines
1.5 KiB
Markdown
# Validierung Queue/Lifecycle
|
|
|
|
Geprüfte Regressionen:
|
|
|
|
- Mehrere `article.research.fetch.started/completed` mit derselben `research_id` ergeben genau einen Research-Lauf.
|
|
- Wiederholte Root-Start-Events derselben Run-ID duplizieren `activeOrder` nicht.
|
|
- `research.ingested` beendet einen neuen Relationslauf nicht vor dem expliziten `research.completed`.
|
|
- Alte Relationsläufe mit `research.results`, aber ohne Terminal bleiben nach der Grace-Period nicht dauerhaft `running`.
|
|
- Der gemeinsame Work-Limiter zählt Active/Waiting separat nach Operationstyp und Release ist idempotent.
|
|
- Ein zweiter Ollama-Request, der auf einen belegten Node wartet, verbraucht keinen gemeinsamen Work-Slot; ein SearXNG-Slot bleibt verfügbar.
|
|
- Eine ältere, langsamere SearXNG-Anfrage kann den Diagnosestatus einer neueren bereits abgeschlossenen Anfrage nicht überschreiben.
|
|
- Ein Paralleltest mit 16 gleichzeitigen `EnqueueResearchTask`-Aufrufen für denselben `dedupe_key` erwartet exakt eine neu angelegte Aufgabe (Test ist für den echten SQLite-Treiber enthalten; lokal konnte er wegen des Compile-only-Stubs nicht ausgeführt werden).
|
|
- `node --check internal/web/static/analysis.js` erfolgreich.
|
|
|
|
Die Projektdatei verlangt Go 1.26, während die Validierungsumgebung Go 1.23 ohne externen Modulzugriff bereitstellt. Die projektweite Typkompilierung und `go vet ./...` wurden daher in einer temporären Kopie mit `go 1.23` und einem lokalen compile-only Stub für `modernc.org/sqlite` ausgeführt. Der ausgelieferte Baum behält `go 1.26` und `modernc.org/sqlite v1.37.1` unverändert.
|