src/lib/load-messages.ts: новый изолированный утилит загрузки сообщений со строгим логированием ошибок и защитой от пустого объекта во время выполнения.fs/promises из src/locales/{locale}/{ns}.json.deepMerge пространств имён: common → mail → settings → auth → commands.en, затем поверх накладывается целевая локаль — отсутствующие ключи отображаются на английском, а не в сыром виде.console.error при пустом объекте сообщений (диагностика для Docker standalone).src/i18n/request.ts: обновлён до API next-intl v4 — ({ requestLocale }) с await requestLocale (асинхронные параметры Next.js 16).loadMessages(locale); удалено чтение файлов в коде.src/app/[locale]/layout.tsx: getMessages() вызывается без аргументов — читает из кэшированного React-контекста, инициализированного request.ts.next.config.ts: outputFileTracingIncludes исправлен — ключ "/[locale]/**/*" (ранее был некорректный "/*"); пути ./src/locales/**/*.json + ./src/i18n/**/*.ts.Dockerfile: src/i18n + src/locales скопированы в образ времени выполнения; chown -R node:node ./src обеспечивает права на чтение для USER node.internal/sync/priority_checker.go: новый PriorityChecker — изолированный, кратковременный IMAP-сканер для синхронизации по инициативе пользователя.SyncAllFolders (INBOX + все папки), затем отключается.CheckWorker / SyncWorker.dialWithRateLimit, authenticate, SyncAllFolders, syncFolderByUID — нулевое дублирование кода.internal/api/account_handlers.go: новая конечная точка POST /api/accounts/{id}/check-now.Авторизация через CheckAccountAccessФоновая горутина с контекстным таймаутом 2 минуты — HTTP возвращает {"status":"ok"} немедленно.cmd/server/main.go:PriorityChecker подключён к apiHandler через sync.NewPriorityChecker(store, oauthManager).frontend/src/components/email-sidebar.tsx: handleAccountSelect запускает fetch POST /api/accounts/{id}/check-now для конкретных аккаунтов (пропускает unified/groups)..catch(() => {}) (internal/store/postgres/storage.go)MaxConns по умолчанию: 100 → min(20, CPU*4)Переопределение: PG_MAX_CONNS / PG_SYNC_MAX_CONNS (internal/store/postgres/storage.go, internal/sync/worker.goНовый AnalyzeAfterBulk() метод запускает ANALYZE emails асинхронно после завершения SyncAllFolders (internal/store/postgres/storage.go)SaveEmail / SaveEmailToFolder / оба fallback: tsvector теперь обновляется при изменении subject (ранее проверялись только uid, snippet, body_path, folder_idПокрывающий индекс idx_emails_folder_read_sent (schema.sql, schema_mono.sql)(folder_id, is_read, is_muted, is_pinned DESC, date_sent DESC, id DESC) — устраняет этап сортировки для GetEmailsCursorBRIN-индекс idx_emails_date_brin (schema.sql)USING brin(date_sent) (schema.sql)ALTER TABLE emails SET (autovacuum_vacuum_insert_scale_factor = 0.05)Исправление частичного индекса body_path (schema.sql)WHERE body_path IS NOT NULL AND body_path != '' — пустая строка по умолчанию больше не ломает частичный индекс.email_comments FK-индекс (schema.sql, schema_mono.sql)idx_email_comments_email_account (email_id, account_id) — быстрый каскадный DELETE при удалении email.sender_profiles очистка индекса (schema.sql)idx_sender_profiles_updated_at (updated_at) — обеспечивает эффективную TTL-очистку устаревших кэшированных аватаров.internal/api/email_normalize.go: normalizeNode теперь генерирует -webkit-center / -moz-center наряду с text-align:center для all блочных контейнеров с align="center":div, p, h1–h6 — это всегда блочные контейнеры; text-align:center центрирует только строчный контент в режиме standards mode (<!DOCTYPE html>).td, th — почтовые клиенты иногда устанавливают display:block для ячеек таблицы для стилизации кнопок (border-radius + фон); без контекста table-cell text-align:center не центрирует дочерние блоки.nowrap → white-space:nowrap: устаревший атрибут HTML4 для <td> теперь преобразуется в CSS (ранее игнорировался без предупреждения).internal/api/email_normalize_test.go: новый TestNormalizeAlignCenterOnBlockContainers покрывает div, td (с display:block), nowrap, valign.<div align="center"> обертки или ячеек кнопок <td align="center" style="display:block"> (Fix Price, GPB, Neon Buddha, Glassdoor — все проверены на реальных .eml файлах).text-align:center (всегда валидно) → -webkit-center (переопределение WebKit/Blink) → -moz-center (переопределение Gecko). Каждый движок молча отбрасывает неизвестные значения; побеждает последнее валидное.