Миграция оставшегося гексчата: открытая отправка на инструмент:фокус в HexHeadGroup
Chat UI polish - основная цветовая тематика, эмодзи внутри ввода, круглая отправка btn, цвета статуса hex
- Закладки отдела и использование заголовка чата - цвет первичный вместо жестко закодированного зеленого - Кнопка выбора эмодзи перемещается в поле ввода чата в...
Улучшения системы чата - редактирование спина, вращение гекс-маски, цвета, максимизация
- Обнаружить редактирование (backspace/delete) против ввода ввода для запуска обратного вращения HexHead - Вращайте гекс-зажимную маску вместе с границей во вре...
Не аннулируйте сеанс ***, когда он соответствует новому сеансу OTK
Маршрут проверки исключил существующую сессию *** из Redis. Прежде чем смотреть ОТК. Когда ОТК указала на тот же сеанс, Поиск будет неудачным с «Сессия не найде...
Принять *** из парам запроса для кросс-поддомен WebSocket auth
Прочитайте *** ID от ?***= параметр запроса сначала, возвращаясь к печенье. Это позволяет аутентифицировать интерфейс на internal.kamocrm.com. Подключение WebSo...
Пропуск *** ID как парам запроса для кросс-поддомена WebSocket auth
Вместо того, чтобы полагаться на кросс-доменные файлы cookie (которые не работают поперечно) subdomains), читать *** cookie-клиента и передавать его в качестве ...
Установите *** домен cookie на .kamocrm.com для совместного использования кросс-субдомена
Куки был установлен без явного домена, предотвращая его отправку media.kamocrm.com для аутентификации WebSocket.
Установите *** домен cookie на .kamocrm.com для совместного использования кросс-субдомена
*** cookie был установлен без явного домена, по умолчанию Внутренний.kamocrm.com. Это предотвращает отправку печенья на media.kamocrm.com во время рукопожатия с...
Управляйте устаревшими NATS-потребителями, связывая их с уникальными потребительскими повторами
- Извлечь обработчик сообщений в метод createNatsMessageHandler() Добавьте логику повторного использования с уникальным именем пользователя, когда «потребитель ...
Решите проблемы обмена сообщениями в чате, отслеживания присутствия и автоматического открытия
Исправить сообщения, не полученные путем повторного использования подписки NATS с уникальными Имя пользователя, когда ошибка «потребитель уже связан» Исправить ...
Решите ошибку типа MUI и поделитесь одним соединением STOMP WebSocket
- Добавить tsconfig Paths override для @mui/icons-material, чтобы обойти сломанный ESM v7.3.1, что указывает на отсутствие ./esm/index.d.ts Создайте ChatWebSock...
Используйте ref для членства PanelOpen в openChat, чтобы предотвратить засорение
Когда пользователь открывает панель участника, нажимает на участник для чата, а затем закрывает панель перед возвращением вызова API сеанса асинхронизации, окно...
Remove forced WebSocket headers from media middleware
Traefik v3 handles WebSocket Upgrade/Connection headers natively. Remove forced headers that broke non-WebSocket API requests.
Трафик Route MediaService через порт 443
- Добавить MEDIASERVICE URL env var для доступа к кластерным внутренним услугам Исправьте getMediaServiceBaseUrl в 9 API-маршрутах для использования env var - К...
Маршрут WebSocket через порт 443
- service.yaml: исправить порт 80→8443, чтобы соответствовать фактическому порту прослушивания - ingressroute.yaml: используйте схему https + порт 8443 для бэкэ...
Сделайте коммерческие бобы условными при наличии хранилища
Добавить ********************** жизненный цикл и CommerceService, поэтому они загружаются только тогда, когда коммерческие репозитории Сканировал. Предотвращени...
Add system account to all NATS configs
Add $SYS account with admin credentials to k0m1, k1m1, and k2m1 NATS configs. Enables nats CLI cluster management operations (peer removal, step-down, etc.) for...
Используйте кластерный внутренний DNS для подключения NATS
Измените URL NATS по умолчанию с IP-адресов WireGuard (100.64.x.x) на nats.kamo.svc.cluster.local для локального сервера. Удаленные узлы (k0m1, k2m1) остаются н...
Разрешить запуск приложения, когда NATS недоступен
Удалите @ConditionalOnBean из jetStream() и добавьте @Nullable в Параметр соединения. Когда NatsConnection() возвращает нуль (NATS) Недостижимая), Весна больше ...
Переупорядочение карточек для сопоставления с заказом вкладки
Коммуникации → Документы → Открытые задачи → История
Удалить layout.tsx, исправить ошибки типа docCount/historyCount
Удалить макет.tsx, который был добавлен неправильно (затронет весь сайт) - Revert page.tsx wrapper div (не требуется) - Переместить градиентный фон обратно в ко...
Срок действия cookie-файлов (401) и расширение TTL, определяемое сервером
Обновление имен поставщиков PipelineOrdersTab для соответствия бэкэнд-DTO
Изменены v.uid → v.id, v.name → v.companyName и выбран тип VendorId от номера до строки для согласования с CommerceMarketVendor DTO.
Типы сценариев Align TypeScript с backend DTO для торговых рынков
CommerceMarket, CommerceMarketVendor и VendorCategory TypeScript интерфейсы используют неправильные имена полей (uid/name vs. id/title, name vs. companyName, we...
Трубопроводные рынки не загружаются, а менеджер рынка раскладывает интервалы
Трубопровод демонстрировал отсутствие конфигурирования торговых рынков, потому что getPOSConfig() Рынок так и не вернулся. Сейчас завоевывает рынки у коммерцииM...
Решите «u.map не является функцией» в настройках POS и обновите Commerce nav
- Добавить извлечение защитного массива в commerceMarketApi (getMarkets, getVendorCategories, getMarketVendors, seedVendorCategories) для обработки завернутых о...
Разрешить конфликт слизняков с динамическим маршрутом Next.js («id» vs «market») Ид'
Объедините каталог [marketId] в [id] для маршрутов API торговых рынков. Next.js требует, чтобы все динамические сегменты на одном уровне пути использовали Одно ...
Устранение ошибок TypeScript во вкладках конвейера предприятия
- Сделайте параметр столбцов ToCSV необязательным с автопроизводством от ключей объекта - Исправить загрузкуBlob Call в ProcurementTab (неправильный подсчет, от...
Пропускайте рыночные реквизиты для панели инструментов, взаимодействия и компонентов быстрых действий
Remove duplicate session timeout fields from session types
Aligns with SecurityService change that removes createdAt/expiresIn from Redis session records and tokenExpiration from session info responses. - user-info/rou...
Remove duplicate session timeout system from Redis records
Session expiry is now managed solely by the Redis key TTL. The internal createdAt/expiresIn fields stored inside the Redis value have been removed — they formed...
Update internal layout and styles
- Make main wrapper background transparent so home page fixed background is not covered - Include latest adjustments to automation, security access, and account...
Handle optional effectiveDate and processedAt in DateTimeDisplay
Type error: string | undefined not assignable to string | number | Date. Add null checks before passing to DateTimeDisplay, show em-dash when absent.
Align Commerce submenu with actual Commerce page tabs
- Rename Domain Configuration to Engagement Types - Add Rental Assets, Vendors, Subscription Plans - Update tab param to engagement-types for consistency - Labe...
Advanced datagrids fill 100% of content area
- SettingsView: tab content wrapper overflow hidden, motion.div flex chain so tab content gets bounded height and grids can expand. - PipelineRentalAssetsTab:...
Resilient probes so cluster stays up when one node is offline
- Liveness: tcpSocket on 4222 (do not depend on JetStream meta leader) - Readiness: initialDelay 90s, period 15s, failureThreshold 10 so k0m1+k1m1 can form qu...
Как вы видите судоходство?
Каждое из этих обновлений автоматически попадает в ваше рабочее пространство. Начните бесплатно и смотрите, как он растет неделю за неделей.