Звонки: фиксы session fallback/registry, аналитика ICE/TURN, авточек UI-версии и перенос кнопки разработчика

This commit is contained in:
AidarKC
2026-05-01 17:42:51 +03:00
parent e3377a48b3
commit 27bd47dbe0
6 changed files with 187 additions and 10 deletions
+29
View File
@@ -108,6 +108,7 @@ const toolbarEl = document.getElementById('toolbar-slot');
const appShellEl = document.querySelector('.app-shell');
const CONNECTION_CHECK_INTERVAL_MS = 20 * 1000;
const UI_VERSION_PERIODIC_CHECK_MS = 5 * 60 * 1000;
const CURRENT_BUILD_HASH = String(window.__SHINE_BUILD_HASH__ || '').trim();
const UI_BUILD_HASH_PATTERN = /window\.__SHINE_BUILD_HASH__\s*=\s*'([^']+)'/;
@@ -125,6 +126,7 @@ let wsSessionRestoreInFlight = null;
let uiUpdateReloadScheduled = false;
let pwaUpdateCheckAttempted = false;
let uiVersionCheckInFlight = false;
let uiVersionPeriodicIntervalId = null;
setClientErrorTransport((payload) => authService.reportClientError(payload));
initPwaInstallPromptHandling();
@@ -335,6 +337,32 @@ async function tryUpdatePwaOnFirstConnectedPing() {
await refreshServiceWorkers({ activateWaitingWorker: false });
}
async function runPeriodicUiVersionCheck() {
if (uiUpdateReloadScheduled) return;
if (uiVersionCheckInFlight) return;
try {
const latestHostHash = await fetchCurrentHostUiBuildHash();
if (!latestHostHash || !CURRENT_BUILD_HASH || latestHostHash === CURRENT_BUILD_HASH) return;
scheduleUiReload({
source: 'ui-periodic-version-check',
message: `Найдена новая версия UI: ${CURRENT_BUILD_HASH} -> ${latestHostHash}`,
delayMs: 600,
activateWaitingWorker: true,
});
} catch {
// ignore periodic check errors
}
}
function startPeriodicUiVersionCheck() {
if (uiVersionPeriodicIntervalId) return;
// ВРЕМЕННО: частая проверка обновления UI (каждые 5 минут) для диагностики проблем с обновлением клиента.
// Позже интервал нужно увеличить или вернуть проверку только по ручному действию.
uiVersionPeriodicIntervalId = window.setInterval(() => {
void runPeriodicUiVersionCheck();
}, UI_VERSION_PERIODIC_CHECK_MS);
}
async function checkConnectionHealth() {
if (connectionCheckInFlight) return;
connectionCheckInFlight = true;
@@ -887,6 +915,7 @@ async function init() {
await tryAutoLogin();
await hydrateMessagesFromStore();
startConnectionMonitor();
startPeriodicUiVersionCheck();
await ensureSessionRuntimeStarted();
if (!window.location.hash) {