Commit Graph

133 Commits

Author SHA1 Message Date
twotalesanimation c9deb437c5 Merge branch 'develop' of https://git.twotalesvfx.com/pinto/vfxreview into develop 2026-08-06 15:55:51 +02:00
twotalesanimation a3be3489de feat(worker): one-command packaging and --check install verification
Adds scripts/publish.ps1, which produces a self-contained single-file exe plus
the headless AE build script, optionally zipped for copying to a render machine.

Adds `VFXReviewWorker.exe --check`: resolves every configured path, confirms
aerender/AfterFX/the build script exist, verifies each pathMappings target is
reachable from that machine, and pings the server to confirm the API key is
accepted — exiting non-zero if anything would stop the worker running. Catches
a wrong path at install time rather than in the logs later.

Verified from the published binary: the single-file exe resolves its scripts
folder correctly, so the preview build script ships alongside the exe rather
than embedded and can be patched without a rebuild.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-06 15:46:53 +02:00
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 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 43c717bb85 feat(worker): one-command packaging and --check install verification
Deploy / deploy (push) Failing after 15m27s
Adds scripts/publish.ps1, which produces a self-contained single-file exe plus
the headless AE build script, optionally zipped for copying to a render machine.

Adds `VFXReviewWorker.exe --check`: resolves every configured path, confirms
aerender/AfterFX/the build script exist, verifies each pathMappings target is
reachable from that machine, and pings the server to confirm the API key is
accepted — exiting non-zero if anything would stop the worker running. Catches
a wrong path at install time rather than in the logs later.

Verified from the published binary: the single-file exe resolves its scripts
folder correctly, so the preview build script ships alongside the exe rather
than embedded and can be patched without a rebuild.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-02 15:17:35 +02:00
twotalesanimation ae58dc0366 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-02 14:34:34 +02:00
twotalesanimation 0d0f3e1a33 Image url update
Deploy / deploy (push) Successful in 2m30s
stable-2026-08-01
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 e3bdd59087 fix: add useEffect back to StoryboardGenerator imports
Deploy / deploy (push) Successful in 2m47s
2026-07-22 12:42:28 +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 c968b8a46a Nuke Connector Update
Deploy / deploy (push) Successful in 2m52s
2026-07-22 10:37:13 +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 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 9ad878fb56 Video player updates
Deploy / deploy (push) Successful in 2m42s
2026-07-16 21:36:33 +02:00
twotalesanimation 22f952488e Changes chunk size
Deploy / deploy (push) Successful in 2m34s
2026-07-16 19:37:49 +02:00
twotalesanimation 87332cdae3 Collapseable Comments section
Deploy / deploy (push) Successful in 2m46s
2026-07-16 19:17:17 +02:00
twotalesanimation c6c1c4c370 Collapseable Comments section
Deploy / deploy (push) Successful in 2m43s
2026-07-15 02:22:19 +02:00
twotalesanimation b390c0bb35 Performance updates
Deploy / deploy (push) Successful in 2m48s
2026-07-14 08:27:58 +02:00
twotalesanimation d4a0250c20 Shoot sketches templates
Deploy / deploy (push) Successful in 3m6s
2026-07-12 12:36:18 +02:00
twotalesanimation 2f91c71307 Shoot sketches templates
Deploy / deploy (push) Failing after 44s
2026-07-12 12:27:21 +02:00
twotalesanimation 4ae14cf8b2 Shoot sketches
Deploy / deploy (push) Successful in 2m43s
2026-07-12 12:14:39 +02:00
twotalesanimation 99d1c46b7f reference support
Deploy / deploy (push) Successful in 2m50s
2026-07-12 10:36:29 +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 3ff70cc5e3 add shoot-log migration
Deploy / deploy (push) Successful in 2m57s
2026-07-11 17:02:02 +02:00
twotalesanimation bb61813b04 Supervisor feature
Deploy / deploy (push) Successful in 2m40s
2026-07-11 16:12:41 +02:00
twotalesanimation e24fd8eda0 Supervisor feature
Deploy / deploy (push) Successful in 3m5s
2026-07-11 15:06:12 +02:00
twotalesanimation 6fc818a3db Client View updates
Deploy / deploy (push) Successful in 2m47s
2026-07-09 14:52:50 +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 77cfcbc9e9 API Updates
Deploy / deploy (push) Successful in 2m33s
2026-07-08 19:54:24 +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