This commit is contained in:
Linrador 2026-06-01 11:33:39 +02:00
parent ae957af7b2
commit c5c2275074
3 changed files with 36 additions and 8 deletions

View File

@ -952,21 +952,27 @@ func enqueueDeferredAssetsAndAI(job *RecordJob, outPath string, sourceURL string
}
requiredGoals := requiredAnalyzeGoals()
enrichEnabled := enrichPostworkEnabled()
truth := assetsTruthForVideo(outPath)
needMeta := !truth.MetaReady
needThumb := !truth.ThumbReady
needTeaser := !truth.TeaserReady
needSprites := !truth.SpritesReady
// Sprites + Analyse gehören zur langsamen Enrich-Nacharbeit.
// Wenn Enrich deaktiviert ist, dürfen sie nicht als Fehler oder "wartend" auftauchen.
needSprites := enrichEnabled && !truth.SpritesReady
needAnalyze := false
if enrichEnabled {
for _, goal := range requiredGoals {
if !hasAIAnalysisForOutputGoal(outPath, goal) {
needAnalyze = true
break
}
}
}
// Nichts zu tun -> erfolgreich
if !needMeta && !needThumb && !needTeaser && !needSprites && !needAnalyze {

View File

@ -1,4 +1,4 @@
// backend/postwork.go
// backend\postwork.go
package main
import (
@ -439,7 +439,11 @@ func enrichPostworkEnabled() bool {
func enqueueEnrichPostwork(task PostWorkTask) bool {
if !enrichPostworkEnabled() {
appLogln("⏭️ enrich postwork deaktiviert, überspringe:", task.Key)
return false
// Wichtig:
// Deaktiviert heißt "bewusst übersprungen", nicht "enqueue fehlgeschlagen".
// Caller, die false als Fehler behandeln, sollen hier keinen Fehler erzeugen.
return true
}
return enrichQ.Enqueue(task)

View File

@ -1,4 +1,4 @@
// backend/recorder.go
// backend\recorder.go
package main
import (
@ -1588,6 +1588,24 @@ func runDeferredEnrichPipeline(ctx context.Context, outPath string, sourceURL st
return appErrorf("asset id fehlt")
}
if !enrichPostworkEnabled() {
appLogln("⏭️ enrich postwork deaktiviert, breche deferred pipeline ab:", fileName)
// Kein error-publish. Deaktiviert ist kein Fehler.
// Optional: vorhandenen Analyse-Status neutral halten.
publishDeferredPhase(
fileName,
assetID,
"enrich",
"analyze",
"missing",
"",
nil,
)
return nil
}
requiredGoals := requiredAnalyzeGoals()
// best effort sourceURL aus meta.json nachziehen, falls leer