#4365

fix(ai): finish async media accounting and recheck output access

OpenSalazareowants to merge intofrom

Continue accounting for asynchronous image and video jobs after client disconnect. Validate provider completion states and recheck filesystem access before saving a generated result.

Auth/permission and billing behavior changes. Confirm the return contract when a completed result cannot be saved after access changes.

Validation on this isolated branch: 263 backend tests across 7 suites. git diff --check passed.

Activity

3
github-actions[bot]3d ago

Coverage Report

StatusCategoryPercentageCovered / Total
🔵Lines94.97%
⬇️ -0.05 pp
38976 / 41038
🔵Statements93.14%
⬇️ -0.06 pp
42816 / 45965
🔵Functions92.43%
⬇️ -0.15 pp
7391 / 7996
🔵Branches84.46%
⬇️ -0.08 pp
29948 / 35457
File Coverage
FileStmtsBranchesFunctionsLinesUncovered Lines
Changed Files
src/backend/controllers/drivers/DriverController.ts87.85%
⬇️ -0.10 pp
56.17%
⬇️ -1.09 pp
61.53%
⬆️ +1.01 pp
94.11%
⬇️ -0.03 pp
6, 13, 16, 24-26, 32-34, 38-39, 43, 44, 45, 46, 47, 186, 272, 490-492, 498, 500-503
src/backend/controllers/drivers/callSlot.ts93.54%94.44%85.71%96.15%54, 66
src/backend/core/context.ts100%
🟰 ±0 pp
100%
🟰 ±0 pp
100%
🟰 ±0 pp
100%
🟰 ±0 pp
src/backend/core/http/middleware/rateLimit.js98.32%
🟰 ±0 pp
91.86%
🟰 ±0 pp
98.55%
🟰 ±0 pp
98.88%
🟰 ±0 pp
137, 168, 171, 440-444, 748
src/backend/drivers/ai-image/ImageGenerationDriver.ts98.38%
⬆️ +0.01 pp
91.89%
🟰 ±0 pp
96.55%
🟰 ±0 pp
98.85%
⬆️ +0.01 pp
137, 293-297, 476-485
src/backend/drivers/ai-image/providers/kling/KlingImageProvider.ts96%
⬆️ +3.06 pp
92.75%
⬆️ +4.02 pp
100%
🟰 ±0 pp
95.83%
⬆️ +1.93 pp
112-114, 140-142, 225
src/backend/drivers/ai-video/VideoGenerationDriver.ts92.67%
⬆️ +0.04 pp
82.12%
🟰 ±0 pp
100%
🟰 ±0 pp
94.41%
⬆️ +0.03 pp
78-81, 188, 236-240, 439-448, 568-574, 611
src/backend/drivers/ai-video/providers/polling.ts97.4%
⬇️ -0.60 pp
94.28%
⬇️ -2.14 pp
100%
🟰 ±0 pp
98.59%
⬇️ -1.41 pp
110, 237-240
src/backend/drivers/ai-video/providers/byteplus/BytePlusVideoProvider.ts93.28%
⬆️ +0.21 pp
85.33%
⬆️ +0.61 pp
100%
🟰 ±0 pp
93.89%
⬆️ +0.14 pp
133-135, 148-150, 254-256, 290-294, 313, 339-343, 469, 480-483
src/backend/drivers/ai-video/providers/kling/KlingVideoProvider.ts96.08%
⬆️ +0.13 pp
92.55%
⬆️ +0.69 pp
100%
🟰 ±0 pp
95.85%
⬆️ +0.12 pp
170-172, 201-203, 211-213, 353, 489-492, 552-554, 562
src/backend/drivers/ai-video/providers/minimax/MiniMaxVideoProvider.ts96.69%
⬆️ +0.11 pp
90.09%
⬆️ +0.57 pp
96.77%
⬆️ +0.22 pp
96.5%
⬆️ +0.09 pp
106, 265-267, 312-314, 371, 383, 485, 605
src/backend/drivers/ai-video/providers/together/TogetherVideoProvider.ts96.61%
⬆️ +0.12 pp
90%
⬆️ +0.50 pp
100%
🟰 ±0 pp
97.04%
⬆️ +0.09 pp
201-203, 500, 514-517, 527-528
src/backend/drivers/util/generatedMedia.ts100%
⬆️ +7.70 pp
95.83%
⬆️ +1.39 pp
100%
⬆️ +33.34 pp
100%
⬆️ +7.70 pp
Generated in workflow #3049 for commit ab36a6a by the Vitest Coverage Report Action