Commit Graph

45 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 7b36329769 Hide Archived Productions
Deploy / deploy (push) Successful in 2m43s
2026-08-06 10:42:49 +02:00
twotalesanimation d2c91e7b65 Shot status grouping
Deploy / deploy (push) Successful in 2m44s
2026-08-06 10:07:59 +02:00
twotalesanimation 852081b4d6 CSV Group updates
Deploy / deploy (push) Successful in 2m43s
2026-08-06 09:21:48 +02:00
twotalesanimation 98120f3ca8 CSV Group updates
Deploy / deploy (push) Successful in 2m45s
2026-08-06 09:13:16 +02:00
twotalesanimation 5f3c89119a Further CSV Import method added
Deploy / deploy (push) Successful in 2m42s
2026-08-06 08:36:26 +02:00
twotalesanimation c727795a78 Add ChunkLoadError boundary to force reload on stale deployment
Deploy / deploy (push) Successful in 7m58s
2026-08-06 08:12:16 +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 9375d5212c BIG MOOOOVE to Object Storage 2
Deploy / deploy (push) Successful in 2m42s
2026-07-16 22:33:25 +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 2f91c71307 Shoot sketches templates
Deploy / deploy (push) Failing after 44s
2026-07-12 12:27:21 +02:00
twotalesanimation e24fd8eda0 Supervisor feature
Deploy / deploy (push) Successful in 3m5s
2026-07-11 15:06:12 +02:00
twotalesanimation 4624a4f67d Key Shots
Deploy / deploy (push) Successful in 3m0s
2026-07-09 13:43:16 +02:00
twotalesanimation 637b141c87 Batch Video Uploads
Deploy / deploy (push) Successful in 2m38s
2026-07-09 12:46:50 +02:00
twotalesanimation 75d5149bea versioning added
Deploy / deploy (push) Successful in 3m12s
2026-06-25 22:19:22 +02:00
twotalesanimation 935a293777 sharing logic
Deploy / deploy (push) Successful in 2m33s
2026-06-25 19:13:32 +02:00
twotalesanimation 5b613b7107 updated bucket settings page
Deploy / deploy (push) Successful in 3m1s
2026-06-25 17:25:25 +02:00
twotalesanimation 0274b63c1e moved high res uploads button
Deploy / deploy (push) Successful in 2m39s
2026-06-25 10:14:27 +02:00
twotalesanimation 1a77a82566 scroll positions remembered
Deploy / deploy (push) Successful in 2m30s
2026-06-19 12:58:47 +02:00
twotalesanimation 8caf0f9bd1 CSV TC import
Deploy / deploy (push) Successful in 3m9s
2026-06-14 14:12:45 +02:00
twotalesanimation 6abfa8d0b5 csv take 3
Deploy / deploy (push) Successful in 3m2s
2026-06-12 17:08:10 +02:00
twotalesanimation 4da80d29a9 CSV shot implementation
Deploy / deploy (push) Failing after 46s
2026-06-12 15:06:50 +02:00
twotalesanimation 450f969007 edit task title added
Deploy / deploy (push) Successful in 2m33s
2026-06-12 12:57:29 +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 b640fa472c added unapprove
Deploy / deploy (push) Successful in 2m37s
2026-06-11 15:19:12 +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 ecaa963055 table displays and memory
Deploy / deploy (push) Failing after 2m48s
2026-06-07 14:39:21 +02:00
twotalesanimation fcd19d2ca0 Added deadline to status table
Deploy / deploy (push) Failing after 2m44s
2026-06-05 19:32:42 +02:00
twotalesanimation b187e1b16e Added bulk date changes
Deploy / deploy (push) Failing after 2m53s
2026-06-05 08:01:38 +02:00
twotalesanimation f5c97fd9a7 updated shot status pages
Deploy / deploy (push) Failing after 2m46s
2026-06-05 07:53:24 +02:00
twotalesanimation e75a15132e Added status tracking & episode due dates
Deploy / deploy (push) Failing after 2m30s
2026-06-03 14:49:12 +02:00
twotalesanimation 521eb38dcd added edit tasks
Deploy / deploy (push) Successful in 4m5s
2026-05-29 09:35:35 +02:00
twotalesanimation 0723bea4ee kanban thumbnails
Deploy / deploy (push) Successful in 2m30s
2026-05-24 18:36:22 +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 de59bbc0aa added episodic grouping on project pages
Deploy / deploy (push) Successful in 2m28s
2026-05-20 22:20:20 +02:00
twotalesanimation e4eb8fb3a9 Added delete version
Deploy / deploy (push) Successful in 2m28s
2026-05-20 21:53:18 +02:00
twotalesanimation 05475a6c19 added duplicate shot
Deploy / deploy (push) Successful in 2m28s
2026-05-20 18:20:45 +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