Сделать DM body opaque для сервера и улучшить fallback UI

This commit is contained in:
AidarKC
2026-07-10 18:12:17 +04:00
parent cc1f78106d
commit 076b43e542
10 changed files with 190 additions and 56 deletions
+17 -3
View File
@@ -83,6 +83,16 @@ import * as networkView from './pages/network-view.js';
import * as notificationsView from './pages/notifications-view.js';
const CONVERSATION_CLEAR_NOTICE_TEXT = 'История переписки очищена с этого места';
const DM_UNSUPPORTED_FORMAT_TEXT = 'Формат сообщения не поддерживается';
const DM_DECRYPT_FAILED_TEXT = 'Не удалось расшифровать сообщение';
const DM_CORRUPTED_TEXT = 'Сообщение повреждено';
function dmDecryptFallbackText(error) {
const kind = authService.classifyDmDecryptFailure(error);
if (kind === 'unsupported_format') return DM_UNSUPPORTED_FORMAT_TEXT;
if (kind === 'corrupted') return DM_CORRUPTED_TEXT;
return DM_DECRYPT_FAILED_TEXT;
}
const routes = {
'start-view': startView,
@@ -1095,14 +1105,18 @@ async function init() {
});
text = String(decrypted?.text || '');
} catch (error) {
shouldAckSessionDelivery = false;
text = dmDecryptFallbackText(error);
addAppLogEntry({
level: 'warn',
source: 'signed-dm',
message: 'Не удалось расшифровать DM',
details: { messageKey, baseKey: parsed.baseKey, error: error?.message || 'unknown' },
details: {
messageKey,
baseKey: parsed.baseKey,
error: error?.message || 'unknown',
fallbackText: text,
},
});
return;
}
}
const chatId = resolveSignedDmChatId({