chore: update app generation workflow
Desktop Client Build / Resolve Build Metadata (push) Successful in 26s
Frontend CI / Frontend (push) Successful in 2m58s
Backend CI / Backend (push) Successful in 16m11s
Desktop Client Build / Build Desktop Client (push) Successful in 24m1s
Desktop Client Build / Publish Client Artifacts to NAS (push) Successful in 28s

This commit is contained in:
2026-06-24 23:39:12 +08:00
parent 98e3dce017
commit 590c219a64
11 changed files with 232 additions and 9 deletions
@@ -179,6 +179,15 @@ func (w *KolGenerationWorker) Process(ctx context.Context, task tenantapp.Claime
auditTx := repository.NewAuditRepository(tx)
usageRepo := repository.NewKolUsageRepository(tx)
if err := tenantapp.EnsureGenerationArticleWritable(ctx, tx, task.ArticleID, task.TenantID); err != nil {
if tenantapp.IsGenerationArticleUnavailable(err) {
w.rollbackAndCancelUnavailableArticle(ctx, tx, task)
return
}
w.rollbackAndFail(ctx, tx, task, "persist_article_status", err)
return
}
versionID, err := articleRepo.CreateArticleVersion(ctx, repository.CreateArticleVersionInput{
ArticleID: task.ArticleID,
Title: title,
@@ -270,6 +279,19 @@ func (w *KolGenerationWorker) rollbackAndFail(ctx context.Context, tx pgx.Tx, ta
w.HandleTaskFailure(ctx, task, stage, taskErr)
}
func (w *KolGenerationWorker) rollbackAndCancelUnavailableArticle(ctx context.Context, tx pgx.Tx, task tenantapp.ClaimedGenerationTask) {
cleanupCtx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
defer cancel()
_ = tx.Rollback(cleanupCtx)
if err := tenantapp.HandleGenerationTaskArticleUnavailable(ctx, w.pool, w.cache, task, kolGenerationTaskType, true); err != nil && w.logger != nil {
w.logger.Warn("kol generation article unavailable cleanup failed",
zap.Error(err),
zap.Int64("task_id", task.ID),
zap.Int64("article_id", task.ArticleID),
)
}
}
var (
errMissingRenderedPrompt = errors.New("kol generation task missing rendered prompt")
errEmptyGeneratedContent = errors.New("kol generation returned empty content")