60-е годы OTK TTL для встречных окон, независимых чатов / электронных писем, которые не блокируются на бэкэнде
У OTK был 10-секундный TTL. К моменту появления страницы kamo-meet загрузил все свои активы, и брендинг /overrides.js проверил OTK, Он уже истек в Redis → 401 →...
Правильная блокировка имени дисплея через переопределение конфигурации + наблюдатель мутации DOM
Трехуровневый подход к обеспечению блокировки имени для аутентифицированных пользователей: 1. localStorage flag 'kamo-meet-authenticated' пережил перенаправлени...
Отправляйте приглашения в чат через существующий API сеанса чата, приглашения по электронной почте через несколько частей в EmailService
Чат-приглашения: создает/получает сеанс чата через POST/api/media/sessions/chat Затем направляет приглашение на заседание в качестве текстового сообщения на это...
Use getServerName() instead of getHeader(Host) for original host resolution
ForwardedHeaderFilter consumes X-Forwarded-Host and adapts getServerName() accordingly, while getHeader(Host) returns the raw HTTP Host which may be a K8s inter...
Заблокируйте имя дисплея через родное имя Meet Настройка имени для аутентифицированных пользователей
Sidecar config.js теперь устанавливает readOnlyName:true, когда у пользователя есть *** cookie или JWT в URL-адресе страницы (обнаружено с помощью заголовков ре...
Send chat invites to correct WebSocket topic /topic/chat/incoming/{memberId}
Was publishing to /topic/chat/member/{id} but kamo-internal subscribes to /topic/chat/incoming/{id}. Also fixed Member entity field access **************** inst...
Переместите все поля встреч (sendChatInvite, sendEmailInvite, customMessage, roomAlias, joinUrl) в backend
Маршрут API Next.js удалял sendChatInvite, sendEmailInvite, customMessage и roomAlias — только пересылающая комнатаName и inviteMemberIds. Бэкенд не получил фла...
Генерировать Prosody JWT из сессии OTK и перенаправить с ?jwt= для правильного модератора auth
Поток ОТК сейчас: 1. Проверяет OTK через коляску → получает сеанс (memberId, displayName и т. д.) 2.Сохраняет отображаемое имя в локальном хранилище 3. Звонки /...
Применяйте цвет org nav ко всей левой колонке перед встречей, а не только полосе панели инструментов
Целевой экран .premeeting (контейнер полной высоты) и его содержимое Дети-панели вместо генерируемых имен классов. Также включает в себя встречу ящик инструмент...
Переадресация IP-адреса посетителя и User-Agent для резервного копирования для точной регистрации активности учетной записи
Маршруты API Next.js не перенаправляли X-Forwarded-For, X-Real-IP или Заголовки User-Agent в бэкэнде Java, в результате чего активность учетной записи регистрир...
Use HTTP on port 80 for meet service URL to match other services
The HTTPS endpoint on 8443 causes SSL cert mismatch when routing through K8s internal DNS. All other services use HTTP on port 80.
Удалите ограничение maxWidth из вкладок настроек для заполнения области контента
Показать MeetingDialog для каждого участника встречи вместо обхода непосредственно
И MemberItem (Центр взаимодействия), и ChatBox (окно инструментов чата) открыть Диалог с заранее выбранным целевым членом, что позволяет пользователь, чтобы уст...
Маршрут соответствует конфигурации API через APIService вместо прямого MediaService
Существующий маршрут встречи/создания использует forwardToApi (APIService). Прокси для MediaService. Новые конфигурационные / фоновые маршруты должны следовать ...
Заблокировать ввод имени дисплея для аутентифицированных пользователей на экране предварительного подключения
Аутентифицированные участники (прибывающие через OTK) получают свое имя предварительно заполненным и заблокированный — вход настроен на readOnly с отключенными ...
Используйте относительные URL-адреса BOSH / WS в config.js, добавьте OTK auth с именем pre-fill, загрузите CSS для Nav цветов
Три фикса: 1. config.js BOSH URL изменился с кластерного внутреннего адреса на относительный /http-bind (nginx proxies to Prosody). WebSocket использует заголов...
Add dnsPolicy ClusterFirstWithHostNet to JVB StatefulSets so hostNetwork pods can resolve cluster DNS
Переместите новую кнопку Tab после Chat Now только в виде значка, удалите дубликат ссылки Notes
Новая вкладка теперь является кнопкой значка (без метки), расположенной справа от Chat Now. Заметки удалены из NavTop, так как он уже в NavPri.
Включить nginx SSI и скопировать отсутствующий HTML включают файлы (head.html, base.html, fonts.html, body.html, plugin.head.html)
Meet Meet использует nginx Server Side Includes для создания index.html Несколько частичных HTML файлов. Без SSI включен и включает файлы В настоящее время стра...
Используйте правильный URL-адрес MediaService (порт HTTPS 8443) для meet.service.url
Добавить явные аннотации @JsonProperty в поля видимости KbArticle AI
Убедитесь, что Джексон сериализует / десериализирует aiEnabled, aiVisibleToPublic, aiVisibleToMembers, aiVisibleToTeamMembers с правильными названиями полей.
Предотвратить бесконечный цикл повторного рендеринга в MeetingDialog, вызванный ссылками на репертуар по умолчанию
УпотреблениеEffect имело предварительно выбранных участников (по умолчанию для []) в качестве зависимости, создание нового массива на каждом рендере и запуск бе...
Сопоставьте цвет кнопки CHAT с иконой встречи с помощью CSS - цветовая первичная переменная
Замените устаревшие InputProps на слотProps для совместимости MUI 7 в MeetingDialog
Сделайте иконку Chat Now белой, синхронизируйте значок электронной почты со списком сообщений, используйте CSS color-mix для цветов тем
NavTop: изменит цвет ForumIcon на белый в соответствии с лейблом Chat Now - MessageBrowser / MailButton: координируйте обновление электронной почты WebSocket с ...
Reference *** instead of non-existent turn-secret in Prosody deployment
Добавить meet.service.url в K8s configmap для предотвращения сбоя APIService
Упростите использование Meeting для создания OTK и открывайте окно встреч напрямую
Конечных точек API пока не существует - пропустите запись встречи Создание на данный момент. Добавить обработку ошибок для всех обработчиков кликов, чтобы предо...
Настройте этап AppType.MEET для COMPLETED, чтобы он появился в FeaturesManager
Настройте ServiceType.MEET этап для COMPLETED, чтобы он появился в FeaturesManager
Удалить несуществующие favicon.svg и connection optimization из Dockerfile COPY
Добавьте MEET в карты значков / категорий FeaturesManager и защитите кнопку ChatBox Meet
Используйте систему сборки make и добавьте .dockerignore для сборки Meet Meet Docker
Meet Meet использует make/webpack, а не npm run build. Оригинальное название: Legacy-peer-deps для конфликтов зависимостей сверстников и .dockerignore для исклю...
Сделайте контрольные коробки видимости и Train AI переключите независимые элементы управления
Видимость (члены, члены команды, общественность) контролирует, кто может получить доступ к статье. В KB UI. Train AI - это отдельный инструмент для индексации R...
Сохраняйте вышестоящий X-Forwarded-Host вместо перезаписи с собственным Host
Когда восходящий прокси (Next.js) устанавливает X-Forwarded-Host для браузера Оригинальный хост, APIService теперь сохраняет его вместо перезаписи Собственный H...
Используйте внутренний URL K8 для маршрутизации API, чтобы исправить загрузку аватара для не-KamoCRM-оргов
Прокси-сервер API вычислял внешние URL-адреса (https://api.{domain}) для каждой организации. Решение было принято только для KamoCRM. Используется API SERVICE U...
Re-fetch notes after create/update to show decrypted content in preview
The backend returns encrypted content/contentPlain in POST/PUT responses, causing NoteCard previews to display ciphertext until page refresh. Now re-fetches via...
Disable all auto-link behaviors in KB editor to prevent paste-as-hyperlink bug
The linkExtension singleton from @lexkit/editor retains internal paste handler state across component remounts. Disabling autoLinkUrls, autoLinkText, and linkSe...
Prevent KB editor link extension state leaking between article creates
Move Lexical extensions from module-level singletons into a factory function called via useMemo per component mount, so each new article gets fresh extension in...
Как вы видите судоходство?
Каждое из этих обновлений автоматически попадает в ваше рабочее пространство. Начните бесплатно и смотрите, как он растет неделю за неделей.