Commit Graph

207 Commits

Author SHA1 Message Date
88d598303c fix: route ai polish through available models 2026-06-04 10:13:31 +08:00
3f216727bb fix: download xai video outputs reliably 2026-06-03 23:21:22 +08:00
ff0bfaa8b2 fix: gate video models by runtime availability 2026-06-03 17:48:49 +08:00
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