d038f1b2f4
feat: add xai video model
2026-06-03 16:59:43 +08:00
3ed3f721eb
fix(api): harden subprocess/SSRF/concurrency and add db pool
...
- run(): add timeout (download 600s via DOWNLOAD_TIMEOUT_SECONDS, else 300s);
TimeoutExpired now kills the child and fails the job instead of hanging forever
- create_job: validate_source_url() rejects file://, private/loopback/link-local
IPs and off-allowlist hosts (SOURCE_URL_ALLOWED_HOSTS) — closes SSRF/local-read
- per-job RLock guards save_state/update/update_generated_video and the retry
check-and-set so concurrent video workers can't clobber state.json
- db: psycopg_pool connection pool (graceful fallback if unavailable); write
failures surfaced via logging.error instead of silent print
- read-only media GET routes use job_path() (no mkdir) to stop empty-dir spam
- wrap remaining Image.open() in with-blocks to avoid fd leaks
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-30 02:04:59 +08:00
854947a239
feat: cache canvas media locally
2026-05-28 15:43:54 +08:00
d7f72f6b42
auto-save 2026-05-27 23:01 (~5)
2026-05-27 23:02:52 +08:00
9ab541796b
auto-save 2026-05-27 17:18 (~9)
2026-05-27 17:18:45 +08:00
8999fe0baf
auto-save 2026-05-27 17:13 (~2)
2026-05-27 17:13:16 +08:00
5046e2304e
auto-save 2026-05-27 14:36 (~3)
2026-05-27 14:36:48 +08:00
bdb7226642
revert: restore original image generation config
2026-05-26 14:02:35 +08:00
56a23847a1
fix: align Gemini image sizes with official presets
2026-05-26 13:05:27 +08:00
5d047af346
feat: expose image quality and pixel sizes
2026-05-26 12:22:21 +08:00
f5be97b9e7
fix: make AI polish intent-aware
2026-05-26 11:50:01 +08:00
5290812353
feat: add personal canvas workflows
2026-05-26 11:18:28 +08:00
daec523dec
fix: gate AI character safety words
2026-05-26 10:23:00 +08:00
509bd9b594
fix: make AI polish neutral
2026-05-26 10:08:22 +08:00
c415cd0aba
auto-save 2026-05-26 10:00 (~2)
2026-05-26 10:00:47 +08:00
579e538aa7
fix: explain video generation failures
2026-05-26 09:41:03 +08:00
836a33e85b
auto-save 2026-05-26 09:38 (~2)
2026-05-26 09:39:00 +08:00
79696b7d3f
auto-save 2026-05-26 08:38 (~6)
2026-05-26 08:38:40 +08:00
544087cf9d
auto-save 2026-05-26 00:13 (~8)
2026-05-26 00:13:17 +08:00
089a30d970
auto-save 2026-05-26 00:07 (+1, ~3)
2026-05-26 00:07:48 +08:00
84d9de6b30
fix: align canvas model options with backend
2026-05-25 18:56:20 +08:00
779e9b342b
feat: queue video generation per user
2026-05-25 15:55:43 +08:00
a02c5eb48c
fix: tolerate blank creative job requests
2026-05-25 14:46:36 +08:00
e77e77fada
fix: align generation size and duration options
2026-05-25 14:23:09 +08:00
dcc8abc812
feat: expose generation model choices
2026-05-25 11:02:13 +08:00
3b1d7645d1
fix: normalize media prompts and patent views
2026-05-25 09:38:19 +08:00
f8c51b5ef6
fix: enforce orthographic top bottom subject views
2026-05-25 09:27:31 +08:00
04a822ac79
feat: add feishu multi-user auth
2026-05-24 00:31:06 +08:00
3146266383
feat: redesign creative studio entry
2026-05-23 23:55:05 +08:00
642793500f
fix: support multilingual audio transcription
2026-05-22 09:26:59 +08:00
02a9999d8c
auto-save 2026-05-21 15:25 (~2)
2026-05-21 15:26:00 +08:00
7bb4f3ea9f
auto-save 2026-05-21 15:15 (+2, ~3)
2026-05-21 15:15:07 +08:00
b82dad4aa8
auto-save 2026-05-21 15:09 (+1, ~3)
2026-05-21 15:09:40 +08:00
b9c5511128
feat: improve subject conversion composer
2026-05-20 16:52:31 +08:00
d82175f0f3
feat: make subject conversion dialog-driven
2026-05-20 13:53:19 +08:00
e10b1a6e1a
fix: quiet subject agent model warnings
2026-05-20 13:07:58 +08:00
35fc088375
feat: add subject image agent workflow
2026-05-20 12:51:02 +08:00
7acbfd5214
fix: isolate subject reference generation
2026-05-20 11:39:33 +08:00
2366662d33
fix: lock subject packs and upscale assets
2026-05-20 09:52:03 +08:00
c245bff4b8
feat: add subject image model controls
2026-05-20 09:16:28 +08:00
3756259850
feat: add Gemini image fallback circuit breaker
2026-05-19 23:56:20 +08:00
fd794e3e30
fix: fail fast on gpt-image-2 timeouts
2026-05-19 21:58:59 +08:00
00df9d01fe
feat: stream subject packs by generation batch
2026-05-19 21:31:47 +08:00
15c6f4d2fc
feat: simplify subject reconstruction layer
2026-05-19 20:39:15 +08:00
aabddef486
fix: improve filmstrip picking and audio retry
2026-05-19 20:01:45 +08:00
b9ba8113f0
revert: restore storyboard intake workflow
2026-05-19 16:17:58 +08:00
54979bc4e2
feat: make intake auto extract copy
2026-05-19 15:48:27 +08:00
e03c5db3fd
fix: isolate storyboard videos by row
2026-05-19 15:24:30 +08:00
64a9673fa1
feat: streamline storyboard video rows
2026-05-19 15:11:08 +08:00
980d252815
fix: use cloud local asr fallback
2026-05-19 14:23:20 +08:00