fix(install): LiveKit перезапускается при изменении конфига

LiveKit читает livekit.yaml только при старте, а compose не замечает правок в
примонтированном файле — из-за этого вебхуки не включались после обновления.
Установщик сравнивает sha256 конфига с сохранённым и перезапускает сервис.
This commit is contained in:
2026-09-20 18:38:54 +03:00
parent 9e7d023f7e
commit ecd7b3be10
27 changed files with 2637 additions and 37 deletions
+11 -1
View File
@@ -1,6 +1,7 @@
import { useEffect, useState } from 'react';
import { useVoiceStore, type VoiceDeviceKind } from '@/stores/voice';
import { useVoiceConnectionStore } from '@/stores/voiceConnection';
/** Устройство ввода/вывода в том виде, в каком его показывает интерфейс. */
export interface MediaDevice {
@@ -72,6 +73,9 @@ export function useMediaDevices(kind: VoiceDeviceKind): MediaDevicesResult {
/**
* Выбранное устройство нужного вида из стора предпочтений.
* Одна обёртка на три вида — чтобы не дублировать селекторы в компонентах.
*
* Смена устройства сразу применяется к активной голосовой сессии
* (`switchActiveDevice`), а выбор сохраняется в предпочтениях клиента.
*/
export function useDeviceChoice(kind: VoiceDeviceKind): {
value: string;
@@ -87,5 +91,11 @@ export function useDeviceChoice(kind: VoiceDeviceKind): {
return state.outputDeviceId;
});
const selectDevice = useVoiceStore((state) => state.selectDevice);
return { value, select: (deviceId: string) => selectDevice(kind, deviceId) };
return {
value,
select: (deviceId: string) => {
selectDevice(kind, deviceId);
void useVoiceConnectionStore.getState().switchActiveDevice(kind, deviceId);
},
};
}