15 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 0d0f3e1a33 Image url update
Deploy / deploy (push) Successful in 2m30s
2026-07-29 07:46:00 +02:00
twotalesanimation c09d06b6c7 reference support
Deploy / deploy (push) Successful in 3m38s
2026-07-12 10:27:46 +02:00
twotalesanimation 4624a4f67d Key Shots
Deploy / deploy (push) Successful in 3m0s
2026-07-09 13:43:16 +02:00
twotalesanimation 0274b63c1e moved high res uploads button
Deploy / deploy (push) Successful in 2m39s
2026-06-25 10:14:27 +02:00
twotalesanimation b683976cc6 High res uploads
Deploy / deploy (push) Successful in 3m16s
2026-06-25 09:56:41 +02:00
twotalesanimation 3f0c5d1dbe new Approval Updates
Deploy / deploy (push) Failing after 3m34s
2026-06-11 12:30:28 +02:00
twotalesanimation 2020f59152 added delete shots
Deploy / deploy (push) Successful in 3m57s
2026-05-24 01:13:21 +02:00
twotalesanimation 3e3a8f7a26 multiple plates
Deploy / deploy (push) Successful in 2m32s
2026-05-21 19:16:03 +02:00
twotalesanimation 32073fbe4c added edity shot name
Deploy / deploy (push) Successful in 2m36s
2026-05-21 18:16:54 +02:00
twotalesanimation d39b968dcb added custom grouping on project pages
Deploy / deploy (push) Successful in 2m26s
2026-05-20 22:43:29 +02:00
twotalesanimation 05475a6c19 added duplicate shot
Deploy / deploy (push) Successful in 2m28s
2026-05-20 18:20:45 +02:00
twotalesanimation 9af60a632b fixed build issues
Deploy / deploy (push) Failing after 2m40s
2026-05-20 13:51:47 +02:00
twotalesanimation bcea123112 Add original footage to shots function
Deploy / deploy (push) Has been cancelled
2026-05-20 11:02:33 +02:00
twotalesanimation 0fbe856dce Initial commit 2026-05-19 22:20:29 +02:00