From ca4ffc6de04e1857b062e43f1f384798ece62b83 Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Tue, 10 Mar 2026 08:11:21 -0400 Subject: [PATCH] fixes --- .../media_file_origin_product_category.rs | 12 +++++++++++- .../src/process_job/process_successful_job.rs | 4 ++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/crates/schema/public/enums/src/by_table/media_files/media_file_origin_product_category.rs b/crates/schema/public/enums/src/by_table/media_files/media_file_origin_product_category.rs index 062a4dc723..16824299bf 100644 --- a/crates/schema/public/enums/src/by_table/media_files/media_file_origin_product_category.rs +++ b/crates/schema/public/enums/src/by_table/media_files/media_file_origin_product_category.rs @@ -69,6 +69,9 @@ pub enum MediaFileOriginProductCategory { #[serde(rename = "video_gen")] VideoGeneration, + #[serde(rename = "world_gen")] + WorldGeneration, + // Media files for video filters #[deprecated(note = "This isn't relevant product surface area anymore")] #[serde(rename = "video_filter")] @@ -102,6 +105,7 @@ impl MediaFileOriginProductCategory { Self::Mocap => "mocap", Self::ImageGeneration => "image_gen", Self::VideoGeneration => "video_gen", + Self::WorldGeneration => "world_gen", Self::VideoFilter => "video_filter", Self::Workflow => "workflow", } @@ -122,6 +126,7 @@ impl MediaFileOriginProductCategory { "mocap" => Ok(Self::Mocap), "image_gen" => Ok(Self::ImageGeneration), "video_gen" => Ok(Self::VideoGeneration), + "world_gen" => Ok(Self::WorldGeneration), "video_filter" => Ok(Self::VideoFilter), "workflow" => Ok(Self::Workflow), _ => Err(format!("invalid value: {:?}", value)), @@ -145,6 +150,7 @@ impl MediaFileOriginProductCategory { Self::Mocap, Self::ImageGeneration, Self::VideoGeneration, + Self::WorldGeneration, Self::VideoFilter, Self::Workflow, ]) @@ -174,6 +180,7 @@ mod tests { assert_serialization(MediaFileOriginProductCategory::Mocap, "mocap"); assert_serialization(MediaFileOriginProductCategory::ImageGeneration, "image_gen"); assert_serialization(MediaFileOriginProductCategory::VideoGeneration, "video_gen"); + assert_serialization(MediaFileOriginProductCategory::WorldGeneration, "world_gen"); assert_serialization(MediaFileOriginProductCategory::VideoFilter, "video_filter"); assert_serialization(MediaFileOriginProductCategory::Workflow, "workflow"); } @@ -193,6 +200,7 @@ mod tests { assert_eq!(MediaFileOriginProductCategory::Mocap.to_str(), "mocap"); assert_eq!(MediaFileOriginProductCategory::ImageGeneration.to_str(), "image_gen"); assert_eq!(MediaFileOriginProductCategory::VideoGeneration.to_str(), "video_gen"); + assert_eq!(MediaFileOriginProductCategory::WorldGeneration.to_str(), "world_gen"); assert_eq!(MediaFileOriginProductCategory::VideoFilter.to_str(), "video_filter"); assert_eq!(MediaFileOriginProductCategory::Workflow.to_str(), "workflow"); } @@ -212,6 +220,7 @@ mod tests { assert_eq!(MediaFileOriginProductCategory::from_str("mocap").unwrap(), MediaFileOriginProductCategory::Mocap); assert_eq!(MediaFileOriginProductCategory::from_str("image_gen").unwrap(),MediaFileOriginProductCategory::ImageGeneration); assert_eq!(MediaFileOriginProductCategory::from_str("video_gen").unwrap(), MediaFileOriginProductCategory::VideoGeneration); + assert_eq!(MediaFileOriginProductCategory::from_str("world_gen").unwrap(), MediaFileOriginProductCategory::WorldGeneration); assert_eq!(MediaFileOriginProductCategory::from_str("video_filter").unwrap(), MediaFileOriginProductCategory::VideoFilter); assert_eq!(MediaFileOriginProductCategory::from_str("workflow").unwrap(), MediaFileOriginProductCategory::Workflow); } @@ -219,7 +228,7 @@ mod tests { #[test] fn all_variants() { let mut variants = MediaFileOriginProductCategory::all_variants(); - assert_eq!(variants.len(), 15); + assert_eq!(variants.len(), 16); assert_eq!(variants.pop_first(), Some(MediaFileOriginProductCategory::Unknown)); assert_eq!(variants.pop_first(), Some(MediaFileOriginProductCategory::FaceAnimator)); assert_eq!(variants.pop_first(), Some(MediaFileOriginProductCategory::FaceFusion)); @@ -233,6 +242,7 @@ mod tests { assert_eq!(variants.pop_first(), Some(MediaFileOriginProductCategory::Mocap)); assert_eq!(variants.pop_first(), Some(MediaFileOriginProductCategory::ImageGeneration)); assert_eq!(variants.pop_first(), Some(MediaFileOriginProductCategory::VideoGeneration)); + assert_eq!(variants.pop_first(), Some(MediaFileOriginProductCategory::WorldGeneration)); assert_eq!(variants.pop_first(), Some(MediaFileOriginProductCategory::VideoFilter)); assert_eq!(variants.pop_first(), Some(MediaFileOriginProductCategory::Workflow)); assert_eq!(variants.pop_first(), None); diff --git a/crates/service/job/worldlabs_job/src/process_job/process_successful_job.rs b/crates/service/job/worldlabs_job/src/process_job/process_successful_job.rs index 5c39adf270..7702e07277 100644 --- a/crates/service/job/worldlabs_job/src/process_job/process_successful_job.rs +++ b/crates/service/job/worldlabs_job/src/process_job/process_successful_job.rs @@ -16,7 +16,7 @@ use world_labs_api::api::requests::get_operation::get_operation::GetOperationRes use crate::job_dependencies::JobDependencies; const PREFIX: &str = "artcraft_"; -const SUFFIX: &str = ".spz"; +const SUFFIX: &str = ".ceramic.spz"; // NB: "ceramic" triggers some heuristics in Artcraft, such as flipping the model upside down /// Download the completed splat, upload to bucket, create media file record, and mark job done. pub async fn process_successful_job( @@ -91,7 +91,7 @@ pub async fn process_successful_job( .media_file_class(MediaFileClass::Dimensional) .media_file_type(MediaFileType::Spz) .media_file_origin_category(MediaFileOriginCategory::Inference) - .media_file_origin_product_category(MediaFileOriginProductCategory::ImageGeneration) + .media_file_origin_product_category(MediaFileOriginProductCategory::WorldGeneration) .mime_type("application/gzip") .file_size_bytes(splat_bytes.len() as u64) .checksum_sha2(&checksum)