diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index dc4fe4f..c6e8fad 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -21,7 +21,7 @@ jobs: steps: - name: Checkout main branch - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: ref: main fetch-depth: 0 @@ -102,7 +102,7 @@ jobs: git push origin ${{ steps.version.outputs.new_version }} - name: Create GitHub Release - uses: softprops/action-gh-release@v2 + uses: softprops/action-gh-release@v2.5.0 with: tag_name: ${{ steps.version.outputs.new_version }} name: Release ${{ steps.version.outputs.new_version }} diff --git a/convex/batchProcessor.ts b/convex/batchProcessor.ts index 6e6a20d..0b20396 100644 --- a/convex/batchProcessor.ts +++ b/convex/batchProcessor.ts @@ -18,6 +18,7 @@ import { v } from "convex/values" import { internal } from "./_generated/api" import { internalAction } from "./_generated/server" import { + POLLINATIONS_FETCH_TIMEOUT_MS, buildPollinationsUrl, calculateBackoffDelay, cropDirtberryImageBuffer, @@ -40,7 +41,6 @@ const POLLINATIONS_RETRY_CONFIG: RetryConfig = { baseDelayMs: 2000, maxDelayMs: 30000, } -const POLLINATIONS_FETCH_TIMEOUT_MS = 45_000 const MAX_POLLINATIONS_ATTEMPTS = POLLINATIONS_RETRY_CONFIG.maxRetries + 1 const ENABLE_DEV_GENERATION_MOCK = process.env.CONVEX_ENABLE_DEV_GENERATION_MOCK === "true" const MOCK_PNG_BASE64 = diff --git a/convex/lib/index.ts b/convex/lib/index.ts index 3d50831..5a894ad 100644 --- a/convex/lib/index.ts +++ b/convex/lib/index.ts @@ -12,6 +12,7 @@ export { decryptApiKey } from "./crypto" // Pollinations API utilities export { POLLINATIONS_BASE_URL, + POLLINATIONS_FETCH_TIMEOUT_MS, buildPollinationsUrl, classifyHttpError, classifyApiError, diff --git a/convex/lib/pollinations.ts b/convex/lib/pollinations.ts index 4ce32b7..931ef9f 100644 --- a/convex/lib/pollinations.ts +++ b/convex/lib/pollinations.ts @@ -12,6 +12,7 @@ /** Pollinations API base URL */ export const POLLINATIONS_BASE_URL = "https://gen.pollinations.ai" +export const POLLINATIONS_FETCH_TIMEOUT_MS = 10 * 60 * 1000 /** Video model IDs - these are the only models that support duration, aspectRatio, audio, and lastFrameImage */ const VIDEO_MODELS = ["veo", "seedance", "seedance-pro", "wan", "grok-video"] as const diff --git a/convex/singleGenerationProcessor.ts b/convex/singleGenerationProcessor.ts index 38018a4..e876163 100644 --- a/convex/singleGenerationProcessor.ts +++ b/convex/singleGenerationProcessor.ts @@ -18,6 +18,7 @@ import type { Id } from "./_generated/dataModel" import { internal } from "./_generated/api" import { action, internalAction, type ActionCtx } from "./_generated/server" import { + POLLINATIONS_FETCH_TIMEOUT_MS, buildPollinationsUrl, calculateBackoffDelay, cropDirtberryImageBuffer, @@ -41,7 +42,6 @@ const POLLINATIONS_RETRY_CONFIG: RetryConfig = { baseDelayMs: 2000, maxDelayMs: 30000, } -const POLLINATIONS_FETCH_TIMEOUT_MS = 45_000 const MAX_POLLINATIONS_ATTEMPTS = POLLINATIONS_RETRY_CONFIG.maxRetries + 1 /**