Commit Graph

1109 Commits

Author SHA1 Message Date
b56d5177e5 fix(canvas): persist video uploads and fix media cache/polling
- VideoNode upload now goes through backend (/jobs/upload via uploadCanvasVideo)
  for a stable reloadable URL instead of a session-only blob: that leaked and
  broke on reload; cleanNodeForStorage also strips blob: URLs
- useCachedMediaUrl: record real blob.size (chunked videos reported 0, making the
  LRU byte cap a no-op); guard the catch path with the race token
- useApi: send credentials when reading reference images; drop the node-level
  video poll that duplicated the Canvas-level syncPendingVideoNodes loop
- request.js: 60s timeout (was ~8.3h) + withCredentials
- remove dead getVideoTaskStatus/pollVideoTask that ignored taskId

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-30 02:04:59 +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
56ea8aef11 auto-save 2026-05-29 16:54 (~2) 2026-05-29 16:54:40 +08:00
854947a239 feat: cache canvas media locally 2026-05-28 15:43:54 +08:00
4bcca76098 fix: prevent video generate button drag capture 2026-05-28 15:26:41 +08:00
5c6476fe1a fix: restore video generation config guard 2026-05-28 10:03:44 +08:00
47b7073514 docs: add launch usage guide 2026-05-28 09:50:57 +08:00
fd5aefe1b9 auto-save 2026-05-28 09:38 (+1, ~1) 2026-05-28 09:38:41 +08:00
e97dc032d5 auto-save 2026-05-28 09:33 (~2) 2026-05-28 09:33:11 +08:00
538b24a2fd auto-save 2026-05-27 23:08 (~5) 2026-05-27 23:08:22 +08:00
d7f72f6b42 auto-save 2026-05-27 23:01 (~5) 2026-05-27 23:02:52 +08:00
b6a7e7b4b8 chore: harden production deploy scripts 2026-05-27 22:20:48 +08:00
0c30fb9091 auto-save 2026-05-27 18:13 (~3) 2026-05-27 18:13:45 +08:00
13d9057318 auto-save 2026-05-27 18:08 (~2) 2026-05-27 18:08:07 +08:00
dab4bde28f auto-save 2026-05-27 17:51 (~4) 2026-05-27 17:51:41 +08:00
6ac548a937 auto-save 2026-05-27 17:29 (~3) 2026-05-27 17:29:45 +08:00
fb939b8fcf auto-save 2026-05-27 17:24 (~4) 2026-05-27 17:24:16 +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
ec38215dd5 fix: persist uploaded canvas reference images 2026-05-27 15:54:22 +08:00
685a6c4d64 docs: record canvas click performance optimization 2026-05-27 15:33:10 +08:00
52e7a01a7e auto-save 2026-05-27 15:26 (~3) 2026-05-27 15:28:29 +08:00
fdef7f77e1 auto-save 2026-05-27 15:20 (~3) 2026-05-27 15:20:42 +08:00
3035efcceb docs: codify marketing product baseline 2026-05-27 15:06:31 +08:00
f3c0500b60 fix: auto-sync completed canvas videos 2026-05-27 14:59:39 +08:00
284296d3e9 auto-save 2026-05-27 14:58 (+2, ~2) 2026-05-27 14:58:42 +08:00
3c146d64a0 auto-save 2026-05-27 14:53 (+1, ~6) 2026-05-27 14:53:13 +08:00
22398c1483 auto-save 2026-05-27 14:47 (~2) 2026-05-27 14:47:45 +08:00
a699899323 auto-save 2026-05-27 14:42 (~2) 2026-05-27 14:42:16 +08:00
5046e2304e auto-save 2026-05-27 14:36 (~3) 2026-05-27 14:36:48 +08:00
934bdd1fa2 auto-save 2026-05-26 19:32 (~2) 2026-05-26 19:33:03 +08:00
e0df6a5d0f auto-save 2026-05-26 17:47 (~2) 2026-05-26 17:47:35 +08:00
0eb775dff3 docs: compact user guide pdf layout 2026-05-26 17:26:44 +08:00
6d32b63eab docs: export user guide pdf 2026-05-26 16:11:44 +08:00
fe92c7943d docs: add employee user guide 2026-05-26 15:56:54 +08:00
8d5311c60a chore: add local docker validation workflow 2026-05-26 14:50:00 +08:00
ef9b8312ec docs: record image config restore deployment 2026-05-26 14:05:05 +08:00
bdb7226642 revert: restore original image generation config 2026-05-26 14:02:35 +08:00
ffdb60c463 docs: record Gemini image size deployment 2026-05-26 13:09:56 +08:00
56a23847a1 fix: align Gemini image sizes with official presets 2026-05-26 13:05:27 +08:00
cb0659fa00 docs: record image config deployment 2026-05-26 12:24:48 +08:00
5d047af346 feat: expose image quality and pixel sizes 2026-05-26 12:22:21 +08:00
47300b8fa6 docs: record AI polish deployment 2026-05-26 11:52:03 +08:00
f5be97b9e7 fix: make AI polish intent-aware 2026-05-26 11:50:01 +08:00
13fa5a08da docs: record personal workflow deployment 2026-05-26 11:21:25 +08:00
5290812353 feat: add personal canvas workflows 2026-05-26 11:18:28 +08:00
bbd1f08f7c docs: record expanded suggestions deployment 2026-05-26 10:51:10 +08:00
7f3a6cc429 fix: expand canvas suggestions 2026-05-26 10:48:39 +08:00
054f082323 docs: record suggestion rotation deployment 2026-05-26 10:42:22 +08:00
d01fdc5508 fix: rotate short canvas suggestions 2026-05-26 10:38:51 +08:00