SHA256
Звонки: фиксы session fallback/registry, аналитика ICE/TURN, авточек UI-версии и перенос кнопки разработчика
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user