From 8af930621840030396dda1fef214664544b783af Mon Sep 17 00:00:00 2001 From: Adir Amsalem Date: Sun, 8 Nov 2026 12:09:34 +0000 Subject: [PATCH 1/3] test: lucy-latest captures at the shape of lucy-2.6 Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- tests/test_models.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tests/test_models.cpp b/tests/test_models.cpp index d1194bd..dabb0cd 100644 --- a/tests/test_models.cpp +++ b/tests/test_models.cpp @@ -53,8 +53,14 @@ TEST_CASE("realtime() resolves canonical models with correct geometry") { CHECK(static_cast(lucy26.supportedSpeeds[0]) == static_cast(Speed::Fast)); } -TEST_CASE("realtime() accepts latest aliases (lucy-vton-latest resolves server-side to lucy-vton-3.6)") { +TEST_CASE("realtime() accepts latest aliases (lucy-latest -> lucy-2.6, lucy-vton-latest -> lucy-vton-3.6)") { CHECK(models::realtime("lucy-latest").urlPath == "/v1/stream"); + // lucy-latest resolves server-side to lucy-2.6; capture at the shape it serves. + const auto lucyLatest = models::realtime("lucy-latest"); + const auto lucy26 = models::realtime("lucy-2.6"); + CHECK(lucyLatest.fps == lucy26.fps); + CHECK(lucyLatest.width == lucy26.width); + CHECK(lucyLatest.height == lucy26.height); CHECK(models::realtime("lucy-vton-latest").name == "lucy-vton-latest"); CHECK(models::realtime("lucy-vton-latest").width == 1280); CHECK(models::realtime("lucy-vton-latest").height == 720); From 23bbf84199e151c970d4cb02e2195f68775f1a40 Mon Sep 17 00:00:00 2001 From: Adir Amsalem Date: Sun, 8 Nov 2026 12:09:34 +0000 Subject: [PATCH 2/3] fix(models): lucy-latest geometry follows lucy-2.6 (1280x720) Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- include/decart/models.h | 4 ++-- src/models.cpp | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/include/decart/models.h b/include/decart/models.h index 51af500..e5ecade 100644 --- a/include/decart/models.h +++ b/include/decart/models.h @@ -36,8 +36,8 @@ namespace models { /// Accepts canonical names ("lucy-2.1", "lucy-2.5", "lucy-2.6", "lucy-vton-3.5", /// "lucy-vton-3.6", "lucy-restyle-2") and server-resolved aliases /// ("lucy-latest", "lucy-vton-latest", "lucy-restyle-latest"). Aliases are -/// resolved by the server; e.g. "lucy-vton-latest" currently serves -/// "lucy-vton-3.6". +/// resolved by the server; e.g. "lucy-latest" currently serves "lucy-2.6" and +/// "lucy-vton-latest" currently serves "lucy-vton-3.6". /// /// @throws Exception(ErrorCode::ModelNotFound) if the name is unknown. ModelDefinition realtime(std::string_view name); diff --git a/src/models.cpp b/src/models.cpp index a4c0ca7..a2f89b6 100644 --- a/src/models.cpp +++ b/src/models.cpp @@ -31,7 +31,8 @@ constexpr std::array kRealtime = {{ {"lucy-vton-3.6", 30, 1280, 720, true, /*fastSpeed=*/true}, {"lucy-restyle-2", 30, 1280, 704, true}, // Server-resolved "latest" aliases - {"lucy-latest", 30, 1088, 624, false, /*fastSpeed=*/true}, + // Resolves server-side to lucy-2.6. + {"lucy-latest", 30, 1280, 720, false, /*fastSpeed=*/true}, // Resolves server-side to lucy-vton-3.6. {"lucy-vton-latest", 30, 1280, 720, false, /*fastSpeed=*/true}, {"lucy-restyle-latest", 30, 1280, 704, false}, From 43d9e957ce7b24da1ab3bac200988db95c722edc Mon Sep 17 00:00:00 2001 From: Adir Amsalem Date: Sun, 8 Nov 2026 12:13:56 +0000 Subject: [PATCH 3/3] docs: drop the lucy-latest -> lucy-2.6 mapping comments Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- include/decart/models.h | 4 ++-- src/models.cpp | 1 - tests/test_models.cpp | 10 +++------- 3 files changed, 5 insertions(+), 10 deletions(-) diff --git a/include/decart/models.h b/include/decart/models.h index e5ecade..51af500 100644 --- a/include/decart/models.h +++ b/include/decart/models.h @@ -36,8 +36,8 @@ namespace models { /// Accepts canonical names ("lucy-2.1", "lucy-2.5", "lucy-2.6", "lucy-vton-3.5", /// "lucy-vton-3.6", "lucy-restyle-2") and server-resolved aliases /// ("lucy-latest", "lucy-vton-latest", "lucy-restyle-latest"). Aliases are -/// resolved by the server; e.g. "lucy-latest" currently serves "lucy-2.6" and -/// "lucy-vton-latest" currently serves "lucy-vton-3.6". +/// resolved by the server; e.g. "lucy-vton-latest" currently serves +/// "lucy-vton-3.6". /// /// @throws Exception(ErrorCode::ModelNotFound) if the name is unknown. ModelDefinition realtime(std::string_view name); diff --git a/src/models.cpp b/src/models.cpp index a2f89b6..004a7a6 100644 --- a/src/models.cpp +++ b/src/models.cpp @@ -31,7 +31,6 @@ constexpr std::array kRealtime = {{ {"lucy-vton-3.6", 30, 1280, 720, true, /*fastSpeed=*/true}, {"lucy-restyle-2", 30, 1280, 704, true}, // Server-resolved "latest" aliases - // Resolves server-side to lucy-2.6. {"lucy-latest", 30, 1280, 720, false, /*fastSpeed=*/true}, // Resolves server-side to lucy-vton-3.6. {"lucy-vton-latest", 30, 1280, 720, false, /*fastSpeed=*/true}, diff --git a/tests/test_models.cpp b/tests/test_models.cpp index dabb0cd..990f27b 100644 --- a/tests/test_models.cpp +++ b/tests/test_models.cpp @@ -53,14 +53,10 @@ TEST_CASE("realtime() resolves canonical models with correct geometry") { CHECK(static_cast(lucy26.supportedSpeeds[0]) == static_cast(Speed::Fast)); } -TEST_CASE("realtime() accepts latest aliases (lucy-latest -> lucy-2.6, lucy-vton-latest -> lucy-vton-3.6)") { +TEST_CASE("realtime() accepts latest aliases (lucy-vton-latest resolves server-side to lucy-vton-3.6)") { CHECK(models::realtime("lucy-latest").urlPath == "/v1/stream"); - // lucy-latest resolves server-side to lucy-2.6; capture at the shape it serves. - const auto lucyLatest = models::realtime("lucy-latest"); - const auto lucy26 = models::realtime("lucy-2.6"); - CHECK(lucyLatest.fps == lucy26.fps); - CHECK(lucyLatest.width == lucy26.width); - CHECK(lucyLatest.height == lucy26.height); + CHECK(models::realtime("lucy-latest").width == 1280); + CHECK(models::realtime("lucy-latest").height == 720); CHECK(models::realtime("lucy-vton-latest").name == "lucy-vton-latest"); CHECK(models::realtime("lucy-vton-latest").width == 1280); CHECK(models::realtime("lucy-vton-latest").height == 720);