# Lesavka operational environment variables

This is the tracked inventory for `LESAVKA_*` knobs used by source, scripts, CI, and tests. The hygiene gate fails when a new variable is added without appearing here, which keeps operator-facing configuration from drifting into folklore.

Hardware-facing assumptions belong near the code that uses them; this file is the repo-wide index.

Install security flow: the server installer creates `/etc/lesavka/lesavka-client-pki.tar.gz`
and makes it readable only by the installing account. The client installer first uses
`LESAVKA_CLIENT_PKI_BUNDLE` when supplied, otherwise it tries to fetch that same bundle
from `LESAVKA_CLIENT_PKI_SSH_SOURCE` over SSH. Runtime clients require the installed
`ca.crt`, `client.crt`, and `client.key` for HTTPS/mTLS relay connections.

| `LESAVKA_ALLOW_DISRUPTIVE_INPUT_TESTS` | test-only opt-in for virtual keyboard/mouse tests that can emit events into the active desktop; use only on isolated CI workers or lab sessions |
| `LESAVKA_ALLOW_GADGET_CYCLE` | document near use before promoting to operator config |
| `LESAVKA_ALLOW_GADGET_RESET` | permits installer/recovery flows to reset the USB gadget when a hard rebuild is otherwise required; by itself it must not force a live attached-host reset |
| `LESAVKA_ALLOW_INSECURE` | client transport override; permits non-local `http://` relay URLs only for lab/debug use |
| `LESAVKA_ALLOW_LAB_HARDWARE_TESTS` | CI/lab safety opt-in before running bare-metal gates that may touch Theia/Tethys, UVC/UAC devices, or virtual HID input |
| `LESAVKA_ALSA_DEV` | server hardware/device override |
| `LESAVKA_ATTACH_WRITE_UDC` | server hardware/device override |
| `LESAVKA_AUDIO_AUTO_RECOVER_AFTER` | client media capture/playback override |
| `LESAVKA_AUDIO_AUTO_RECOVER_COOLDOWN_MS` | client media capture/playback override |
| `LESAVKA_AUDIO_AUTO_RECOVER_USB` | client media capture/playback override |
| `LESAVKA_AUDIO_DISABLE` | client media capture/playback override |
| `LESAVKA_AUDIO_GAIN` | client media capture/playback override |
| `LESAVKA_AUDIO_GAIN_CONTROL` | client media capture/playback override |
| `LESAVKA_AUDIO_FAIL_ON_IDLE` | server remote-speaker capture debug guardrail; default keeps idle UAC streams open |
| `LESAVKA_AUDIO_INIT_ATTEMPTS` | client media capture/playback override |
| `LESAVKA_AUDIO_INIT_DELAY_MS` | client media capture/playback override |
| `LESAVKA_AUDIO_MIN_PACKETS_PER_SEC` | server remote-speaker capture debug guardrail; unset disables packet-rate hard failures |
| `LESAVKA_AUDIO_SINK` | client media capture/playback override |
| `LESAVKA_AUDIO_SOURCE_GRACE_MS` | server remote-speaker capture startup grace before optional watchdog checks |
| `LESAVKA_AUDIO_SOURCE_IDLE_MS` | server remote-speaker capture idle window used only when idle hard-fail is enabled |
| `LESAVKA_BOOL_TEST` | test/build contract variable; not runtime operator config |
| `LESAVKA_BREAKOUT_PREVIEW_HEIGHT` | eye preview/video transport override |
| `LESAVKA_BREAKOUT_PREVIEW_MAX_KBIT` | eye preview/video transport override |
| `LESAVKA_BREAKOUT_PREVIEW_WIDTH` | eye preview/video transport override |
| `LESAVKA_BREAKOUT_REQUEST_FPS` | eye preview/video transport override |
| `LESAVKA_BREAKOUT_REQUEST_HEIGHT` | eye preview/video transport override |
| `LESAVKA_BREAKOUT_REQUEST_WIDTH` | eye preview/video transport override |
| `LESAVKA_CAM_ALLOW_PROFILE_OVERRIDE` | lab-only override that lets launcher camera width/height/fps env values beat the server-negotiated UVC profile |
| `LESAVKA_CAM_BY_ID_DIR` | client media capture/playback override |
| `LESAVKA_CAM_CODEC` | client media capture/playback override |
| `LESAVKA_CAM_DEV_ROOT` | client media capture/playback override |
| `LESAVKA_CAM_DISABLE` | client media capture/playback override |
| `LESAVKA_CAM_FORMAT` | client media capture/playback override |
| `LESAVKA_CAM_FPS` | client media capture/playback override |
| `LESAVKA_CAM_H264_KBIT` | client media capture/playback override |
| `LESAVKA_CAM_HEIGHT` | client media capture/playback override |
| `LESAVKA_CAM_HEVC_KEYFRAME_INTERVAL` | client HEVC upstream keyframe cadence in frames; defaults to `1` so freshness-first drops freeze/stutter instead of producing predictive-frame corruption |
| `LESAVKA_CAM_JPEG_QUALITY` | client media capture/playback override |
| `LESAVKA_CAM_KEYFRAME_INTERVAL` | client media capture/playback override |
| `LESAVKA_CAM_MJPG` | client media capture/playback override |
| `LESAVKA_CAM_OUTPUT` | client media capture/playback override |
| `LESAVKA_CAM_SOURCE` | client media capture/playback override |
| `LESAVKA_CAM_TEST_ENCODER` | client media capture/playback override |
| `LESAVKA_CAM_TEST_PATTERN` | client media capture/playback override |
| `LESAVKA_CAM_WIDTH` | client media capture/playback override |
| `LESAVKA_CALIBRATION_PATH` | server upstream A/V calibration storage path override |
| `LESAVKA_CAPTURE_POWER_GRACE_SECS` | runtime/install/session override |
| `LESAVKA_CAPTURE_POWER_UNIT` | runtime/install/session override |
| `LESAVKA_CAPTURE_REMOTE` | runtime/install/session override |
| `LESAVKA_CLOCK_ALIGNMENT_SAMPLES` | manual direct UVC/UAC probe freshness trust gate; number of server-to-capture persistent SSH midpoint clock samples, using the lowest-uncertainty sample, defaults to `5` |
| `LESAVKA_CLIENT_APP_SRC` | test/build contract variable; not runtime operator config |
| `LESAVKA_CLIENT_BUNDLE` | server installer output path for the generated client TLS enrollment bundle |
| `LESAVKA_CLIENT_CAPTURE_DIR` | client installer capture folder override; defaults to `~/Pictures/lesavka` |
| `LESAVKA_CLIENT_CAMERA_SRC` | test/build contract variable; not runtime operator config |
| `LESAVKA_CLIENT_INPUTS_SRC` | test/build contract variable; not runtime operator config |
| `LESAVKA_CLIENT_KEYBOARD_SRC` | test/build contract variable; not runtime operator config |
| `LESAVKA_CLIENT_MAIN_SRC` | test/build contract variable; not runtime operator config |
| `LESAVKA_CLIENT_MICROPHONE_SRC` | test/build contract variable; not runtime operator config |
| `LESAVKA_CLIENT_MOUSE_SRC` | test/build contract variable; not runtime operator config |
| `LESAVKA_CLIENT_OUTPUT_AUDIO_SRC` | test/build contract variable; not runtime operator config |
| `LESAVKA_CLIENT_OUTPUT_DISPLAY_SRC` | test/build contract variable; not runtime operator config |
| `LESAVKA_CLIENT_OUTPUT_VIDEO_SRC` | test/build contract variable; not runtime operator config |
| `LESAVKA_CLIENT_PKI_BUNDLE` | client installer input path for a server-generated TLS enrollment bundle |
| `LESAVKA_CLIENT_PKI_AUTO_FETCH` | client installer toggle for SSH enrollment auto-fetch; defaults to enabled |
| `LESAVKA_CLIENT_PKI_DIR` | client installer/runtime TLS identity directory override |
| `LESAVKA_CLIENT_PKI_SSH_SOURCE` | client installer SSH source for auto-fetching the server enrollment bundle; defaults to `theia:/etc/lesavka/lesavka-client-pki.tar.gz` |
| `LESAVKA_CLIENT_RCT_MAX_AGE_MS` | manual client-to-RCT transport probe freshness limit; maximum client-origin-to-RCT-observed p95 age including clock uncertainty, defaults to `1000` |
| `LESAVKA_CLIENT_RCT_MIN_PAIRS` | manual client-to-RCT transport probe evidence floor; minimum paired flash/tone events before freshness can pass, defaults to `13` |
| `LESAVKA_CLIENT_RCT_MODE` | manual client-to-RCT transport probe expected RCT UVC mode in `WIDTHxHEIGHT@FPS` form, or `auto` to read the current gadget profile; defaults to `auto` and does not reconfigure the gadget |
| `LESAVKA_CLIENT_RCT_PROBE_CMD` | bare-metal lab gate command override for the client-to-RCT transport probe; use only on isolated lab workers |
| `LESAVKA_CLIENT_RCT_REQUIRE_SMOOTHNESS` | manual client-to-RCT transport probe gate toggle; when `1`, cadence hiccups fail the transport summary instead of reporting warnings |
| `LESAVKA_CLIENT_RCT_SYNC_SAMPLE_INTERVAL_SECONDS` | manual client-to-RCT transport probe introspection interval; controls how often the harness samples server `upstream-sync` state while the client-origin probe is live |
| `LESAVKA_CLIENT_RCT_UVC_FRAME_META_LOG_REMOTE` | manual client-to-RCT transport probe optional artifact path; fetches a pre-enabled server `LESAVKA_UVC_FRAME_META_LOG_PATH` JSONL and summarizes UVC spool-boundary timing |
| `LESAVKA_CLIENT_RCT_UVC_FRAME_META_LOG_REQUIRED` | manual client-to-RCT transport probe optional artifact gate; set to `1` to fail if the configured UVC frame metadata log cannot be fetched |
| `PROBE_EVENT_WIDTH_CODES` | manual client-to-RCT transport probe identity sequence; defaults to unique codes `1..16` so final RCT observations can be joined to client-origin timeline events after startup drops |
| `LESAVKA_CLIENT_RELAYCTL_BIN_SRC` | test/build contract variable; not runtime operator config |
| `LESAVKA_CLIENT_VIDEO_SUPPORT_SRC` | test/build contract variable; not runtime operator config |
| `LESAVKA_CI_PROFILE` | Jenkins/CI profile selector; `safe` runs non-disruptive gates, `daily` wraps primary-branch daily gates, and `lab` is reserved for isolated bare-metal probes |
| `LESAVKA_CLIPBOARD_CHORD` | input routing/clipboard override |
| `LESAVKA_CLIPBOARD_CMD` | input routing/clipboard override |
| `LESAVKA_CLIPBOARD_DEBOUNCE_MS` | input routing/clipboard override |
| `LESAVKA_CLIPBOARD_DELAY_MS` | input routing/clipboard override |
| `LESAVKA_CLIPBOARD_MAX` | input routing/clipboard override |
| `LESAVKA_CLIPBOARD_PASTE` | input routing/clipboard override |
| `LESAVKA_CLIPBOARD_TIMEOUT_MS` | input routing/clipboard override |
| `LESAVKA_COMMON_CLI_BIN_SRC` | test/build contract variable; not runtime operator config |
| `LESAVKA_CORE_HELPER` | runtime/install/session override |
| `LESAVKA_DECODER_PROBE_BUFFERS` | manual probe override |
| `LESAVKA_DECODER_PROBE_POLL_SECONDS` | manual probe override |
| `LESAVKA_DECODER_PROBE_WAIT_SECONDS` | manual probe override |
| `LESAVKA_DETACH_CLEAR_UDC` | server hardware/device override |
| `LESAVKA_DEV_MODE` | document near use before promoting to operator config |
| `LESAVKA_DAILY_ALLOW_NON_PRIMARY` | CI override that lets `daily_master_gate.sh` run on non-`master`/`main` branches for debugging the daily profile |
| `LESAVKA_DAILY_GATE_PUSHGATEWAY_JOB` | CI metrics destination override for the daily master gate profile |
| `LESAVKA_DISABLE_UAC` | document near use before promoting to operator config |
| `LESAVKA_DISABLE_UVC` | document near use before promoting to operator config |
| `LESAVKA_DISABLE_VIDEO_RENDER` | eye preview/video transport override |
| `LESAVKA_DUMP_VIDEO` | eye preview/video transport override |
| `LESAVKA_EYE_ADAPTIVE` | eye preview/video transport override |
| `LESAVKA_EYE_APPSINK_BUFFERS` | eye preview/video transport override |
| `LESAVKA_EYE_CAP_POLL_SECONDS` | eye preview/video transport override |
| `LESAVKA_EYE_CAP_WAIT_SECONDS` | eye preview/video transport override |
| `LESAVKA_EYE_CHAN_CAPACITY` | eye preview/video transport override |
| `LESAVKA_EYE_DEVICE_POLL_MS` | eye preview/video transport override |
| `LESAVKA_EYE_DEVICE_WAIT_MS` | eye preview/video transport override |
| `LESAVKA_EYE_FPS` | eye preview/video transport override |
| `LESAVKA_EYE_KEYFRAME_INTERVAL` | eye preview/video transport override |
| `LESAVKA_EYE_MIN_FPS` | eye preview/video transport override |
| `LESAVKA_EYE_QUEUE_BUFFERS` | eye preview/video transport override |
| `LESAVKA_EYE_TESTSRC_KBIT` | eye preview/video transport override |
| `LESAVKA_FAKE_SYSTEMCTL_MODE` | test/build contract variable; not runtime operator config |
| `LESAVKA_FOCUS_LAUNCHER_ON_LOCAL` | launcher UI/runtime override |
| `LESAVKA_GATE_GLUE_PUSHGATEWAY_JOB` | CI metrics destination override for the gate-glue check |
| `LESAVKA_HYGIENE_GATE_PUSHGATEWAY_JOB` | CI metrics destination override for the hygiene/style check |
| `LESAVKA_FORCE_CORE_REBUILD_WITHOUT_UDC` | document near use before promoting to operator config |
| `LESAVKA_FORCE_GADGET_REBUILD` | explicit maintenance-window override for hard UDC detach/rebind during server install; pair with `LESAVKA_ALLOW_GADGET_RESET=1` only when a live gadget rebuild is intentional |
| `LESAVKA_GADGET_CONFIGFS_ROOT` | server hardware/device override |
| `LESAVKA_GADGET_FORCE_CYCLE` | server hardware/device override |
| `LESAVKA_GADGET_SYSFS_ROOT` | server hardware/device override |
| `LESAVKA_GIT_SHA` | runtime/install/session override |
| `LESAVKA_H264_DECODER` | eye preview/video transport override; names an explicit hardware GStreamer decoder such as `nvh264dec`, `vulkanh264dec`, or `v4l2h264dec`; software names are rejected unless `LESAVKA_ALLOW_SOFTWARE_VIDEO=1` |
| `LESAVKA_H264_DECODER_PREFERENCE` | eye preview/video transport override; `hardware`/unset uses NVIDIA, VAAPI, and V4L2 decode only; `software`/`cpu` is honored only with `LESAVKA_ALLOW_SOFTWARE_VIDEO=1` for lab driver comparisons |
| `LESAVKA_ALLOW_VULKAN_H264_DECODER` | client downstream video diagnostic override; opt into Vulkan H.264 decode when NVIDIA/VAAPI/V4L2 decode is unavailable or under comparison |
| `LESAVKA_ALLOW_SOFTWARE_VIDEO` | video acceleration safety override; when truthy, permits software decode/encode fallbacks for lab/debug runs only |
| `LESAVKA_HDMI_CONNECTOR` | server hardware/device override |
| `LESAVKA_HDMI_DRIVER` | server hardware/device override |
| `LESAVKA_HDMI_FBDEV` | server hardware/device override |
| `LESAVKA_HDMI_PRESENTATION_DELAY_US` | server HDMI video latency override |
| `LESAVKA_HDMI_HEIGHT` | server hardware/device override |
| `LESAVKA_HDMI_MODES` | server hardware/device override |
| `LESAVKA_HDMI_RESTORE_CRTC` | server hardware/device override |
| `LESAVKA_HDMI_SINK` | server hardware/device override |
| `LESAVKA_HDMI_SKIP_VSYNC` | server hardware/device override |
| `LESAVKA_HDMI_WIDTH` | server hardware/device override |
| `LESAVKA_HEADLESS` | runtime/install/session override |
| `LESAVKA_HELPER_ENV_DUMP` | document near use before promoting to operator config |
| `LESAVKA_HID_DIR` | server hardware/device override |
| `LESAVKA_HID_WRITE_RETRIES` | server hardware/device override |
| `LESAVKA_HID_WRITE_RETRY_DELAY_MS` | server hardware/device override |
| `LESAVKA_HW_H264` | document near use before promoting to operator config |
| `LESAVKA_ICON_NAME` | launcher UI/runtime override |
| `LESAVKA_ICON_SEARCH_PATH` | launcher UI/runtime override |
| `LESAVKA_INPUT_RELEASE_TIMEOUT_MS` | input routing/clipboard override |
| `LESAVKA_INPUT_REMOTE_FAILSAFE_MS` | input routing/clipboard override |
| `LESAVKA_INPUT_REMOTE_FAILSAFE_SECS` | input routing/clipboard override |
| `LESAVKA_INPUT_RESCAN_MS` | input routing/clipboard override |
| `LESAVKA_INPUT_TOGGLE_DEBOUNCE_MS` | input routing/clipboard override |
| `LESAVKA_INPUT_TOGGLE_KEY` | input routing/clipboard override |
| `LESAVKA_KERNEL_BRANCH` | kernel build/install override |
| `LESAVKA_KERNEL_BUILD_ROOT` | kernel build/install override |
| `LESAVKA_KERNEL_BUILD_USER` | kernel build/install override |
| `LESAVKA_KERNEL_COMMIT` | kernel build/install override |
| `LESAVKA_KERNEL_JOBS` | kernel build/install override |
| `LESAVKA_KERNEL_PATCH_DIR` | kernel build/install override |
| `LESAVKA_KERNEL_PATCH_DWC2_FIFO` | kernel build/install override |
| `LESAVKA_KERNEL_PATCH_UVC_BULK` | kernel build/install override |
| `LESAVKA_KERNEL_PATCH_UVC_DEBUG` | kernel build/install override |
| `LESAVKA_KERNEL_PKGREL` | kernel build/install override |
| `LESAVKA_KERNEL_PKG_REPO` | kernel build/install override |
| `LESAVKA_KERNEL_REPO` | kernel build/install override |
| `LESAVKA_KERNEL_UPDATE` | kernel build/install override |
| `LESAVKA_KEYBOARD_DEVICE` | input routing/clipboard override |
| `LESAVKA_LAUNCHER_CAMERA_DIR` | launcher UI/runtime override |
| `LESAVKA_LAUNCHER_CHILD` | launcher UI/runtime override |
| `LESAVKA_LAUNCHER_CLIPBOARD_CONTROL` | launcher UI/runtime override |
| `LESAVKA_LAUNCHER_FOCUS_SIGNAL` | launcher UI/runtime override |
| `LESAVKA_LAUNCHER_INPUT_CONTROL` | launcher UI/runtime override |
| `LESAVKA_LAUNCHER_INPUT_STATE` | launcher UI/runtime override |
| `LESAVKA_LAUNCHER_PARENT_PID` | launcher UI/runtime override |
| `LESAVKA_LAUNCHER_PARENT_START_TICKS` | launcher UI/runtime override |
| `LESAVKA_LAUNCHER_TOGGLE_KEY_CONTROL` | launcher UI/runtime override |
| `LESAVKA_LAUNCHER_WINDOW_TITLE` | launcher UI/runtime override |
| `LESAVKA_LAB_GATE_PUSHGATEWAY_JOB` | CI metrics destination override for the opt-in bare-metal lab gate profile |
| `LESAVKA_LIVE_KEYBOARD_REPORT_DELAY_MS` | input routing/clipboard override |
| `LESAVKA_LIVE_MODIFIER_DELAY_MS` | input routing/clipboard override |
| `LESAVKA_MAX_SPEED` | document near use before promoting to operator config |
| `LESAVKA_MEDIA_CONTROL` | launcher-to-relay live media control file; used for soft-pausing camera, mic, or speaker streams without hard-resetting USB |
| `LESAVKA_MEDIA_GATE_PUSHGATEWAY_JOB` | CI metrics destination override |
| `LESAVKA_MIC_DISABLE` | client media capture/playback override |
| `LESAVKA_MIC_DISABLE_PIPEWIRE` | client media capture/playback override |
| `LESAVKA_MIC_GAIN` | client media capture/playback override |
| `LESAVKA_MIC_GAIN_CONTROL` | client media capture/playback override |
| `LESAVKA_MIC_INIT_ATTEMPTS` | client media capture/playback override |
| `LESAVKA_MIC_INIT_DELAY_MS` | client media capture/playback override |
| `LESAVKA_MIC_SOURCE` | client media capture/playback override |
| `LESAVKA_MIC_TEST_SOURCE_DESC` | client media capture/playback override |
| `LESAVKA_MOUSE_DEVICE` | input routing/clipboard override |
| `LESAVKA_OUTPUT_DELAY_APPLY` | manual direct UVC/UAC probe override; apply the measured server output-delay correction through the calibration API when the probe gates pass |
| `LESAVKA_OUTPUT_DELAY_APPLY_MODE` | manual direct UVC/UAC probe override; `absolute` sets the active output-path baseline to the measured device delay, while `relative` preserves legacy nudge behavior |
| `LESAVKA_OUTPUT_DELAY_CALIBRATION` | manual direct UVC/UAC probe override; emit `output-delay-calibration.json` from a lab-attached USB host capture of server-generated signatures, defaults to enabled |
| `LESAVKA_OUTPUT_DELAY_CONFIRM` | manual direct UVC/UAC probe safety gate; after applying a ready output-delay measurement, rerun a fixed-delay confirmation probe that must pass sync, defaults to enabled |
| `LESAVKA_OUTPUT_DELAY_GAIN` | manual direct UVC/UAC probe override; scales measured output-delay correction before applying, defaults to `1.0` |
| `LESAVKA_OUTPUT_DELAY_MAX_ABS_SKEW_MS` | manual direct UVC/UAC probe safety limit; refuses to apply/save implausibly large measured device skew, defaults to `5000` |
| `LESAVKA_OUTPUT_DELAY_MAX_DRIFT_MS` | manual direct UVC/UAC probe stability limit; refuses to apply/save unstable output-delay measurements, defaults to `80` |
| `LESAVKA_OUTPUT_DELAY_MAX_STEP_US` | manual direct UVC/UAC probe safety limit; clamps one measured correction step, defaults to `1500000` |
| `LESAVKA_OUTPUT_DELAY_MIN_PAIRS` | manual direct UVC/UAC probe evidence floor before applying measured output-delay calibration, defaults to `8` |
| `LESAVKA_OUTPUT_REQUIRE_SYNC_PASS` | manual direct UVC/UAC probe safety gate; fail the run unless the analyzer verdict passes sync, used by fixed-delay confirmation |
| `LESAVKA_OUTPUT_DELAY_SAVE` | manual direct UVC/UAC probe override; after applying a ready measured correction, persist it as the server default calibration |
| `LESAVKA_OUTPUT_DELAY_TARGET` | manual direct UVC/UAC probe override; choose whether measured skew is corrected by shifting `video` or `audio`, defaults to `video` |
| `LESAVKA_OUTPUT_FRESHNESS_MAX_AGE_MS` | manual direct UVC/UAC probe freshness gate; maximum clock-corrected server-feed-to-Tethys-observed p95 age, defaults to `1000` |
| `LESAVKA_OUTPUT_FRESHNESS_MAX_CLOCK_UNCERTAINTY_MS` | manual direct UVC/UAC probe freshness trust gate; do not pass freshness when host clock alignment uncertainty exceeds this, defaults to `250` |
| `LESAVKA_OUTPUT_FRESHNESS_MAX_DRIFT_MS` | manual direct UVC/UAC probe freshness gate; maximum allowed freshness drift across paired probe events, defaults to `100` |
| `LESAVKA_PASTE_DELAY_MS` | input routing/clipboard override |
| `LESAVKA_PASTE_KEY` | input routing/clipboard override |
| `LESAVKA_PASTE_KEY_FILE` | encrypted paste shared-key file; server installer defaults to `/etc/lesavka/paste-key` and includes `paste-key` in the client enrollment bundle, while the client installer defaults to `~/.config/lesavka/paste-key` |
| `LESAVKA_PASTE_MAX` | input routing/clipboard override |
| `LESAVKA_PASTE_RPC` | input routing/clipboard override |
| `LESAVKA_PERFORMANCE_GATE_PUSHGATEWAY_JOB` | CI metrics destination override for latency/performance checks |
| `LESAVKA_PREVIEW_HEIGHT` | eye preview/video transport override |
| `LESAVKA_PREVIEW_MAX_KBIT` | eye preview/video transport override |
| `LESAVKA_PREVIEW_REQUEST_FPS` | eye preview/video transport override |
| `LESAVKA_PREVIEW_REQUEST_HEIGHT` | eye preview/video transport override |
| `LESAVKA_PREVIEW_REQUEST_WIDTH` | eye preview/video transport override |
| `LESAVKA_PREVIEW_WIDTH` | eye preview/video transport override |
| `LESAVKA_REF` | runtime/install/session override |
| `LESAVKA_RELOAD_UVCVIDEO` | document near use before promoting to operator config |
| `LESAVKA_REPO_URL` | runtime/install/session override |
| `LESAVKA_REQUIRE_TLS` | server security override; require TLS credentials before binding public relay service |
| `LESAVKA_RGBA` | document near use before promoting to operator config |
| `LESAVKA_RUN_CLIENT_RCT_PROBE` | bare-metal lab gate toggle for running the client-to-RCT transport probe; defaults off so shared CI never contacts lab hardware |
| `LESAVKA_RUN_SERVER_RCT_MATRIX` | bare-metal lab gate toggle for running the server-to-RCT mode matrix; defaults off because it can reconfigure attached UVC/UAC hardware |
| `LESAVKA_RUN_VIDEO_DOWNSTREAM_GATE` | bare-metal lab gate toggle for deterministic downstream video guard tests; defaults on inside the lab gate |
| `LESAVKA_SERVER_ADDR` | runtime/install/session override |
| `LESAVKA_SERVER_BIND_ADDR` | server bind address override; defaults to `0.0.0.0:50051` |
| `LESAVKA_INSTALL_SERVER_BIND_ADDR` | installer override; sets the persisted default server bind address in `/etc/lesavka/server.env` |
| `LESAVKA_SERVER_GADGET_SRC` | test/build contract variable; not runtime operator config |
| `LESAVKA_SERVER_HOST` | manual probe override |
| `LESAVKA_SERVER_MAIN_SRC` | test/build contract variable; not runtime operator config |
| `LESAVKA_SERVER_UVC_BIN_SRC` | test/build contract variable; not runtime operator config |
| `LESAVKA_SERVER_VIDEO_SINKS_SRC` | test/build contract variable; not runtime operator config |
| `LESAVKA_SERVER_VIDEO_SRC` | test/build contract variable; not runtime operator config |
| `LESAVKA_SONAR_ENFORCE` | CI gate enforcement override |
| `LESAVKA_SONAR_GATE_PUSHGATEWAY_JOB` | CI metrics destination override for the SonarQube check |
| `LESAVKA_SUPPLY_CHAIN_ENFORCE_TOOLS` | CI gate enforcement override |
| `LESAVKA_SUPPLY_CHAIN_PUSHGATEWAY_JOB` | CI metrics destination override for the supply-chain check |
| `LESAVKA_TAP_AUDIO` | client media capture/playback override |
| `LESAVKA_TLS_CA` | client transport CA path override for relay TLS verification |
| `LESAVKA_TLS_CA_DAYS` | server installer certificate-authority lifetime override |
| `LESAVKA_TLS_CERT` | server TLS certificate path override |
| `LESAVKA_TLS_CERT_DAYS` | server installer leaf certificate lifetime override |
| `LESAVKA_TLS_CLIENT_AUTH_OPTIONAL` | server TLS override; allow clients without certs only for controlled migration/debug |
| `LESAVKA_TLS_CLIENT_CA` | server TLS client-CA path override for mTLS verification |
| `LESAVKA_TLS_CLIENT_CERT` | client transport certificate path override for mTLS |
| `LESAVKA_TLS_CLIENT_KEY` | client transport private-key path override for mTLS |
| `LESAVKA_TLS_DIR` | server installer/runtime TLS directory override |
| `LESAVKA_TLS_DOMAIN` | client transport SNI/domain override when dialing by IP |
| `LESAVKA_TLS_KEY` | server TLS private-key path override |
| `LESAVKA_TLS_SAN` | server installer extra certificate SAN list for additional relay hostnames/IPs |
| `LESAVKA_SYNTHETIC_PKI_DIR` | server installer destination for the SSH user's local synthetic-probe mTLS identity; defaults to `~/.config/lesavka/pki` |
| `LESAVKA_UAC_BUFFER_TIME_US` | server audio sink latency override |
| `LESAVKA_UAC_COMPENSATION_US` | server audio sink latency override |
| `LESAVKA_UAC_DEV` | server hardware/device override |
| `LESAVKA_UAC_HDMI_COMPENSATION_US` | server HDMI audio sink latency override; defaults to `205000` to hold gadget audio back toward the host-observed HDMI video path |
| `LESAVKA_UAC_HOST_MIXER_CONTROLS` | server gadget descriptor override; defaults to `0` so host PipeWire/WirePlumber cannot persist broken UAC hardware-volume channel maps |
| `LESAVKA_UAC_LATENCY_TIME_US` | server audio sink latency override |
| `LESAVKA_UAC_SESSION_CLOCK_ALIGN` | server audio sink clock-alignment override; defaults to `0` |
| `LESAVKA_TEST_CAM_U32` | test/build contract variable; not runtime operator config |
| `LESAVKA_TEST_CAP_CAMERA` | test/build contract variable; not runtime operator config |
| `LESAVKA_TEST_CAP_MIC` | test/build contract variable; not runtime operator config |
| `LESAVKA_TEST_ASOUND_CARDS` | test/build contract variable; not runtime operator config |
| `LESAVKA_TEST_ASOUND_PCM` | test/build contract variable; not runtime operator config |
| `LESAVKA_TEST_BOOL_ENV_NEVER_SET` | test/build contract variable; not runtime operator config |
| `LESAVKA_TEST_DISABLE_H264_DECODERS` | test/build contract variable; not runtime operator config |
| `LESAVKA_TEST_FORCE_PIPELINE_START_ERROR` | test/build contract variable; not runtime operator config |
| `LESAVKA_TEST_GATE_PUSHGATEWAY_JOB` | test/build contract variable; not runtime operator config |
| `LESAVKA_TEST_RECOVERY_STATE` | test/build contract variable; not runtime operator config |
| `LESAVKA_TEST_RECOVERY_STATE_ERROR` | test/build contract variable; not runtime operator config |
| `LESAVKA_TEST_SKIP_APP` | test/build contract variable; not runtime operator config |
| `LESAVKA_TEST_SWAY_GET_OUTPUTS_EXIT` | test/build contract variable; not runtime operator config |
| `LESAVKA_TEST_SWAY_LOG` | test/build contract variable; not runtime operator config |
| `LESAVKA_TEST_SWAY_OUTPUTS` | test/build contract variable; not runtime operator config |
| `LESAVKA_TEST_SWAY_PLACE_EXIT` | test/build contract variable; not runtime operator config |
| `LESAVKA_TEST_U32` | test/build contract variable; not runtime operator config |
| `LESAVKA_TEST_U32_OPT` | test/build contract variable; not runtime operator config |
| `LESAVKA_TEST_U8` | test/build contract variable; not runtime operator config |
| `LESAVKA_TEST_UDEV_CAPTURE_DEVICES` | test/build contract variable; not runtime operator config |
| `LESAVKA_TEST_USIZE` | test/build contract variable; not runtime operator config |
| `LESAVKA_TEST_UVC_HELPER_RESTART_ERR` | test/build contract variable; not runtime operator config |
| `LESAVKA_TEST_VIDEO_SOURCE` | test/build contract variable; not runtime operator config |
| `LESAVKA_TOUCHPAD_SCALE` | input routing/clipboard override |
| `LESAVKA_UAC_DEV` | server hardware/device override |
| `LESAVKA_UAC_SESSION_CLOCK_ALIGN` | server audio sink clock-alignment override; `0` is the host-validated default |
| `LESAVKA_UPSTREAM_AUDIO_PLAYOUT_MODE_OFFSETS_US` | server upstream per-UVC-mode UAC output-path map, e.g. `1280x720@20=0,1280x720@30=0,1920x1080@20=0,1920x1080@30=0` |
| `LESAVKA_UPSTREAM_AUDIO_PLAYOUT_OFFSET_US` | server upstream output-path override; v2 uses it as the explicit UAC handoff delay relative to the shared client capture clock |
| `LESAVKA_UPSTREAM_AUDIO_MASTER_WAIT_GRACE_MS` | server upstream sync override; how long video may wait past its nominal due time for UAC audio to reach the matching timestamp, defaults to `350` |
| `LESAVKA_UPSTREAM_BUNDLED_PLAYOUT_DELAY_MS` | compatibility alias for `LESAVKA_UPSTREAM_V2_PLAYOUT_DELAY_MS` |
| `LESAVKA_UPSTREAM_MAX_LIVE_LAG_MS` | compatibility alias for `LESAVKA_UPSTREAM_V2_MAX_LIVE_AGE_MS` |
| `LESAVKA_UPSTREAM_PAIR_SLACK_US` | server upstream pairing override; how far video may diverge from the planned audio-master capture moment before the frame is held or dropped, defaults to `80000` |
| `LESAVKA_UPSTREAM_PLAYOUT_DELAY_MS` | server upstream pairing/synchronization target buffer; the server uses this shared buffer to pair webcam frames with matching gadget-mic audio before remote presentation, defaults to `350` |
| `LESAVKA_UPSTREAM_STARTUP_TIMEOUT_MS` | server upstream startup guard; paired startup must converge before this timeout or fail visibly, defaults to `60000` |
| `LESAVKA_UPSTREAM_STALE_DROP_MS` | server upstream freshness override; late audio/video that miss this budget are dropped instead of silently extending lag, defaults to `80` |
| `LESAVKA_UPSTREAM_TIMING_TRACE` | upstream capture/rebase trace override for sync debugging |
| `LESAVKA_UPSTREAM_V2_AUDIO_STARVATION_HEAL_MS` | v2 bundled webcam watchdog; if video stays live while audio disappears for this long, the server retires the mic epoch and forces a clean bundled reconnect, defaults to `1500`, set `0` to disable |
| `LESAVKA_UPSTREAM_V2_AV_SKEW_HEAL_MS` | v2 bundled webcam watchdog; if audio and video packets keep arriving with an impossible capture span for this long, the server retires the mic epoch and forces a clean bundled reconnect, defaults to `1500`, set `0` to disable |
| `LESAVKA_UPSTREAM_V2_MAX_LIVE_AGE_MS` | v2 bundled webcam freshness ceiling; bundles already older than this are dropped as one unit, defaults to `1000` |
| `LESAVKA_UPSTREAM_V2_PLAYOUT_DELAY_MS` | v2 optional common playout slack after sync offsets; defaults to `20` and is reduced when needed to protect the live-age budget |
| `LESAVKA_UPSTREAM_VIDEO_PLAYOUT_MODE_OFFSETS_US` | server upstream per-UVC-mode output-path map; shipped MJPEG defaults are `1280x720@20=162659,1280x720@30=135090,1920x1080@20=160045,1920x1080@30=127952`; shipped HEVC decode-to-MJPEG defaults are profile-specific under `LESAVKA_UPSTREAM_HEVC_VIDEO_PLAYOUT_MODE_OFFSETS_US` |
| `LESAVKA_UPSTREAM_VIDEO_PLAYOUT_OFFSET_US` | server upstream output-path override; v2 uses it as the explicit UVC handoff delay relative to the shared client capture clock, defaults to the calibrated MJPEG/UVC offset |
| `LESAVKA_UPLINK_CAMERA_PREVIEW` | client media capture/playback override |
| `LESAVKA_UPLINK_MIC_LEVEL` | client media capture/playback override |
| `LESAVKA_INSTALL_UVC_CODEC` | installer override; sets the persisted default UVC webcam codec in `/etc/lesavka/server.env` and `/etc/lesavka/uvc.env` |
| `LESAVKA_USB_RECOVERY_` | USB recovery timing override |
| `LESAVKA_USB_RECOVERY_CYCLE_WAIT_MS` | USB recovery timing override |
| `LESAVKA_USB_RECOVERY_FINAL_WAIT_MS` | USB recovery timing override |
| `LESAVKA_USB_RECOVERY_REBUILD_WAIT_MS` | USB recovery timing override |
| `LESAVKA_UVC_APP_LEAKY_TYPE` | server UVC appsrc freshness override; defaults to `downstream` so stale webcam frames are dropped instead of buffered during decode/gadget stalls |
| `LESAVKA_UVC_APP_MAX_BUFFERS` | server UVC appsrc memory guard; defaults to `4` queued encoded frames |
| `LESAVKA_UVC_APP_MAX_BYTES` | server UVC appsrc memory guard; defaults to `4194304` queued bytes |
| `LESAVKA_UVC_APP_MAX_TIME_NS` | server UVC appsrc memory guard; defaults to `200000000` ns of queued media |
| `LESAVKA_UVC_BLOCKING` | server hardware/device override |
| `LESAVKA_UVC_BULK` | UVC transfer-mode override; defaults to `1` so patched kernels prefer reliable bulk transfer over lossy isochronous MJPEG. If the live kernel does not expose `streaming_bulk`, Lesavka falls back to isochronous descriptors without the 512-byte bulk clamp. Set `0` to force classic isochronous descriptors |
| `LESAVKA_UVC_BUFFER_COUNT` | UVC helper freshness override; number of queued gadget output buffers, defaults to `4` to keep the gadget fed through host/browser scheduling jitter |
| `LESAVKA_UVC_BY_PATH_ROOT` | server hardware/device override |
| `LESAVKA_UVC_CODEC` | server hardware/device override |
| `LESAVKA_UVC_CTRL_BIN` | server hardware/device override |
| `LESAVKA_UVC_CTRL_INTF` | server hardware/device override |
| `LESAVKA_UVC_CTRL_LEN` | server hardware/device override |
| `LESAVKA_UVC_DEBUG` | server hardware/device override |
| `LESAVKA_UVC_DEV` | server hardware/device override |
| `LESAVKA_UVC_DISABLE_IRQ` | server hardware/device override |
| `LESAVKA_UVC_EXTERNAL` | server hardware/device override |
| `LESAVKA_UVC_FALLBACK` | server hardware/device override |
| `LESAVKA_UVC_FPS` | server hardware/device override |
| `LESAVKA_UVC_FRAME_META` | UVC helper diagnostic override; when true, the server writes an atomic JSON sidecar for each spooled MJPEG frame so HEVC decode/spool timing can be compared with final RCT capture |
| `LESAVKA_UVC_FRAME_META_LOG_PATH` | UVC helper diagnostic override; when set with `LESAVKA_UVC_FRAME_META=1`, append every MJPEG spool timing record as JSONL for full-probe HEVC/RCT correlation; summarize with `scripts/manual/summarize_uvc_frame_meta_log.py` |
| `LESAVKA_UVC_FRAME_META_PATH` | UVC helper diagnostic override; explicit path for the optional MJPEG spool metadata sidecar |
| `LESAVKA_UVC_FRAME_MAX_AGE_MS` | UVC helper freshness override; stale spooled MJPEG frames older than this are not replayed, defaults to `1000`; `0` disables TTL |
| `LESAVKA_UVC_FRAME_MAX_BYTES` | UVC helper MJPEG frame-size guard; explicit maximum accepted frame bytes. Unset or `0` uses the live-call byte budget so oversized frames freeze instead of tearing on the host |
| `LESAVKA_UVC_FRAME_SIZE` | UVC advertised maximum MJPEG frame bytes; defaults to the live-call byte budget instead of raw uncompressed frame size so the gadget/host do not schedule oversized phantom frames |
| `LESAVKA_UVC_FRAME_SIZE_GUARD` | UVC helper MJPEG frame-size guard toggle; defaults to `1`; set `0` only for diagnostics when oversized MJPEG frames must be allowed through |
| `LESAVKA_UVC_HEIGHT` | server hardware/device override |
| `LESAVKA_UVC_HEVC_SPOOL_PULL_TIMEOUT_MS` | server HEVC decode-to-MJPEG freshness override; appsink pull wait for decoded MJPEG handoff before publishing newest frame to the UVC helper, defaults to `20` and is capped at `50` |
| `LESAVKA_UVC_HEVC_FRESHNESS_QUEUE_BUFFERS` | server HEVC decode-to-MJPEG branch queue depth; defaults to `2` and is capped at `4` so decode/JPEG scheduling jitter does not starve the UVC helper while stale frames still get dropped |
| `LESAVKA_UVC_IDLE_PUMP_MS` | UVC helper freshness override; idle poll sleep while pumping host-returned buffers, defaults to `2` |
| `LESAVKA_UVC_INTERVAL` | server hardware/device override |
| `LESAVKA_UVC_ISOCHRONOUS_LIMIT_PCT` | UVC MJPEG isochronous safety cap; defaults to `85`, limiting advertised/runtime frame bytes to a safe fraction of high-speed isochronous payload capacity when bulk UVC is unavailable |
| `LESAVKA_UVC_LIMIT_PCT` | server hardware/device override |
| `LESAVKA_UVC_MAXBURST` | server hardware/device override |
| `LESAVKA_UVC_MAXPACKET` | server hardware/device override |
| `LESAVKA_UVC_MAXPAYLOAD_LIMIT` | server hardware/device override |
| `LESAVKA_UVC_MJPEG` | server hardware/device override |
| `LESAVKA_UVC_MJPEG_BUDGET_BYTES_PER_SEC` | UVC helper MJPEG budget guard; derives a per-frame byte cap from target FPS when `LESAVKA_UVC_FRAME_MAX_BYTES` is unset; non-bulk UVC is additionally capped by `LESAVKA_UVC_ISOCHRONOUS_LIMIT_PCT` |
| `LESAVKA_UVC_QUEUE_PACING` | UVC helper queue pacing override; defaults to `0` because the RCT host already paces UVC consumption, and delaying returned buffer requeueing can starve isochronous gadget transfers |
| `LESAVKA_UVC_SKIP_UDEV` | server hardware/device override |
| `LESAVKA_UVC_STATS_INTERVAL_MS` | UVC helper telemetry interval for queued/reloaded/rejected MJPEG frame counters; defaults to `5000`, `0` disables |
| `LESAVKA_UVC_STATS_PATH` | UVC helper JSON stats snapshot path for queued/reloaded/rejected MJPEG frame counters; defaults to `/run/lesavka-uvc-video-stats.json`, set `0` or empty to disable file snapshots |
| `LESAVKA_UVC_STREAMING_INTERVAL` | server hardware/device override |
| `LESAVKA_UVC_STREAM_INTF` | server hardware/device override |
| `LESAVKA_UVC_WIDTH` | server hardware/device override |
| `LESAVKA_VIDEO_MAX_KBIT` | eye preview/video transport override |
| `LESAVKA_VIDEO_QUEUE` | eye preview/video transport override |
| `LESAVKA_VIEW_MODE` | launcher UI/runtime override |
| `LESAVKA_ALLOW_EXTERNAL_UVC_GADGET_CYCLE` | server hardware/device override |
| `LESAVKA_CAPTURE_READY__` | manual probe marker; not runtime operator config |
| `LESAVKA_FORCE_SOFT_CONNECT` | server hardware/device override |
| `LESAVKA_HDMI_QUEUE_BUFFERS` | server HDMI video latency override |
| `LESAVKA_INSTALL_CAM_OUTPUT` | install-time server camera output selection |
| `LESAVKA_KERNEL_SKIP_CPUINFO_PATCH` | kernel build/install override |
| `LESAVKA_LAUNCHER_MEASURE_EXIT` | launcher UI/runtime override |
| `LESAVKA_LAUNCHER_MEASURE_PATH` | launcher UI/runtime override |
| `LESAVKA_SERVER_CONNECT_HOST` | manual probe override |
| `LESAVKA_SERVER_ENV` | server/install environment file override |
| `LESAVKA_SERVER_LOG_PATH` | server logging path override |
| `LESAVKA_SYNC_PROBE_AUDIO_DUMP` | manual probe override |
| `LESAVKA_SYNC_PROBE_SEND_LOG` | manual client-origin probe debug sidecar; writes JSONL bundle-send timing so RCT freshness failures can be separated into client queue age versus post-gRPC/server delay |
| `LESAVKA_UAC_SANITY_DEV` | manual UAC sanity probe override |
| `LESAVKA_UAC_SANITY_FREQ` | manual UAC sanity probe override |
| `LESAVKA_UAC_SANITY_SECONDS` | manual UAC sanity probe override |
| `LESAVKA_UAC_SANITY_VOLUME` | manual UAC sanity probe override |
| `LESAVKA_UPLINK_TELEMETRY` | launcher/uplink telemetry path override |
| `LESAVKA_UPSTREAM_CAMERA_STARTUP_GRACE_MS` | upstream A/V timing override |
| `LESAVKA_UPSTREAM_CAMERA_STARTUP_GRACE_US` | upstream A/V timing override used by test contracts and server startup grace handling |
| `LESAVKA_UPSTREAM_REANCHOR_LATE_MS` | upstream A/V timing override |
| `LESAVKA_UPSTREAM_SOURCE_LAG_CAP_MS` | client upstream source freshness cap before camera/mic buffers are treated as stale; defaults to `250` |
| `LESAVKA_UVC_CONTROL_READ_ONLY` | UVC helper runtime override |
| `LESAVKA_UVC_FRAME_PATH` | UVC helper MJPEG frame spool path |
| `LESAVKA_UVC_LOCK_PATH` | UVC helper singleton lock path |
| `LESAVKA_UVC_MJPEG_IO_MODE` | UVC helper MJPEG streaming mode override |
| `LESAVKA_UVC_MJPEG_SPOOL` | UVC helper MJPEG spool toggle |
| `LESAVKA_UVC_SESSION_CLOCK_ALIGN` | UVC helper timing override |

## Recently documented upstream probe and calibration knobs

These entries are intentionally concise because most are manual lab or CI harness controls. The detailed behavior lives in the scripts and source that consume them; this table keeps every `LESAVKA_*` knob discoverable for operators and the hygiene gate.

| `LESAVKA_CAM_EMIT_UI_PROFILE` | client camera/profile negotiation override; used by launcher or lab probes to control emitted capture profile metadata |
| `LESAVKA_CALIBRATION_AUDIO_CODEC` | server calibration profile override for upstream microphone transport (`pcm` or `opus`); keeps Opus delay experiments separate from known-good PCM baselines |
| `LESAVKA_CALIBRATION_PROFILE` | server calibration profile override (`mjpeg`, `hevc`, or combined `camera+audio` such as `hevc+opus`); selects profile-specific server-to-RCT offset maps |
| `LESAVKA_CAM_LOCK_TO_SERVER_PROFILE` | client camera/profile negotiation override; used by launcher or lab probes to control emitted capture profile metadata |
| `LESAVKA_CAM_HEVC_KBIT` | client HEVC camera encoder bitrate in kbit/s; defaults to `3000` for latency-first upstream transport |
| `LESAVKA_CLIENT_RCT_START_DELAY_SECONDS` | manual client-to-RCT transport probe start delay; lets installed server changes settle before capture starts |
| `LESAVKA_CORE_ONESHOT` | server gadget helper mode; when `1`, performs one descriptor rebuild/reconfigure pass and exits |
| `LESAVKA_EYE_FIRST_FRAME_TIMEOUT_MS` | runtime/install/session override; document near use before promoting to broader operator config |
| `LESAVKA_EYE_STALL_WARN_MS` | downstream eye-video diagnostic threshold; logs when an already-started eye stream stops producing samples, defaults to `5000`; `0` disables the midstream warning |
| `LESAVKA_HEVC_DECODER` | server HEVC decoder override; names an explicit hardware decoder such as `v4l2slh265dec` or `v4l2h265dec`; software decoders require `LESAVKA_ALLOW_SOFTWARE_VIDEO=1` |
| `LESAVKA_HEVC_POST_REBOOT_FINAL_MODES` | manual HEVC post-reboot sequence final sanity mode list; defaults to all four supported upstream profiles |
| `LESAVKA_HEVC_POST_REBOOT_OUTPUT_DIR` | manual HEVC post-reboot sequence artifact directory for local preflights, remote re-entry, and matrix logs |
| `LESAVKA_HEVC_POST_REBOOT_PENDING_MODES` | manual HEVC post-reboot sequence static-calibration mode list; defaults to the lower-risk 720p HEVC modes; set explicitly before retrying quarantined `1920x1080@20` |
| `LESAVKA_HEVC_POST_REBOOT_RECONFIGURE_COMMAND` | manual HEVC post-reboot sequence override for the passwordless server-to-RCT reconfigure command |
| `LESAVKA_HEVC_POST_REBOOT_REENTRY_MODE` | manual HEVC post-reboot sequence mode used for the initial deploy/reconfigure smoke, defaults to low-risk `1280x720@30` |
| `LESAVKA_HEVC_POST_REBOOT_REMOTE_HOST` | manual HEVC post-reboot sequence SSH host, defaults to `theia` through the re-entry helper |
| `LESAVKA_HEVC_POST_REBOOT_REMOTE_REPO` | manual HEVC post-reboot sequence remote workspace path, defaults to `/home/theia/Development/lesavka-codex` |
| `LESAVKA_HEVC_POST_REBOOT_REPEAT_COUNT` | manual HEVC post-reboot sequence static matrix repeat count, defaults to `3` |
| `LESAVKA_HEVC_POST_REBOOT_RUN_FINAL_SANITY` | manual HEVC post-reboot sequence toggle; when `1`, runs the final all-mode tuning-disabled HEVC sanity matrix |
| `LESAVKA_HEVC_POST_REBOOT_RUN_LOCAL_PREFLIGHTS` | manual HEVC post-reboot sequence toggle; when `1`, runs local bundle and encoder preflights before remote work |
| `LESAVKA_HEVC_POST_REBOOT_RUN_REENTRY` | manual HEVC post-reboot sequence toggle; when `1`, syncs/builds/deploys/reconfigures Theia through the re-entry helper |
| `LESAVKA_HEVC_POST_REBOOT_RUN_STATIC_MATRIX` | manual HEVC post-reboot sequence toggle; when `1`, runs the pending HEVC static calibration matrix |
| `LESAVKA_HEVC_POST_REBOOT_STATIC_MIN_RUNS` | manual HEVC post-reboot sequence static calibration minimum eligible run count, defaults to `3` |
| `LESAVKA_HEVC_POST_REBOOT_WAIT_INTERVAL_SECONDS` | manual HEVC post-reboot sequence retry interval while waiting for SSH after a lab host outage, defaults to `15` |
| `LESAVKA_HEVC_POST_REBOOT_WAIT_SECONDS` | manual HEVC post-reboot sequence reachability wait budget before remote re-entry, defaults to `900` |
| `LESAVKA_HEVC_REENTRY_BUILD` | manual HEVC re-entry helper toggle; when `1`, builds release server/UVC binaries on Theia after SSH recovers |
| `LESAVKA_HEVC_REENTRY_CODEC` | manual HEVC re-entry helper codec argument for `lesavka-dev-install reconfigure`, defaults to `hevc` |
| `LESAVKA_HEVC_REENTRY_DEPLOY` | manual HEVC re-entry helper toggle; when `1`, deploys already-built binaries via passwordless `lesavka-dev-install` |
| `LESAVKA_HEVC_REENTRY_HOST` | manual HEVC re-entry helper SSH host, defaults to `theia` |
| `LESAVKA_HEVC_REENTRY_MODE` | manual HEVC re-entry helper UVC mode argument, defaults to low-risk `1280x720@30` |
| `LESAVKA_HEVC_REENTRY_OUTPUT_DIR` | manual HEVC re-entry helper artifact directory for status/build/deploy logs |
| `LESAVKA_HEVC_REENTRY_RECONFIGURE` | manual HEVC re-entry helper toggle; when `1`, runs passwordless HEVC mode reconfiguration |
| `LESAVKA_HEVC_REENTRY_REMOTE_REPO` | manual HEVC re-entry helper remote workspace path, defaults to `/home/theia/Development/lesavka-codex` |
| `LESAVKA_HEVC_REENTRY_SYNC` | manual HEVC re-entry helper toggle; when `1`, rsyncs the local workspace to Theia before optional build/deploy |
| `LESAVKA_HEVC_REENTRY_WAIT_INTERVAL_SECONDS` | manual HEVC re-entry helper retry interval while waiting for SSH after a lab host outage, defaults to `15` |
| `LESAVKA_HEVC_REENTRY_WAIT_SECONDS` | manual HEVC re-entry helper reachability wait budget; when greater than `0`, polls SSH before status/build/deploy/reconfigure instead of failing immediately |
| `LESAVKA_INSTALL_CAM_CODEC` | server installer camera ingress codec default; persists `LESAVKA_CAM_CODEC` for installed services, defaults to `hevc`; HEVC installs probe the hardware decoder and warn with a smoke log when the synthetic probe fails, while runtime still refuses software video fallback in production |
| `LESAVKA_INSTALL_SOURCE` | install script source selector; use `ref` to fetch the requested git ref instead of building the existing local checkout |
| `LESAVKA_INSTALL_UVC_FRAME_META` | server installer diagnostic toggle; persists `LESAVKA_UVC_FRAME_META`, defaults to `0` so spool metadata is opt-in |
| `LESAVKA_INSTALL_UVC_FRAME_META_LOG_PATH` | server installer diagnostic path; persists `LESAVKA_UVC_FRAME_META_LOG_PATH`, defaults to `/tmp/lesavka-uvc-frame-meta.jsonl` for optional client-to-RCT spool-boundary fetches |
| `LESAVKA_INSTALL_UPSTREAM_AUDIO_PLAYOUT_OFFSET_US` | installer default override; seeds server calibration env files with known lab-measured output-path offsets |
| `LESAVKA_INSTALL_UPSTREAM_VIDEO_PLAYOUT_OFFSET_US` | installer default override; seeds server calibration env files with known lab-measured output-path offsets |
| `LESAVKA_INSTALL_UPLINK_AUDIO_CODEC` | server installer microphone transport profile seed (`pcm` or `opus`); defaults to `pcm` so reruns preserve the established golden calibration unless Opus is explicitly selected |
| `LESAVKA_LEGACY_SPLIT_UPLINK` | runtime/install/session override; document near use before promoting to broader operator config |
| `LESAVKA_LOCAL_HEVC_BUNDLE_AUDIT_JSON` | local HEVC bundle audit output path; receives the generated JSON manifest for outgoing synthetic HEVC+audio bundles |
| `LESAVKA_LOCAL_HEVC_BUNDLE_AUDIT_OUTPUT_DIR` | local HEVC bundle audit artifact directory, defaults to a timestamped `/tmp/lesavka-local-hevc-bundle-audit-*` path |
| `LESAVKA_LOCAL_HEVC_ENCODER` | local HEVC encoder preflight override; defaults to `auto`; `ffmpeg_hevc_nvenc`/`hevc_nvenc` forces the NVIDIA FFmpeg hardware route, while software encoders require `LESAVKA_ALLOW_SOFTWARE_VIDEO=1` |
| `LESAVKA_LOCAL_HEVC_ENCODER_PREFLIGHT_JSON` | local HEVC encoder preflight summary path; receives throughput and Annex-B validation for each tested mode |
| `LESAVKA_LOCAL_HEVC_ENCODER_PREFLIGHT_KBIT` | local HEVC encoder preflight bitrate in kbit/s, defaults to `3000` |
| `LESAVKA_LOCAL_HEVC_ENCODER_PREFLIGHT_MIN_REALTIME_FACTOR` | local HEVC encoder preflight pass threshold; encoded media seconds divided by wall time must meet this value, defaults to `1.05` |
| `LESAVKA_LOCAL_HEVC_ENCODER_PREFLIGHT_MODES` | local HEVC encoder preflight mode list, defaults to the four supported upstream profiles |
| `LESAVKA_LOCAL_HEVC_ENCODER_PREFLIGHT_OUTPUT_DIR` | local HEVC encoder preflight artifact directory, defaults to a timestamped `/tmp/lesavka-local-hevc-encoder-preflight-*` path |
| `LESAVKA_LOCAL_HEVC_ENCODER_PREFLIGHT_SECONDS` | local HEVC encoder preflight media duration per mode, defaults to `5` |
| `LESAVKA_MIC_PACKET_TARGET_US` | client microphone capture override; tunes Pulse/PipeWire packet sizing, buffering, or selected source behavior |
| `LESAVKA_MIC_PULSE_BUFFER_TIME_US` | client microphone capture override; tunes Pulse/PipeWire packet sizing, buffering, or selected source behavior |
| `LESAVKA_MIC_PULSE_LATENCY_TIME_US` | client microphone capture override; tunes Pulse/PipeWire packet sizing, buffering, or selected source behavior |
| `LESAVKA_MODE` | manual probe/server connection override used to resolve the target Lesavka server and mode under test |
| `LESAVKA_OPEN_MANUAL_REVIEW_DOLPHIN` | manual browser-stimulus probe override; controls local review browser behavior for mirrored upstream A/V tests |
| `LESAVKA_GOOGLE_MEET_URL` | manual Google Meet observer probe URL; recorded in artifacts and optionally opened locally without storing credentials |
| `LESAVKA_MEET_ANALYSIS_REQUIRED` | manual Google Meet observer probe guard; when true, fail if no observer capture is supplied for analysis |
| `LESAVKA_MEET_LOCAL_REVIEW` | manual Google Meet observer probe toggle for local post-run review helpers |
| `LESAVKA_MEET_OBSERVER_CAPTURE` | manual Google Meet observer recording path copied and analyzed after the synthetic upstream stimulus run |
| `LESAVKA_MEET_OPEN_URL` | manual Google Meet observer probe toggle; when true, opens `LESAVKA_GOOGLE_MEET_URL` in the local browser |
| `LESAVKA_MEET_SKIP_PROMPTS` | manual Google Meet observer probe toggle for non-interactive lab retries after setup is already complete |
| `LESAVKA_MEET_START_DELAY_SECONDS` | manual Google Meet observer probe delay before synthetic media starts, giving the operator/browser time to settle |
| `LESAVKA_OUTPUT_DELAY_CONFIRMING` | manual direct UVC/UAC output-delay probe override; controls server-generated output calibration, confirmation, freshness, or reporting |
| `LESAVKA_OUTPUT_DELAY_PROBE_AUDIO_DELAY_US` | manual direct UVC/UAC output-delay probe override; controls server-generated output calibration, confirmation, freshness, or reporting |
| `LESAVKA_OUTPUT_DELAY_PROBE_VIDEO_DELAY_US` | manual direct UVC/UAC output-delay probe override; controls server-generated output calibration, confirmation, freshness, or reporting |
| `LESAVKA_OUTPUT_FRESHNESS_MIN_PAIRS` | manual direct UVC/UAC output-delay probe override; controls server-generated output calibration, confirmation, freshness, or reporting |
| `LESAVKA_REQUIRE_EXPLICIT_MEDIA_SOURCES` | test/build contract variable; keeps deterministic coverage and probe preconditions explicit in CI or manual harnesses |
| `LESAVKA_REQUIRE_SYNC_PROBE` | test/build contract variable; keeps deterministic coverage and probe preconditions explicit in CI or manual harnesses |
| `LESAVKA_SERVER_PORT` | manual probe/server connection override used to resolve the target Lesavka server and mode under test |
| `LESAVKA_SERVER_RC_ALLOW_GADGET_RESET` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_ANALYSIS_TIMELINE_WINDOW` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_CONTINUE_ON_FAIL` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_CORE_WEBCAM_MODES` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_DEFAULT_AUDIO_DELAY_US` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_DEFAULT_VIDEO_DELAY_US` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_FORCE_GADGET_REBUILD` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_FRESHNESS_MAX_AGE_MS` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_FRESHNESS_MAX_CLOCK_UNCERTAINTY_MS` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_FRESHNESS_MAX_DRIFT_MS` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_FRESHNESS_MIN_PAIRS` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_HEVC_MODE_DELAYS_US` | manual server-to-RCT mode-matrix HEVC seed delay map; defaults to `1280x720@20=173852,1280x720@30=145695,1920x1080@20=160045,1920x1080@30=127952` |
| `LESAVKA_SERVER_RC_MAX_AUDIO_HICCUPS` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_MAX_AUDIO_LOW_RMS_WINDOWS` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_MAX_AUDIO_P95_JITTER_MS` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_MJPEG_MODE_DELAYS_US` | manual server-to-RCT mode-matrix MJPEG seed delay map; defaults to the baked MJPEG profile values |
| `LESAVKA_SERVER_RC_NORMALIZED_PROFILE` | internal manual mode-matrix normalized profile value; derived from `LESAVKA_SERVER_RC_PROFILE` |
| `LESAVKA_SERVER_RC_PROFILE` | manual server-to-RCT mode-matrix ingress profile (`mjpeg` or `hevc`); selects profile-specific delays and capture budgets |
| `LESAVKA_SERVER_RC_MAX_VIDEO_DUPLICATE_FRAMES` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_MAX_VIDEO_HICCUPS` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_MAX_VIDEO_MISSING_FRAMES` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_MAX_VIDEO_P95_JITTER_MS` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_MAX_VIDEO_UNDECODABLE_FRAMES` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_MIN_CODED_PAIRS` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_MODES` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_MODE_AUDIO_DELAYS_US` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_MODE_DELAYS_US` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_MODE_DISCOVERY_EXCLUDE_REGEX` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_MODE_DISCOVERY_FPS` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_MODE_DISCOVERY_INCLUDE_REGEX` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_MODE_DISCOVERY_SIZES` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_MODE_SOURCE` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_PREROLL_DISCARD_SECONDS` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_PROBE_PREBUILD` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_PROMPT_SUDO_EARLY` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_RECONFIGURE` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_RECONFIGURE_CODEC` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_RECONFIGURE_COMMAND` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_RECONFIGURE_REF` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_RECONFIGURE_SETTLE_SECONDS` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_RECONFIGURE_STRATEGY` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_RECONFIGURE_UPDATE` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_RECONFIGURE_VERBOSE` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_REMOTE_SUDO_PASSWORD` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_REPEAT_COUNT` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_REQUIRE_ALL_CODED_PAIRS` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_REQUIRE_FRESHNESS_PASS` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_REQUIRE_SMOOTHNESS_PASS` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_REQUIRE_SYNC_PASS` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_SIGNAL_CONDITION_EVENT_WIDTH_CODES` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_SIGNAL_CONDITION_GAP_SECONDS` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_SIGNAL_CONDITION_SECONDS` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_SIGNAL_CONDITION_WARMUP_SECONDS` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_SIGNAL_READY` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_SIGNAL_READY_ATTEMPTS` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_SIGNAL_READY_DURATION_SECONDS` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_SIGNAL_READY_MIN_PAIRS` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_SIGNAL_READY_MODE` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_SIGNAL_READY_RETRY_DELAY_SECONDS` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_SIGNAL_READY_WARMUP_SECONDS` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_START_DELAY_SECONDS` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_STATIC_MAX_MEDIAN_SKEW_MS` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_STATIC_MAX_P95_SKEW_MS` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_STATIC_MAX_SPREAD_US` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_STATIC_MIN_RUNS` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_STATIC_REQUIRE_FRESHNESS` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_STATIC_REQUIRE_SMOOTHNESS` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_TETHYS_READY_TIMEOUT_SECONDS` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_TETHYS_SETTLE_SECONDS` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_TUNE_CONFIRM` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_TUNE_DELAYS` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_TUNE_MAX_ABS_SKEW_MS` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_TUNE_MAX_DRIFT_MS` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_TUNE_MAX_STEP_US` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_TUNE_MIN_CHANGE_US` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_TUNE_MIN_PAIRS` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_VERBOSE_PROBES` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RC_WAIT_TETHYS_READY` | manual server-to-RCT mode-matrix probe override; used to tune, confirm, or summarize server-generated UVC/UAC output against the RC capture target |
| `LESAVKA_SERVER_RCT_MATRIX_CMD` | bare-metal lab gate command override for the server-to-RCT mode matrix; use only on isolated lab workers |
| `LESAVKA_SERVER_REPO` | manual probe/server connection override used to resolve the target Lesavka server and mode under test |
| `LESAVKA_SERVER_SCHEME` | manual probe/server connection override used to resolve the target Lesavka server and mode under test |
| `LESAVKA_STIMULUS_BROWSER_KIOSK` | manual browser-stimulus probe override; controls local review browser behavior for mirrored upstream A/V tests |
| `LESAVKA_STIMULUS_PREVIEW_SECONDS` | manual browser-stimulus probe override; controls local review browser behavior for mirrored upstream A/V tests |
| `LESAVKA_SYNC_ADAPTIVE_CALIBRATION` | manual upstream A/V sync probe override; controls mirrored/client-to-server calibration, confirmation, reporting, or failure handling |
| `LESAVKA_SYNC_APPLY_CALIBRATION` | manual upstream A/V sync probe override; controls mirrored/client-to-server calibration, confirmation, reporting, or failure handling |
| `LESAVKA_SYNC_CALIBRATION_SEGMENTS` | manual upstream A/V sync probe override; controls mirrored/client-to-server calibration, confirmation, reporting, or failure handling |
| `LESAVKA_SYNC_CALIBRATION_SEGMENTS_SET` | manual upstream A/V sync probe override; controls mirrored/client-to-server calibration, confirmation, reporting, or failure handling |
| `LESAVKA_SYNC_CALIBRATION_TARGET` | manual upstream A/V sync probe override; controls mirrored/client-to-server calibration, confirmation, reporting, or failure handling |
| `LESAVKA_SYNC_CONFIRMATION_SEGMENTS` | manual upstream A/V sync probe override; controls mirrored/client-to-server calibration, confirmation, reporting, or failure handling |
| `LESAVKA_SYNC_CONFIRM_AFTER_CALIBRATION` | manual upstream A/V sync probe override; controls mirrored/client-to-server calibration, confirmation, reporting, or failure handling |
| `LESAVKA_SYNC_CONTINUE_ON_ANALYSIS_FAILURE` | manual upstream A/V sync probe override; controls mirrored/client-to-server calibration, confirmation, reporting, or failure handling |
| `LESAVKA_SYNC_CONTINUOUS_BROWSER` | manual upstream A/V sync probe override; controls mirrored/client-to-server calibration, confirmation, reporting, or failure handling |
| `LESAVKA_SYNC_PROBE_REPORT_DIR` | manual upstream A/V sync probe override; controls mirrored/client-to-server calibration, confirmation, reporting, or failure handling |
| `LESAVKA_SYNC_PROBE_REPORT_JSON` | manual upstream A/V sync probe override; controls mirrored/client-to-server calibration, confirmation, reporting, or failure handling |
| `LESAVKA_SYNC_PROVISIONAL_CALIBRATION` | manual upstream A/V sync probe override; controls mirrored/client-to-server calibration, confirmation, reporting, or failure handling |
| `LESAVKA_SYNC_PROVISIONAL_GAIN` | manual upstream A/V sync probe override; controls mirrored/client-to-server calibration, confirmation, reporting, or failure handling |
| `LESAVKA_SYNC_PROVISIONAL_MAX_DRIFT_MS` | manual upstream A/V sync probe override; controls mirrored/client-to-server calibration, confirmation, reporting, or failure handling |
| `LESAVKA_SYNC_PROVISIONAL_MAX_P95_MS` | manual upstream A/V sync probe override; controls mirrored/client-to-server calibration, confirmation, reporting, or failure handling |
| `LESAVKA_SYNC_PROVISIONAL_MAX_STEP_US` | manual upstream A/V sync probe override; controls mirrored/client-to-server calibration, confirmation, reporting, or failure handling |
| `LESAVKA_SYNC_PROVISIONAL_MIN_PAIRS` | manual upstream A/V sync probe override; controls mirrored/client-to-server calibration, confirmation, reporting, or failure handling |
| `LESAVKA_SYNC_RAW_FAILURE_CALIBRATION` | manual upstream A/V sync probe override; controls mirrored/client-to-server calibration, confirmation, reporting, or failure handling |
| `LESAVKA_SYNC_RAW_FAILURE_MAX_ABS_DELTA_MS` | manual upstream A/V sync probe override; controls mirrored/client-to-server calibration, confirmation, reporting, or failure handling |
| `LESAVKA_SYNC_RAW_FAILURE_MIN_PAIRS` | manual upstream A/V sync probe override; controls mirrored/client-to-server calibration, confirmation, reporting, or failure handling |
| `LESAVKA_SYNC_REQUIRE_CONFIRMATION_PASS` | manual upstream A/V sync probe override; controls mirrored/client-to-server calibration, confirmation, reporting, or failure handling |
| `LESAVKA_SYNC_SAVE_CALIBRATION` | manual upstream A/V sync probe override; controls mirrored/client-to-server calibration, confirmation, reporting, or failure handling |
| `LESAVKA_SYNC_SEGMENT_SETTLE_SECONDS` | manual upstream A/V sync probe override; controls mirrored/client-to-server calibration, confirmation, reporting, or failure handling |
| `LESAVKA_SYNC_TOTAL_SEGMENTS` | manual upstream A/V sync probe override; controls mirrored/client-to-server calibration, confirmation, reporting, or failure handling |
| `LESAVKA_TEST_CAP_BUNDLED` | test/build contract variable; keeps deterministic coverage and probe preconditions explicit in CI or manual harnesses |
| `LESAVKA_UAC_APP_MAX_BUFFERS` | server UAC appsrc buffering override for lab tuning of microphone gadget output latency and stability |
| `LESAVKA_UAC_APP_MAX_BYTES` | server UAC appsrc buffering override for lab tuning of microphone gadget output latency and stability |
| `LESAVKA_UAC_APP_MAX_TIME_NS` | server UAC appsrc buffering override for lab tuning of microphone gadget output latency and stability |
| `LESAVKA_UAC_APP_LEAKY_TYPE` | server UAC appsrc live-backlog policy (`downstream`, `upstream`, or `none`); defaults to `downstream` so a slow RCT audio reader drops stale audio instead of growing RSS |
| `LESAVKA_MIC_NOISE_SUPPRESSION` | client microphone capture toggle; when truthy, inserts WebRTC DSP noise suppression before upstream audio transport |
| `LESAVKA_UPLINK_AUDIO_CODEC` | client/server upstream microphone transport hint (`opus` or `pcm`); launcher and installer default to PCM until Opus calibration is intentionally selected |
| `LESAVKA_UPLINK_CAMERA_CODEC` | server camera ingress codec hint; records whether upstream camera media arrives as `mjpeg`, `h264`, or `hevc` before UVC output |
| `LESAVKA_UPSTREAM_HEVC_AUDIO_PLAYOUT_MODE_OFFSETS_US` | server HEVC-ingress audio playout delay map by `WIDTHxHEIGHT@FPS`; overrides generic upstream audio offsets for HEVC |
| `LESAVKA_UPSTREAM_HEVC_AUDIO_PLAYOUT_OFFSET_US` | server HEVC-ingress scalar audio playout delay in microseconds; used when no mode-specific value is present |
| `LESAVKA_UPSTREAM_HEVC_OPUS_AUDIO_PLAYOUT_MODE_OFFSETS_US` | server combined HEVC camera plus Opus microphone playout delay map by `WIDTHxHEIGHT@FPS`; forked from the PCM map until lab calibration replaces it |
| `LESAVKA_UPSTREAM_HEVC_OPUS_AUDIO_PLAYOUT_OFFSET_US` | server combined HEVC camera plus Opus microphone scalar playout delay in microseconds; used when no mode-specific value is present |
| `LESAVKA_UPSTREAM_HEVC_PCM_AUDIO_PLAYOUT_MODE_OFFSETS_US` | server combined HEVC camera plus PCM microphone playout delay map by `WIDTHxHEIGHT@FPS`; preserves the current golden PCM baseline |
| `LESAVKA_UPSTREAM_HEVC_PCM_AUDIO_PLAYOUT_OFFSET_US` | server combined HEVC camera plus PCM microphone scalar playout delay in microseconds; used when no mode-specific value is present |
| `LESAVKA_UPSTREAM_HEVC_VIDEO_PLAYOUT_MODE_OFFSETS_US` | server HEVC-ingress video playout delay map by `WIDTHxHEIGHT@FPS`; includes decode/re-emit path calibration |
| `LESAVKA_UPSTREAM_HEVC_VIDEO_PLAYOUT_OFFSET_US` | server HEVC-ingress scalar video playout delay in microseconds; used when no mode-specific value is present |
| `LESAVKA_UPSTREAM_MJPEG_AUDIO_PLAYOUT_MODE_OFFSETS_US` | server MJPEG-ingress audio playout delay map by `WIDTHxHEIGHT@FPS`; preserves the calibrated MJPEG transport profile |
| `LESAVKA_UPSTREAM_MJPEG_AUDIO_PLAYOUT_OFFSET_US` | server MJPEG-ingress scalar audio playout delay in microseconds; used when no mode-specific value is present |
| `LESAVKA_UPSTREAM_MJPEG_OPUS_AUDIO_PLAYOUT_MODE_OFFSETS_US` | server combined MJPEG camera plus Opus microphone playout delay map by `WIDTHxHEIGHT@FPS`; forked from the PCM map until lab calibration replaces it |
| `LESAVKA_UPSTREAM_MJPEG_OPUS_AUDIO_PLAYOUT_OFFSET_US` | server combined MJPEG camera plus Opus microphone scalar playout delay in microseconds; used when no mode-specific value is present |
| `LESAVKA_UPSTREAM_MJPEG_PCM_AUDIO_PLAYOUT_MODE_OFFSETS_US` | server combined MJPEG camera plus PCM microphone playout delay map by `WIDTHxHEIGHT@FPS`; preserves the current golden PCM baseline |
| `LESAVKA_UPSTREAM_MJPEG_PCM_AUDIO_PLAYOUT_OFFSET_US` | server combined MJPEG camera plus PCM microphone scalar playout delay in microseconds; used when no mode-specific value is present |
| `LESAVKA_UPSTREAM_MJPEG_VIDEO_PLAYOUT_MODE_OFFSETS_US` | server MJPEG-ingress video playout delay map by `WIDTHxHEIGHT@FPS`; preserves the calibrated MJPEG transport profile |
| `LESAVKA_UPSTREAM_MJPEG_VIDEO_PLAYOUT_OFFSET_US` | server MJPEG-ingress scalar video playout delay in microseconds; used when no mode-specific value is present |
| `LESAVKA_UPSTREAM_BLIND_HEAL` | server upstream media blind-healer tuning knob; adjusts cautious runtime offset correction when telemetry indicates persistent skew |
| `LESAVKA_UPSTREAM_BLIND_HEAL_COOLDOWN_MS` | server upstream media blind-healer tuning knob; adjusts cautious runtime offset correction when telemetry indicates persistent skew |
| `LESAVKA_UPSTREAM_BLIND_HEAL_DEADBAND_MS` | server upstream media blind-healer tuning knob; adjusts cautious runtime offset correction when telemetry indicates persistent skew |
| `LESAVKA_UPSTREAM_BLIND_HEAL_GAIN` | server upstream media blind-healer tuning knob; adjusts cautious runtime offset correction when telemetry indicates persistent skew |
| `LESAVKA_UPSTREAM_BLIND_HEAL_INTERVAL_MS` | server upstream media blind-healer tuning knob; adjusts cautious runtime offset correction when telemetry indicates persistent skew |
| `LESAVKA_UPSTREAM_BLIND_HEAL_MAX_CLIENT_SEND_P95_MS` | server upstream media blind-healer tuning knob; adjusts cautious runtime offset correction when telemetry indicates persistent skew |
| `LESAVKA_UPSTREAM_BLIND_HEAL_MAX_HANDOFF_P95_MS` | server upstream media blind-healer tuning knob; adjusts cautious runtime offset correction when telemetry indicates persistent skew |
| `LESAVKA_UPSTREAM_BLIND_HEAL_MAX_QUEUE_AGE_P95_MS` | server upstream media blind-healer tuning knob; adjusts cautious runtime offset correction when telemetry indicates persistent skew |
| `LESAVKA_UPSTREAM_BLIND_HEAL_MAX_SERVER_RECEIVE_P95_MS` | server upstream media blind-healer tuning knob; adjusts cautious runtime offset correction when telemetry indicates persistent skew |
| `LESAVKA_UPSTREAM_BLIND_HEAL_MAX_SINK_LATE_P95_MS` | server upstream media blind-healer tuning knob; adjusts cautious runtime offset correction when telemetry indicates persistent skew |
| `LESAVKA_UPSTREAM_BLIND_HEAL_MAX_STEP_US` | server upstream media blind-healer tuning knob; adjusts cautious runtime offset correction when telemetry indicates persistent skew |
| `LESAVKA_UPSTREAM_BLIND_HEAL_MIN_SAMPLES` | server upstream media blind-healer tuning knob; adjusts cautious runtime offset correction when telemetry indicates persistent skew |
| `LESAVKA_UPSTREAM_BLIND_HEAL_TARGET` | server upstream media blind-healer tuning knob; adjusts cautious runtime offset correction when telemetry indicates persistent skew |
| `LESAVKA_UPSTREAM_AUTO_HEAL` | client live bundled-upstream startup heal toggle; defaults on to retire a stale first UAC epoch after connect |
| `LESAVKA_UPSTREAM_AUTO_HEAL_AFTER_MS` | client live bundled-upstream startup heal delay; defaults to `3000`ms before issuing the safe audio-epoch recovery |
| `LESAVKA_UPSTREAM_SOURCE_LEAD_CAP_MS` | server upstream media timing override; bounds live source lead or playout behavior while tuning client-to-server transport |
| `LESAVKA_UVC_CONFIGFS_BASE` | server UVC gadget mode/configfs override used by runtime reconfiguration and hardware-in-the-loop probes |
| `LESAVKA_UVC_DIRECT_MJPEG_JPEG_QUALITY` | server direct-MJPEG normalization JPEG quality; defaults to `72` when the opt-in normalizer is enabled |
| `LESAVKA_UVC_DIRECT_MJPEG_MIN_REFERENCE_BYTES` | server direct-MJPEG guard baseline; frames smaller than this do not establish the last-good reference |
| `LESAVKA_UVC_DIRECT_MJPEG_NORMALIZE` | server direct-MJPEG normalization toggle; defaults off because the native GStreamer decode/re-encode branch can retain RSS during long calls |
| `LESAVKA_UVC_DIRECT_MJPEG_NORMALIZE_MISS_LIMIT` | server direct-MJPEG normalization recovery threshold; after this many consecutive empty pulls, the session falls back to guarded passthrough |
| `LESAVKA_UVC_DIRECT_MJPEG_NORMALIZE_PULL_TIMEOUT_MS` | server direct-MJPEG normalization appsink timeout; defaults to `25`ms and is capped at `50`ms to avoid live backlog |
| `LESAVKA_UVC_DIRECT_MJPEG_NORMALIZE_RSS_LIMIT_MB` | server direct-MJPEG normalization RSS safety ceiling; defaults to `768`, and `0` disables this opt-in branch guard |
| `LESAVKA_UVC_DIRECT_MJPEG_SIZE_DROP_PCT` | server direct-MJPEG corruption guard threshold; frames below this percentage of the last good reference are frozen out |
| `LESAVKA_UVC_DIRECT_MJPEG_VISUAL_GUARD` | server direct-MJPEG corruption guard toggle; defaults on so obvious collapsed or flat payloads freeze the last good frame |
| `LESAVKA_UVC_HEVC_DOMINANT_BYTE_PCT` | server HEVC-to-MJPEG corruption guard threshold; flat decoded MJPEG payloads with one byte at or above this percentage are frozen out, default `92` |
| `LESAVKA_UVC_HEVC_FREEZE_ON_SIZE_DROP` | server HEVC-to-MJPEG corruption guard toggle; defaults on so suspicious decoded frame collapses freeze the last good MJPEG frame |
| `LESAVKA_UVC_HEVC_JPEG_QUALITY` | server HEVC-to-MJPEG UVC bridge JPEG quality; defaults to `72` to lower UVC payload pressure while keeping RCT output compatible |
| `LESAVKA_UVC_HEVC_MIN_PAYLOAD_DISTINCT_BYTES` | server HEVC-to-MJPEG corruption guard threshold; decoded MJPEG payloads with fewer distinct payload bytes are treated as flat grey/black damage, default `12` |
| `LESAVKA_UVC_HEVC_MIN_REFERENCE_BYTES` | server HEVC-to-MJPEG corruption guard baseline; decoded MJPEG frames smaller than this do not become freeze references |
| `LESAVKA_UVC_HEVC_SIZE_DROP_PCT` | server HEVC-to-MJPEG corruption guard threshold; frames below this percentage of the last good reference are frozen out |
| `LESAVKA_UVC_MODE` | server UVC gadget mode/configfs override used by runtime reconfiguration and hardware-in-the-loop probes |
