lm-livekit-helper should be deployed as its own artifact. It is not part of the LiveKit server image and does not modify LiveKit source code.
Recommended Jenkins build steps:
lm-livekit-helper.cargo fmt --check
docker build -t ${HELPER_IMAGE}:${GIT_COMMIT} .
Full host cargo check is not required for every commit until the Rust toolchain and WebRTC native dependency cache are fixed. Docker image build is the deployment verification path.
lmrobot-app starts the helper through runtime configuration. A staging deployment should provide:
COMBRABO_VOICE_RUNTIME_WORKDIR=/opt/lmrobot/lm-livekit-helper
COMBRABO_VOICE_RUNTIME_LAUNCH_COMMAND=/opt/lmrobot/lm-livekit-helper/run-local.sh
COMBRABO_VOICE_RUNTIME_HELPER_MODE=docker
COMBRABO_VOICE_RUNTIME_HELPER_IMAGE=${HELPER_IMAGE}:${GIT_COMMIT}
LiveKit connection material remains generated by lmrobot-app for each call and is injected as CV_* variables when launching the helper.
After deploying a new helper image, run the minimal smoke:
call-greetings/prepare returns READY.calls/start with greetingId returns success.runtime_start_requestedruntime_readybot_participant_joinedbot_track_readygreeting_consumedcalls/end returns success.For S7 bidirectional smoke, additionally require:
turn_bridge_requestedturn_bridge_completedbot_reply_audio_write_startedbot_reply_audio_write_finishedturn_completedRollback is helper-image level first:
COMBRABO_VOICE_RUNTIME_HELPER_IMAGE to the previous known-good tag.lmrobot-app runtime if it keeps helper launch config in process env.If rollback does not recover, disable Combrabo Voice feature flag on lmrobot-app side and keep LiveKit server unchanged.