50 Commits

Author SHA1 Message Date
twotalesanimation cc89415a29 feat(pipeline): render queue, worker service and automated preview generation
One "Queue Export" click now renders the EXR sequence, then rebuilds the shot
headlessly with the studio slate/overlay template to produce the delivery MOV
and review MP4. Implements RenderPipeline2 phases 1-2 plus the preview stage.

Server:
- New models Export, RenderJob, ExportEvent, Machine, WorkerHeartbeat, plus
  Project.deliveryConfig and per-submission slate fields (Export.vfxScope,
  Export.submissionNote, inherited from the shot's previous export).
  Both migrations are purely additive; no existing column is touched.
- lib/render-pipeline: server-enforced state machine, transactional version
  increment with supersede, atomic FOR UPDATE SKIP LOCKED claim gated by
  machine availability windows, and a lease reaper run from instrumentation.ts.
- /api/ext/* endpoints for the panel and workers; session-auth mirrors under
  /api/render and /api/machines for the web UI.
- Pipeline pages: render queue, export detail, machine monitoring, plus an
  Exports tab on shot detail.

RenderWorker (.NET 8 Windows service, new):
- Registration, heartbeat as cancel channel, claim loop, aerender runner with
  progress parsing and stall watchdog, crash recovery and disk-spooled
  reporting that survives server downtime.
- Preview stage: headless AE assembles the preview comp into a throwaway AEP
  with both output modules queued, then a single aerender pass renders them.
  Preview jobs are not claimed while an interactive AE session is open, so an
  artist's project is never taken over.

AE panel: Queue Export with live status polling, urgent flag, retry, and the
VFX Scope / Submission Note fields. Every existing panel action is unchanged.

Preview chaining ships disabled behind SystemConfig preview.enabled.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-06 15:46:53 +02:00
twotalesanimation 6b15bae62a Bulk Thumbnails upload
Deploy / deploy (push) Successful in 2m50s
2026-08-06 12:59:28 +02:00
twotalesanimation 0d0f3e1a33 Image url update
Deploy / deploy (push) Successful in 2m30s
2026-07-29 07:46:00 +02:00
twotalesanimation f0dcf17e93 Image url update
Deploy / deploy (push) Successful in 2m50s
2026-07-29 07:24:57 +02:00
twotalesanimation 4c8b57391d Image url update
Deploy / deploy (push) Successful in 2m52s
2026-07-29 01:33:40 +02:00
twotalesanimation 3ae0a6e32f Storyboard Feature
Deploy / deploy (push) Failing after 1m53s
2026-07-22 12:38:26 +02:00
twotalesanimation 77a3161f0c Storyboard Feature
Deploy / deploy (push) Successful in 2m53s
2026-07-22 12:19:19 +02:00
twotalesanimation 15fda1ec44 CORS UPloads
Deploy / deploy (push) Successful in 3m5s
2026-07-22 00:03:02 +02:00
twotalesanimation 519fe2ad33 MOV upload update
Deploy / deploy (push) Successful in 2m53s
2026-07-21 23:31:32 +02:00
twotalesanimation 243fbbce7a API Update
Deploy / deploy (push) Successful in 2m45s
2026-07-21 09:53:12 +02:00
twotalesanimation 3494c9a2b3 MP4 on Hetz
Deploy / deploy (push) Successful in 2m42s
2026-07-16 23:26:12 +02:00
twotalesanimation 96c0f2b84f OBJ then local reverse
Deploy / deploy (push) Successful in 2m44s
2026-07-16 23:19:02 +02:00
twotalesanimation 384a7770ea OBJ then local 2
Deploy / deploy (push) Successful in 2m43s
2026-07-16 23:12:58 +02:00
twotalesanimation e756eb9015 OBJ then local
Deploy / deploy (push) Successful in 2m53s
2026-07-16 23:04:15 +02:00
twotalesanimation 745634f1b6 BIG MOOOOVE to Object Storage
Deploy / deploy (push) Successful in 2m43s
2026-07-16 22:15:58 +02:00
twotalesanimation 3264abb432 Object storage test
Deploy / deploy (push) Successful in 2m40s
2026-07-16 21:58:06 +02:00
twotalesanimation 22f952488e Changes chunk size
Deploy / deploy (push) Successful in 2m34s
2026-07-16 19:37:49 +02:00
twotalesanimation b390c0bb35 Performance updates
Deploy / deploy (push) Successful in 2m48s
2026-07-14 08:27:58 +02:00
twotalesanimation 2f91c71307 Shoot sketches templates
Deploy / deploy (push) Failing after 44s
2026-07-12 12:27:21 +02:00
twotalesanimation c09d06b6c7 reference support
Deploy / deploy (push) Successful in 3m38s
2026-07-12 10:27:46 +02:00
twotalesanimation 42e614c592 feat: link takes to pipeline shots via dropdown selector
Deploy / deploy (push) Successful in 2m41s
2026-07-11 21:26:52 +02:00
twotalesanimation b9953ff543 fix: BigInt serialization in shoot-log API responses
Deploy / deploy (push) Successful in 2m41s
2026-07-11 19:38:54 +02:00
twotalesanimation e24fd8eda0 Supervisor feature
Deploy / deploy (push) Successful in 3m5s
2026-07-11 15:06:12 +02:00
twotalesanimation 637b141c87 Batch Video Uploads
Deploy / deploy (push) Successful in 2m38s
2026-07-09 12:46:50 +02:00
twotalesanimation b27aa1788f API Updates
Deploy / deploy (push) Successful in 2m37s
2026-07-08 16:28:18 +02:00
twotalesanimation 4f7e2a4adc API Updates
Deploy / deploy (push) Successful in 2m35s
2026-07-08 16:03:57 +02:00
twotalesanimation afcef02409 API Updates
Deploy / deploy (push) Successful in 3m3s
2026-07-08 14:38:56 +02:00
twotalesanimation d40ca8eb55 API Updates
Deploy / deploy (push) Successful in 2m45s
2026-07-08 14:17:03 +02:00
twotalesanimation 7026a5342b fixed client review player annotations
Deploy / deploy (push) Successful in 2m46s
2026-07-02 15:58:20 +02:00
twotalesanimation 75d5149bea versioning added
Deploy / deploy (push) Successful in 3m12s
2026-06-25 22:19:22 +02:00
twotalesanimation 13d47315dd download link updated
Deploy / deploy (push) Successful in 2m38s
2026-06-25 18:29:58 +02:00
twotalesanimation ba579db494 updated project page
Deploy / deploy (push) Successful in 2m39s
2026-06-25 10:42:26 +02:00
twotalesanimation b683976cc6 High res uploads
Deploy / deploy (push) Successful in 3m16s
2026-06-25 09:56:41 +02:00
twotalesanimation bb7368ab06 client review by episode filter added
Deploy / deploy (push) Failing after 47s
2026-06-24 11:20:33 +02:00
twotalesanimation 835081c1b9 notifications
Deploy / deploy (push) Successful in 2m32s
2026-06-19 13:25:19 +02:00
twotalesanimation fc0e0b4716 UPdated API routes
Deploy / deploy (push) Successful in 2m43s
2026-06-14 14:21:49 +02:00
twotalesanimation 1bdb147d24 API UPdate
Deploy / deploy (push) Successful in 2m38s
2026-06-12 19:20:58 +02:00
twotalesanimation 23f0ceca3f client passwords
Deploy / deploy (push) Successful in 2m57s
2026-06-12 12:37:57 +02:00
twotalesanimation 72ce7af1ec mobile support for client review player2
Deploy / deploy (push) Successful in 2m31s
2026-06-12 09:33:54 +02:00
twotalesanimation 3248b8596a Moved approvals comments and views to shots page
Deploy / deploy (push) Successful in 2m36s
2026-06-12 08:14:34 +02:00
twotalesanimation d56f3b3ad5 Added approval buttons to playlist
Deploy / deploy (push) Successful in 2m45s
2026-06-12 07:53:07 +02:00
twotalesanimation 7788907a4a task approval updates
Deploy / deploy (push) Successful in 2m38s
2026-06-11 15:55:57 +02:00
twotalesanimation 3f0c5d1dbe new Approval Updates
Deploy / deploy (push) Failing after 3m34s
2026-06-11 12:30:28 +02:00
twotalesanimation f16d0b0466 new playlist page 2
Deploy / deploy (push) Failing after 2m49s
2026-06-07 20:27:10 +02:00
twotalesanimation 0be1818ff5 new playlist page
Deploy / deploy (push) Failing after 2m49s
2026-06-07 19:33:59 +02:00
twotalesanimation 15046892d1 api update
Deploy / deploy (push) Successful in 2m33s
2026-05-30 10:19:35 +02:00
twotalesanimation 36ee62dacc test
Deploy / deploy (push) Successful in 2m32s
2026-05-29 10:40:28 +02:00
twotalesanimation 521eb38dcd added edit tasks
Deploy / deploy (push) Successful in 4m5s
2026-05-29 09:35:35 +02:00
twotalesanimation 3e3a8f7a26 multiple plates
Deploy / deploy (push) Successful in 2m32s
2026-05-21 19:16:03 +02:00
twotalesanimation 0fbe856dce Initial commit 2026-05-19 22:20:29 +02:00