Skip to content

feat: add lucy-2.6 realtime model at 720p - #17

Merged
AdirAmsalem merged 1 commit into
mainfrom
conductor/lucy-26-cpp
Oct 25, 2026
Merged

AdirAmsalem merged 1 commit into
mainfrom
conductor/lucy-26-cpp

Conversation

@AdirAmsalem

@AdirAmsalem AdirAmsalem commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

Description

Registers lucy-2.6, the successor to lucy-2.5, on the realtime surface. It mirrors the JS SDK registry, the source of truth that this package's tests are written against. The model is already served in production; this PR only makes it reachable through the typed SDK surface.

  1. lucy-2.6 is opt-in by explicit name. lucy-latest still resolves to lucy-2.5; flipping the alias is a follow-up. The alias entry, its comments, geometry and speeds are untouched.
  2. 2.6 offers the fast tier on realtime. The API serves it on ?speed=fast and bills it like 2.5, so the entry advertises Speed::Fast and 2.6 joins the fast-mode model lists.
  3. lucy-2.5 is unchanged. This change is purely additive.

Geometry was confirmed against the deployed model config: 1280x720 at 30 fps for realtime, a field-for-field clone of lucy-2.5's realtime entry. This SDK is realtime-only, so there is no batch entry.

Usage

decart::ConnectOptions options;
options.model = decart::models::realtime("lucy-2.6");
// urlPath "/v1/stream", 1280x720 @ 30fps, supportedSpeeds {Speed::Fast}
options.speed = decart::Speed::Fast;  // optional fast mode (2x rate, US only)

Changes

File Change
src/models.cpp kRealtime entry {"lucy-2.6", 30, 1280, 720, true, /*fastSpeed=*/true} right after lucy-2.5, and the std::array<Entry, N> size literal goes from 8 to 9
include/decart/models.h "lucy-2.6" added to the list of canonical names in the realtime() doc comment
include/decart/realtime/types.h, include/decart/realtime/realtime.h, README.md, examples/realtime_warmup.cpp fast-mode model lists now include lucy-2.6
tests/test_models.cpp field-by-field block for 2.6 (name, /v1/stream, 30 fps, 1280x720, supportedSpeeds == {Fast}); 2.6 added to the explicit fast checks and the withFast set; canonicalOnly count goes from 5 to 6
tests/test_stream_url.cpp supportsSpeed(lucy-2.6, Fast) positive check

No version bump.

Verification

Linux (Amazon Linux 2023) / GCC 11.5 / CMake 3.22 / Ninja:

Command Result
./scripts/format.sh --check (clang-format 15.0.7) clean
cmake --preset release -DDECART_LIVEKIT_VERSION=1.11.0 + cmake --build --preset release -- -k 0 every source file compiles, including the realtime/LiveKit code, realtime_warmup.cpp, test_models.cpp and test_stream_url.cpp. All 5 executables fail to link locally (4 examples + decart_tests): the prebuilt LiveKit 1.11.0 Linux binaries require glibc 2.38 and a newer libstdc++ (GLIBCXX_3.4.30), and this VM has glibc 2.34. This is a limit of the VM, unrelated to this change. CI on ubuntu-latest/macOS/Windows is the authoritative full-build check.
cmake -B build/norealtime -S . -G Ninja -DCMAKE_BUILD_TYPE=Release -DDECART_BUILD_REALTIME=OFF -DDECART_BUILD_TESTS=ON -DDECART_BUILD_EXAMPLES=ON + cmake --build build/norealtime builds
ctest --test-dir build/norealtime --output-on-failure 1/1 passed
./build/norealtime/tests/decart_tests 19 test cases, 112 assertions, 0 failed. This includes all of test_models.cpp and test_stream_url.cpp; only test_messages.cpp (realtime-only, untouched here, no model names) is excluded in this config.
Same tests with only the lucy-2.6 registry line removed 4 test cases fail (3 failed assertions, plus one test case that throws ModelNotFound), so the new assertions do pin the change

Compatibility

Additive, and source- and ABI-compatible. kRealtime is a file-local constexpr in an anonymous namespace, so growing it changes no exported symbol, type layout or function signature. Existing model names, including lucy-2.5 and lucy-latest, behave exactly as before.

Follow-ups

  • Flip lucy-latest to lucy-2.6 once the server-side alias moves.

lucy-2.6 is the successor to lucy-2.5 and a field-for-field clone of its
realtime entry: /v1/stream, 1280x720 at 30 fps, fast speed tier.

- Inserted right after lucy-2.5 in the realtime registry; kRealtime's
  std::array size literal goes 8 -> 9.
- Listed in the fast-mode docs (README, ConnectOptions::speed, Speed::Fast,
  realtime_warmup example).
- lucy-latest still resolves to lucy-2.5; it is unchanged here.
@AdirAmsalem
AdirAmsalem merged commit bb03ba3 into main Oct 25, 2026
4 checks passed
@AdirAmsalem
AdirAmsalem deleted the conductor/lucy-26-cpp branch October 25, 2026 09:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants