* add ptz controls to camera via wizard when onvif has already been probed
* i18n
* add e2e test
* backend add and remove subscriber
* tweaks
* turn on switch by default if pan and/or tilt capability is available
* fix test
* add sub stream recording with adaptive quality playback
Optionally record a second, lower bitrate stream alongside the main
recording stream via a `record_sub` input role and `record.sub` config block, with its own retention windows.
Recordings rows now carry the stream type plus the media details needed to serve both streams from one manifest: video codec, audio presence, audio codec and rate, and a record-time keyframe index.
Playback resolves coverage across both streams and merges them into a single VOD sequence, falling back to a discontinuity manifest with per-clip init segments when the media signatures differ. The player exposes a quality selector, and an auto governor picks the stream from stall time, bandwidth, codec support, and the save-data hint.
* fix tests and i18n
* add host npu requirements to docs
* allow toggling live audio transcription via mqtt
* improve spacing consistency on mobile drawers
* fix clearing the region grid not surviving a restart
* remove redundant per-view toasters in settings
* add variants to standardize dialog footer button layouts
* remove text-md
this class name compiles to nothing in tailwind. we used to add it to prevent iOS from zooming when focusing on an input, but that is now solved via the viewport meta in index.html
* make wizard footers consistent with dialog footers
* consistent destructive button style
remove text-white from individual buttons and add it to the variant
* Bump radix-ui packages to align react-dismissable-layer version and fix nested overlay pointer-events bug
* remove workarounds for radix pointer events issues on dropdown and context menus
* remove disablePortal from popover
* remove modal on popovers
* remove workarounds in restart dialog
* keep onCloseAutoFocus for face, classification, and ptz
these are necessary to prevent tooltips from re-showing and from the arrow keys from reopening the ptz presets menu
* add tests
* backend api endpoint
* don't add no-credentials version of streams to rtsp_candidates
* frontend types
* improve types
* add optional probe dialog to wizard step 1
* i18n
* form description and field change
* add onvif form description
* match onvif probe pane with other steps in the wizard
* refactor to add probe and snapshot as step 2
* consolidate probe dialog
* don't change dialog size
* radio button style
* refactor to select onvif urls via combobox in step 3
* i18n
* add scrollbar container
* i18n cleanup
* fix button activity indicator
* match test parsing in step 3 with step 2
* hide resolution if both width and height are zero
* use drawer for stream selection on mobile in step 3
* suppress double toasts
* api endpoint description