Журнал изменений
Что нового.
Каждое усовершенствование платформы, как только она появится.
· AIService
Пропуск уровня затрат/видения провайдера + внутренняя конечная точка однофокусного видения
AiProviderController читает / перекликается с costTier + поддерживаетVision. Провайдер маршрутизация Сервисный выигрыш ВыберитеVisionProvider (orgId, tier). **************************** Бежит один выстрел Завершение видения с повторным использованием провайдера/адаптера организации (без сеанса/RAG/инструментов). Новый AiInternalConroller POST /api/ai/internal/vision (X-Internal-Auth, OTK-exempt) для абонентов услуг.
· MediaService
Автотег + подпись через провайдеров (P3)
МатериалAiController POST **************************** проверяет право собственности, mints короткоживущий подписанный URL-адрес материала и вызывает конечную точку внутреннего видения AIService собственные провайдеры, LIGHT tier) через AiVisionClient. Легкий разбор меток; незакрытый, если нет видения Провайдер настроен.
· kamo-shared-library
AiProvider ценовой уровень + флаг видения (две ортогональные оси)
Добавляет costTier (LIGHT/MEDIUM/HEAVY через новый AiProviderTier enum) и поддерживает Vision boolean для AiProvider, поэтому интеграция может определить, насколько дорогим является использование провайдера и какие из них поддерживают видение. Repo Finder для активных провайдеров. Колонки добавлены в AI PROVIDERS через ALTER.
· EmailService
Согласие «отображать внешние изображения» на стороне сервера
Заменяет клиенто-локальное (localStorage) запоминание выбора внешнего изображения с прочной записью на одного члена. Новый RemoteImageConsentService (fail-soft читает так) POST/api/email/remote-image-consent + POST/api/email/remote-image-consent Записать согласие. Полное сообщение DTO теперь содержит удаленные изображения Разрешено (смотрела на член + Message-ID), загруженный в односообщение, поток и общий почтовый ящик Выберите пути, чтобы клиент сеял свои ворота с сервера.
· kamo-shared-library
EmailRemoteImageConsent entity + репозиторий
Рекордная запись, которую участник выбрал для отображения внешних (удаленных) изображений для конкретного сообщения, закодированного Member id + нормализованный RFC Message-ID (уникальный). Следует шаблону email metadata (FilterRuleEntity). Назад. Предпочтение «отображать внешние изображения» на стороне сервера, поэтому выбор сохраняется устройства и сеансы. KamoInitializer создает таблицу для следующего запуска.
· InitializerService
Добавить колонку INVESTOR PRICE в rate locks + loan pricing snapshots
@Order(80) idempotent ADD COLUMN IF NOT EXISTS (DECIMAL(9,4), соответствующий цене-100) Сети) таким образом, MLOS RCE может регистрировать истинную цену исполнения инвестора, не являющуюся неполной. связывающий замок записи и его связанную цитату вместо попутного пропуска. аддитивный нулевой; Скриншоты RecordingTranscriptMigration.
· kamo-shared-library
Зафиксировать истинную непарную цену инвестора на RateLock + LoanPricingSnapshot
Обязательная скорость-замок-записи и ее связанная котировка несли только скорость + дни блокировки; Пункты дисконтирования/происхождения были оставлены недействительными, поэтому основные сущности читали PAR, в то время как Реальная цена **************** Цена-100 с кредитором Запеченная маржа) жила только на боковом регистре MLOS MlosLockRecord.lockedPrice. Добавить колонку INVESTOR PRICE (DECIMAL(9,4), соответствующую отгруженным сеткам цена-100) обеим организациям + их DTO + **************** Это Цена исполнения ИНВЕСТОР, намеренно не разлагаемая на точки заемщика (что вычитает маржу и нуждается в платной модели — разложение теперь приведет к искажению заемщика Ошибка раскрытия Reg-Z/ECOA. Баллы остаются недействительными до тех пор, пока не приземлится модель сбора; Необработанная цена теперь сохраняется на блокировке записи, а не только на боковой книге. Населенный RCE (MLOSCapitalMarketsService) от finalPrice; колонка материализована Компания KamoInitializer RateLockInvestorPriceMigration (ADD COLUMN IF NOT EXISTS).
· kamo-internal
Пусть администраторы подключают RingCentral от имени участника
На настройках телефона другого участника администратор с правами управления VoIP (canManageVoipConfig) теперь видит Connect/Reconnect/Disconnect Учетная запись RingCentral вместо «только для чтения» «они должны подключать ее сами» сообщение — для обычного случая, когда сисадмин держит RingCentral члена Удостоверения. Копия соединения дает понять, что вы входите в систему с этим членом учетные данные, и целевой членID передается (сервер обеспечивает соблюдение права).
· VOIPService
Разрешить администраторам подключать RingCentral от имени участника
Поток RingCentral на одного участника был только для самообслуживания, поэтому администратор управлял В профиле другого участника было написано: «Они должны соединить его сами». Сысадмины обычно создают учетную запись участника RingCentral и хранят свои учетные данные, поэтому Они должны быть в состоянии связаться от имени члена. - OAuthController Member Start/status/disconnect теперь принимает необязательную цель член. Действия другого участника требуют MANAGE EXTENSIONS или MANAGE VOIP SETTINGS (зеркала для редактирования профиля); всегда разрешается самостоятельно. - запуск также проверяет, действительно ли целевому члену назначен этот экземпляр ( Пример орг-скопирован, поэтому это подтверждает тот же орг. Тот, кто завершает вход в RingCentral, по-прежнему определяет личность; Связанные с назначенным расширением флаги охраны несоответствия.
· kamo-internal
Аналитика использования + вид Insights (P2)
Записи **************************** события и диалог Insights с итоговыми показателями организации + наиболее часто используемые материалы (по загрузкам + превью).
· MediaService
MaterialAnalyticsController — запись событий + агрегаты
POST **************** (запись) + GET/analytics (запись по материалам) Совокупность типов + орг.
· kamo-shared-library
MaterialEvent entity+repo (аналитика использования)
Добавить события использования ********************************************************************************** Совокупный запрос. Table MATERIAL EVENTS (целевой CRDB DDL; KI auto-scans).
· kamo-internal
Утверждение рабочего процесса UI + загрузочная фильтрация (P2)
Контроль статуса в ящике **************** значок статуса на плитке, и Фильтр состояния в панели инструментов. Также загружает все материальные страницы вверх (закрытые), поэтому поиск / тег / Фильтры кампании/статуса охватывают всю библиотеку, а не только первую страницу.
· MediaService
MaterialReviewController — карта состояния + статус
GET /api/media/materials/reviews (общая карта imgId→status) + POST для определения статуса материала (подтверждено, рецензент-штамп, upsert).
· kamo-shared-library
MaterialReview entity+repo (сторонняя таблица статуса утверждения)
DRAFT/PENDING/APPROVED/ARCHIVED per material, keyed by imgId (imaging schema unuched). Столик MATERIAL REVIEWS (целевой CRDB DDL; автосканирование KI).
· kamo-internal
RingCentral connect + softphone web-phone v2 fixes
Ремонт SDK для софтфона (кольцевой веб-телефон v2.4.0, а не адаптер v0.x) Целенаправленное — старый wp.userAgent.* использование бросил на init: Перезапись RingCentralPhoneSdk для API v2: один объект sipInfo start()/call()/dispose(), inboundCall/outboundCall events электропроводка, синтезированная немая / удержание / измененная / неизмененная и принятие SDK Аудио элемент по вызову как #rc-remote-audio, так что AV том / устройство маршрутизации работает. - PhoneSdk.SipInfo: добавьте исходящие ProxyBackup + stunServers. - UseSoftphone: очистить застрявший баннер входящего вызова на удаленном похмелье во время кольцо; не срывайте SDK в середине вызова на обновлении учетных данных; остерегайтесь Автоответ + двойное принятие вызова. Для каждого участника RingCentral: - PhoneSettingsTab: самообслуживаемая карта «Connect RingCentral» на собственной карте участника профиль (администраторы получают статус только для чтения), перенаправление OAuth и Предупреждение о несоответствии. - voipApi: член OAuth start/status/disconnect. - useSoftphone + SoftphonePanel: needMemberConnection gating with "Connect Ваша учетная запись RingCentral" запрашивает вместо регистрационной ошибки".
· VOIPService
Идентификация RingCentral OAuth + исправления SIP для софтфона
Верительные данные Softphone SIP: - getSipCredentials: map outboundProxyBackup + stunServers (web-phone v2 needs) для WSS отказоустойчивости + ICE/media; бросьте ProviderException (502) вместо голый RuntimeException (500), который улов SipController пропустил; Неправильное расширение SIP. Для каждого участника RingCentral: - RingCentralTokenResolver: разрешить / обновить собственный токен участника однополетный (RC вращает токены обновления), соединение потребностей на мертвом токене, и аннулировать отключение. - OAuthController: **************** — член Id от сессии только (самообслуживание), область VoipCalling, PKCE; подключите записи обратного вызова подключенное расширение. - SipController + PhoneProviderFactory: софтфон регистрируется в качестве участника Собственное расширение; возвращает дискриминатор 200 needMemberConnection при отключении. - MemberVoipConfigController: разоблачение статуса подключения; отмена переназначения. - Новый стол читается изящно, если член voip oauth token еще не мигрировал.
· kamo-shared-library
Добавить MemberVoipOAuthToken для каждого участника RingCentral
Per-member OAuth token keyed (memberId, provider, exampleId) RingCentral Operations — softphone sip-provision plus the Личный журнал звонков / голосовая почта / присутствие. Отличие от The Org/instance OrgOAuthToken (сопровождаемый счетом). Требуется запуск KamoInitializer для создавать ****************************
· kamo-internal
Коллекции/кампании UI (P2)
Раздел Left-nav Collections (создать/выбрать/удалить), фильтр кампании по просмотру коллекции, и редактор коллекций в ящике деталей (добавить/удалить материал, создать-и-добавить). проводной через /api/materials/campaigns/* + materialsCampaignsApi; рабочее пространство присоединяется к карте объекта Клиентская сторона, как теги.
· MediaService
MaterialCampaignController — CRUD + карта элементов + добавить / удалить
/api/media/materials/campaigns: list/create/update/delete, GET/items (orgwide imgId→campaignId) Карта), POST/add+/remove with org-ownership checks.
· kamo-shared-library
MaterialCampaign + объекты / РЕПО (коллекции)
Первоклассные коллекции группируют материалы по папкам. Таблицы MATERIAL CAMPAIGNS + MATERIAL CAMPAIGN ITEMS (целевой CRDB DDL; автосканирование KI на следующем этапе).
· kamo-internal
Теги UI + контроль уровня доступа (P2)
Tags (org-scoped, cross-cutting): чипы тегов на плитках, полоса фильтра тегов (и поперек выбранной), и редактор тегов в ящике деталей (назначение / удаление существующего, создание и назначение нового). проводной через /api/materials/tags/* proxies + materialsTagsApi. Добавлена видимость (уровень доступа) управление к ящику с использованием существующей конечной точки уровня доступа.
· MediaService
MaterialTagController - тег CRUD + присваивание / неназначение + карта назначения
/api/media/materials/tags: list/create/delete tags, GET/assignments (orgwide imgId→tagId) Карта рабочего пространства соединяется с клиентской стороной), POST /assign + /unassign с проверками владения организацией.
· kamo-shared-library
MaterialTag + объекты назначения / repos (марки в орг-скапеде)
Плоская, сквозная ось тегов над папками для маркетинговых материалов. Таблицы MATERIAL TAGS и MATERIAL TAG ASSIGNMENTS (создается с помощью целевого CRDB DDL; автосканирование KI в следующем запуске).
· kamo-internal
Управляемые публичные ссылки UI (P1) — создание / истечение / отзыв / просмотр
Детальный ящик получает панель «Общественные ссылки» (ShareLinkManager): создайте прочную связь с необязательный ярлык и срок годности (1h/1d/7d/30d/never), скопируйте его, посмотрите на его количество просмотров и отмените его. При поддержке новых конечных точек реестра MediaService через прокси /api/materials/links. The Однократная копия ссылки остается для быстрого обмена социальными / электронными сообщениями.
· MediaService
Управляемые конечные точки публичных ссылок (создание/список/отзыв) + отслеживаемая служба
Добавляет POST/GET/api/media/materials/links и DELETE/links/{id} при поддержке MaterialShareLink, и разрешает управляемые токены на публичном GET сначала (проверка отменена / истекает и ударяется) Просмотр счета) перед возвращением к унаследованному верификатору HMAC. Случайные непрозрачные токены, орг-скопированные Проверка прав собственности, TTL зажимается до <=1y.
· kamo-shared-library
Реестр MaterialShareLink + repo (управляемые / отслеживаемые публичные ссылки)
Отзывные, истекающие, просмотренные публичные ссылки для маркетинговых материалов — сохраняется Таким образом, ссылки могут быть перечислены, отменены и подсчитаны (по сравнению с токенами HMAC без состояния). Автоматическое сканирование KI (@EntityScan com.kamo) и MediaService; для создания Стол MATERIAL SHARE LINKS.
· kamo-internal
Добавить контекстное меню right-click / long-press в строки просмотра разговора
Заполняет меню действий списка в обоих режимах просмотра. Разговорные ряды теперь открыты одинаковое общее меню на правый клик и касание длинного нажатия с действиями уровня потока: Reply / Reply All / Forward (работает над последним сообщением в потоке) требование и составленный из активного почтового ящика, Отчет Спам / Не Спам и Удалить (Наносится по всей нити), Марк читает, и Звезда / Unstar.
· kamo-shared-library
DecisionGate.applied Threshold разоблачает фактическую панель доверия
Ворота внутри применяются max (предохранительный, безопасный пол, сценический пол), но У абонентов была только стена предварительного входа. применяемый Порог возвращает истинное бар, так что решение о записи может сохранять пороговое значение-IN-EFFECT Воспроизводимое) вместо ценности ворота молча поднимают. Аддитивность; оценка() без изменений. Решение Тест 14/14.
· kamo-internal
Рабочее пространство Enterprise Materials (P0) — папки, поиск, объем, реальный предварительный просмотр, общая электронная почта композитора
Заменяет плоскую 200-элементную сетку полным рабочим пространством документа на существующую визуализацию. бэкэнд (который уже поддерживает папки, мусор, обмен, историю, объем для MATERIALS): - Откладка боковой панели (создание/переименование/удаление, перетаскивание в папку) + Все / Виды мусора - Search, sort, grid<->list toggle, paginated 'load more' (снимает 200 cap) - Bulk select + bulk download (ZIP) / email / move / delete - Правосторонний ящик деталей: реальный предварительный просмотр, встроенное переименование + описание, перемещение в папку, внутренний обмен (член, разрешение на редактирование, истечение срока действия) и история деятельности Электронная почта теперь повторно использует общий композитор MessageTool через глобальный инструмент: открытое мероприятие (От/почтовый ящик, CC/BCC, богатое тело, подписи, черновики) вместо заказной формы - Новые прокси-маршруты визуализации: создание папки/[id]name+delete/move-doc, rename, описание, восстановление, уровень доступа - Удалить замененную библиотеку материалов; все функции Canva (создать/импортировать/автопилить/ Расписание выполнено. Имгиды обрабатываются как точные струны во всем.

Ваша вселенная ждет.
Начните бесплатно через несколько минут. Добавляйте продукты, когда будете готовы — без миграции, без новых логинов.
Бесплатно навсегда — не требуется кредитная карта