Патч 4.2.3 (31.10.2026)¶
Новые возможности¶
- Реализован механизм RAG (Retrieval-Augmented Generation) для интеллектуального поиска информации в базе знаний системы с использованием ИИ-модели.
- Для объектов системы со скриптами добавлена поддержка выгрузки скриптов в файловую систему и возможность отладки их при подключении выгруженных скриптов к расширениям. Подробнее см. в руководстве разработчика.
Добавление и изменение функциональности¶
- В синхронизации AD/LDAP доработана логика, которая определяет руководителя подразделения. Также для плагина синхронизации добавлен новый флаг-параметр
AdSync.UseManagedBy, при включении которого руководитель будет определяться по атрибутуmanagedBy. Подробнее см. в разделе Алгоритм синхронизации в руководстве администратора. - Ключ с активностью сессий в Redis теперь является хеш-таблицей
HSETи размещается по пути{serverCode}:sessions. Ранее активность каждой сессии определялась отдельным ключом, который содержал идентификатор сессии. Ключи Redis с их подробным описанием перечислены в руководстве разработчика. - В конфигурационный файл
config.yamlмикросервисаartiдобавлен параметр-объектkwargsдля более детальной настройки модели с помощью дополнительных конфигурационных параметров, которые поддерживает эта модель. Вложенные поля параметраkwargsбудут встроены в тело запроса и отправлены в виде JSON-объекта к ИИ модели по протоколу OpenAI. - В web-клиенте для виджета “ИИ ассистент” добавлена иконка в заголовок и обновлены иконки контекстных действий в тулбаре карточки и меню файлов.
- Добавлены плагины Chronos
AiRagRequestsProcessingPlugin(обработка запросов на индексацию) иAiRagRequestsCleanupPlugin(очистка устаревших запросов на индексацию), которые используются в механизме RAG. Подробнее о настройке плагинов см. раздел Список плагинов. - Добавлен плагин ИИ-агента
RagSearchAiAgentPlugin, предоставляющий инструментrag_searchдля интеллектуального поиска релевантной информации, фактов, данных или ответов на вопрос пользователя внутри загруженных в систему документов, файлов, данных и другого содержимого. Инструмент анализирует контекст данных и генерирует ответ со ссылками на первоисточники. - В web-клиенте добавлен маршрут
/rag, по которому открывается страница мониторинга RAG. - В web-клиенте для диалога ИИ ассистента добавлена возможность выбирать файлы из карточки по двойному клику. Файлы карточки, добавленные при вызове через контекстное меню, нельзя добавить повторно.
- Для центра файлов добавлена интеграция с RAG (Retrieval-Augmented Generation) для интеллектуального поиска по файлам с использованием ИИ-модели.
- В центре файлов добавлена вкладка “Умный поиск” для папок, использующих функциональность умного поиска.
- При логине из TESSA Mobile Client тип устройства в сессии теперь указан как “Мобильный клиент”, что выводится в записи истории действий, в представлении “Активные сессии”, а также в коде на сервере через свойство
ISessionToken.DeviceType. - В web-клиенте добавлен кэш для редактора форм.
- В синхронизации AD/LDAP в таблице настроек корневых элементов синхронизации добавлен новый параметр “Фильтр пользователей”, с помощью которого можно указать LDAP-фильтр пользователей. Подробнее см. в разделах Автоматическая синхронизация и Алгоритм синхронизации в руководстве администратора.
- В настройках центра файлов добавлена возможность указывать хранилище файлов.
- В настройки модуля ИИ добавлен новый раздел Умный поиск (RAG), позволяющий задавать основные параметры и настраивать карточные коллекции механизма RAG.
- В веб-сервис
jinniдля операций распознавания текста и извлечения текста из файла можно передать имя обработчика и режим обработки; при их отсутствии используются значения по умолчанию из конфигурации веб-сервиса. - В настройках “Модуль ИИ” добавлена настройка “Метод OCR” - обработчик распознавания текста, который используется при извлечении текста из изображений. Для отдельной коллекции RAG обработчик задаётся полем
OcrMethodчерез серверное API; если он не задан, используется обработчик из настроек модуля ИИ, а при его отсутствии - обработчик по умолчанию из настроек веб-сервисаjinni. - Для конструктора процессов в web-клиенте добавлена функциональность поиска и замены значений по всему шаблону бизнес-процесса.
- Добавлено представление “Отложенные операции”, доступное в папке “Служебные” рабочего места “Администратор”. Оно позволяет просматривать операции, которые были отложены. Такие операции более не выводятся в представлении “Активные операции”.
- Из представления “Активные операции” удалены колонка и параметр “Отложено до”, а также удалён параметр “Состояние”. Для отображения отложенных операций воспользуйтесь представлением “Отложенные операции”.
- Добавлен плагин-расширение Chronos
ActivatePostponedOperationsPlugin, который активирует отложенные операции, переводя их из состоянияPostponedвCreated(включая добавление в очередь операций в Redis). Плагин включён в группу запуска"Normal", что по умолчанию соответствует запуску каждые 15 минут (настраивается в конфигурационном файлеapp-plugins.json). - В центре файлов название папок теперь должно быть уникальным среди папок одного уровня вложенности.
- В web-клиенте обновлено визуальное оформление сообщений ИИ-ассистента.
- В web-клиенте для виджета “ИИ-ассистент” добавлена настройка отключения отступов.
- В web-клиенте в дизайнер форм добавлен контрол “Редактор кода” с подсветкой синтаксиса, нумерацией строк, переносом строк и настройкой минимального и максимального количества отображаемых строк.
- Для плагинов ИИ агента добавлена поддержка отложенного получения результата, которая позволяет запускать длительную операцию в фоновом режиме и получать результат по готовности.
- В плагинах ИИ‑агента реализована возможность сохранения промежуточных данных в контексте агента
AiContext.Info. Для установки и чтения данных используйте объектAiResponse.ContextInfo. - В web-клиенте для нового контрола грида добавлена настройка “Всегда выделять первую строку”.
- Обновлена поддержка запуска desktop-приложений в среде эмуляции Wine. Поддерживается только запуск 64-битных версий для приложений TessaAdmin и TessaAppManager. В качестве рекомендуемого дистрибутива теперь указан “Альт Рабочая станция 11.2”. Инструкция по настройке и запуску доступна в разделе документации Запуск desktop-приложений TESSA на Linux с использованием Wine.
- Добавлен плагин ИИ-агента
TextRecognitionAiAgentPlugin, предоставляющий инструментtext_recognitionдля распознавания текста в приложенном файле и формированияpdf-файла с текстовым слоем. Подробнее см. Распознавание текста. - Плагин
AclGenerationPluginтеперь выполняет запуск программных правил расчёта ACL при их включении, отключении, изменении версии или удалении из кода. - В конструкторе бизнес-процессов для узла добавлена возможность удалить его с объединением входящей и исходящей связи. Подробнее в разделе Действия над узлами.
- В конструктор процессов в настройки связей добавлена настройка “Порядок”, которая определяет порядок обработки связей при обработке сигнала.
- В контроле файлов теперь отключена возможность добавления файлов напрямую в категорию, если доступ на добавление файлов в указанную категорию был полностью запрещён, например, правилами доступа.
- Добавлен скрипт
Fixes/SelectCardFileSources.**.sql, который позволяет определить идентификаторы файловых хранилищ, на которых размещаются файлы для карточки с указанным идентификатором. Версию скрипта “ms” или “pg” выбирайте в соответствии с используемой СУБД. Пример использования скрипта доступен в руководстве администратора для администрирования Центра файлов. - Плагин ИИ-агента
ContractCheckListAiAgentPlugin, предоставляющий инструментcontract_check_list, переименован вCheckListAiAgentPlugin, а его инструмент наcheck_list. Теперь инструмент позволяет выполнять проверку не только договоров, но и произвольных документов, тип которых указан в настройках инструмента. Подробнее см. Проверка документа по чек-листу. - Оптимизирована работа с объектами, передающими информацию о списке карточек, для которых выполняется перерасчёт ACL.
- Актуализирована документация по веб-сервису Jinni: описаны недостающие параметры конфигурации, уточнены установка в Windows и Docker, переопределение параметров аргументами командной строки и область действия обработчика распознавания текста по умолчанию.
- Добавлена статья базы знаний Пример разработки обработчика распознавания текста для веб-сервиса Jinni.
- Удалён справочник нормализации
KrTypes. Справочник нормализацииTypesтеперь содержит информацию для нормализации типов карточек/документов, зарегистрированных для типового решения. Во всех местах, где использовался справочникKrTypes, теперь должен использоваться справочникTypes. - В веб-сервисе
artiреализованы новые режимы разбиения текста на фрагменты: рекурсивное разбиение по токенам и разбиение с учётом Markdown‑структуры. Названия всех режимов приведены к единому стилю и описаны в руководстве веб-сервисаarti. - Добавлена поддержка модуля лицензии “ИИ спец. редакция”, которая включает стандартную функциональность модуля “ИИ” за исключением создания новых программных инструментов. Функциональность модуля лицензии “ИИ” по-прежнему не ограничена.
- В чате ИИ-ассистента добавлена поддержка альтернативного способа открытия ссылок - с зажатой клавишей Ctrl. Это позволяет открывать ссылки в диалоговом окне, если это возможно.
- При запуске вторичного процесса “Отменить процесс” теперь удаляется процесс согласования.
- При запуске вторичного процесса “Отозвать процесс” теперь происходит отзыв процесса согласования, благодаря чему после отзыва завершённого процесса согласования его можно повторно запустить через схему согласования.
- Добавлен пункт в настройки безопасности - “Время неактивности, по истечении которого сессия закрывается для TESSA Mobile Client, часы”. Подробнее см. в разделе руководства Настройки безопасности.
- В центре файлов для администраторов центра файлов добавлена возможность администрировать домашние папки пользователей, указывая отдельные квоты на максимальный размер папки или очищать содержимое папки вместе с корзиной.
- В центре файлов в корзину добавлена кнопка для очистки корзины.
- В центре файлов для администраторов центра файлов добавлена возможность указывать квоты на максимальный размер папки для общих папок.
- В центре файлов для общих папок добавлена возможность указывать администраторов папки. Администраторы имеют возможность редактировать список сотрудников, для которых доступна папка.
- В центре файлов для общих папок можно указывать отдельные роли (например, подразделения), для которых доступна папка.
- В центре файлов для корзины добавлен вывод размера, занимаемым удалённым объектом.
Консольная утилита tadmin¶
- Добавлена команда RecalcTokensSignature для повторного вычисления подписи токенов доступа после изменения ключа подписи
SignatureKey. Команда автоматически вызывается в скриптахUpgrade.bat/upgrade.sh, поскольку в этих скриптах изменяется ключ подписиSignatureKey. - Добавлена команда FileVaultUpload для програмного заполнения центра файлов файлами и папками.
- Для команды MigrateFiles добавлен параметр
-id, через который можно указать один или несколько идентификаторов карточек, из которых необходимо мигрировать файлы (в дополнение к фильтру по исходному местоположению файлов). Если идентификаторы карточек не указаны, то миграция обработает все карточки.
Новые версии библиотек¶
.NET 10.0.14CAdESLib 1.7.2.1DynamicExpresso.Core 2.19.6HtmlAgilityPack 1.13.1HtmlSanitizer 9.2.1039iTextSharp.LGPLv2.Core 3.8.7ITfoxtec.Identity.Saml2.MvcCore 4.21.0Kerberos.NET 4.6.168linq2db 6.5.1MailKit 4.18.2Microsoft.CodeAnalysis.CSharp 5.9.0Microsoft.Data.SqlClient 7.1.1Microsoft.IdentityModel.Protocols.OpenIdConnect 8.23.0Microsoft.NET.Test.Sdk 18.11.0Moq 4.21.0NetOfficeFw.Word 1.9.12NLog 6.2.2NLog.Targets.AtomicFile 6.2.2NLog.Web.AspNetCore 6.2.2NUnit 5.0.0OpenTelemetry 1.20.1PDFsharp-wpf 6.5.0PDFtoImage 5.4.0Quartz 4.6.2SharpCompress 0.50.7SkiaSharp 4.154.0SkiaSharp.QrCode 1.2.0StackExchange.Redis 3.4.20Swashbuckle.AspNetCore 10.3.1Swashbuckle.AspNetCore.Newtonsoft 10.3.1ZXing.Net.Bindings.OpenCV.V4 0.16.13
Изменения API¶
- В микросервисе
artiдобавлена возможность передавать размер вектора для embedding-модели в маршрут для вычисления векторного представления текста или массива текстовых фрагментов. Подробнее см. Arti REST API. - В микросервисе
artiизменён формат ответа в маршруте для вычисления векторного представления текста или массива текстовых фрагментов. Вместо коллекционного поляchunksиспользуется строковое полеchunkвнутри каждого элемента коллекцииdata. Подробнее см. Arti REST API. - В web-клиенте для
TreeViewModelдобавлено свойствоnodeCaptionWrap, включающее перенос текста в подписях узлов. - В запрос загрузки карточки
CardGetRequestдобавлено свойствоExtendedTypeCheck, при установке которого система проверяет тип карточки не только по таблицеInstances, но и с использованием других зарегистрированных в системе стратегий определения типа карточкиICardGetTypeStrategy. Свойство стоит использовать только в случаях, когда тип карточки неизвестен и не может быть определён при формировании запроса. - В чате ИИ ассистента добавлена возможность генерации и открытия Markdown-ссылок для предпросмотра файла. Для генерации используйте
IMdLinkProvider.GetPreviewLinkв серверном API. - Добавлен контроллер
api/v1/ai/rag, который используется для взаимодействия с механизмом RAG в web-клиенте. - Добавлен метод
Card.TryGetTypeID(), аналогичный свойствуTypeID, но возвращающийnullдля невалидного объекта карточки, у которого свойствоTypeIDне было присвоено. Используйте метод для получения типа из результатов запросовResponse.Card.TryGetTypeID(), где в результате валидацииResponse.ValidationResultесть ошибки. В этом случае не гарантируется, что вResponse.Cardбудет располагаться валидная карточка, из-за чего обращение к свойствуTypeIDможет привести к исключению. - В методы
IAiFileProcessor.ExtractTextAsyncиIAiRagDocumentProvider.GetDocumentTextAsyncдобавлен необязательный параметрocrMethodс именем обработчика распознавания текста. Из параметров операции распознавания текстаOcrParametersудалено свойствоLLMParameters: модель, промпт и дополнительные параметры обработчика задаются в его подгруппе в конфигурационном файле веб-сервисаjinni. - В web-клиенте изменено поведение объектов сессии: теперь, если
AccessTokenдоступен только из cookie браузера, в объектах сессии для этого токена будет лежатьnullвместо строки-плейсхолдера. - В веб-сервисе
artiдобавлена поддержка механизма вызова инструментов (Function Calling). - В веб-сервисе
webдобавлен объектAiToolFunction, который позволяет описать объект-функцию для механизма вызова инструментов. Добавлена новая рольtoolsдля формирования сообщений с результатами вызова функций в механизме вызова инструментов. - Добавлен базовый класс плагинов
AiAgentPluginBase, который содержит базовую реализацию методов. Обновлён пример документации Пример ИИ инструмента для составления резюме по протоколу совещания. - Для обработки коллекций используется RAG-плагин в виде объекта
IAiRagPlugin. Он предоставляет провайдеры для работы с коллекциейIAiRagCollectionProvider, документамиIAiRagDocumentProvider, ссылкамиIAiRagLinkProvider, правамиIAiRagPermissionsProviderи поискомIAiRagSearchProviderв механизме RAG. В платформе реализованы: плагин для карточных коллекцийAiRagCardPlugin, плагин для коллекций в центре файловFileVaultAiRagPluginи плагин по умолчаниюAiRagDefaultPlugin, который использует провайдеры по умолчанию. - В веб-сервисе
artiпереработан файл конфигурации. Группа для моделейmodelsпереименована вtextGenerationModels, группаembeddingModelпереименована вdenseEmbeddingModelsи теперь поддерживает множество моделей, добавлена группаrerankModelsдля моделей переранжирования, некоторые отдельные поля переименованы для большей ясности. Подробнее о полях конфигурации см. в разделе Конфигурационный файл веб-сервисаarti. - В веб-сервисе
artiдля маршрутаGET /v1/modelsдобавлен обязательный query-параметрtypeдля указания типа запрашиваемых моделей. Подробнее о его значениях см. в разделе Описание REST API веб-сервисаarti. - В веб-сервисе
artiдобавлен маршрутPOST /v1/rerank, который позволяет выполнить переранжирование текстового содержимого документов в соответствии с их релевантностью запросу пользователя. Для обращения по этому маршруту используйтеIArtiService.RerankAsync. Подробнее о новом маршруте см. в разделе Описание REST API веб-сервисаarti. - Интерфейсы и атрибуты для реализации сторонних обработчиков распознавания текста перенесены из проекта
Jinniв библиотекуTessa. Для реализации собственного обработчика теперь достаточно ссылки на библиотекуTessa. - Добавлен класс
AclGenerationRuleRolesSqlReader, который может использоваться для создания объекта для чтения ролей карточек через SQL запрос при расчёте ACL. - Для сохранения карточки с заданием добавлена новая проверка: теперь вариант завершения задания может быть задан только в том случае, если в качестве действия выбрано
CardTaskAction.Complete. - Регистраторы
WebRegistratorтеперь могут выполняться для веб-сервисаjinniв дополнение к веб-сервисуweb. Для атрибутов регистраторов[WebRegistrator]добавлено свойствоTag, посредством которого можно указать, для каких веб-сервисов он должен выполняться:WebRegistratorTag.Web- только для веб-сервисаweb;WebRegistrator.Jinni- только для веб-сервисаjinni. По умолчанию регистратор выполняется для всех веб-сервисов. Также методFinalizeRegistrationклассаWebRegistratorBaseзаменён на асинхронныйFinalizeRegistrationAsync. Примеры использования имеются в типовом решении (проектTessa.Extensions.Default.Server.Web), а также в руководстве разработчика в разделе Кастомизация ссылок на файлы web-клиента. - У большинства интерфейсов расширений
IExtensionв C# появились реализации методов по умолчанию такие же, как в аналогичных базовых классах. Например, если требуется написать класс расширенияICardGetExtensionс единственным определённым методомAfterRequest, то теперь вместо наследования от базового классаCardGetExtensionдостаточно реализовать на классе интерфейсICardGetExtensionи определить этот единственный метод (без ключевого словаoverride). Это позволяет удобно комбинировать реализации разных интерфейсов в пределах одного класса, например, реализоватьICardGetExtensionиICardNewExtensionна одном классе с указанием только необходимых методов, содержащих логику расширения (ранее для того требовалось наследоваться от специального базового классаCardNewGetExtensionили же определять все методы интерфейса с реализациями по умолчанию). - В web-клиенте расширения на узлы рабочего места для фильтрации представлений в режиме выборки вынесены в отдельный класс
WorkplaceFilteringRuleExtension. До этого использовалось расширениеTreeItemExtensionв комбинации с интерфейсомIWorkplaceFilteringRule. При обновлении системы необходимо убрать наследование онTreeItemExtensionиIWorkplaceFilteringRuleи, вместо этого, отнаследоваться от классаWorkplaceFilteringRuleExtension. - В web-клиенте расширения на узлы рабочего места для фильтрации представлений в режиме выборки по умолчанию отключены для оптимизации открытия диалога. Таким образом, типовое расширение
RefSectionExtensionне работает по умолчанию. Чтобы снова включить эти расширения, необходимо в проектном регистраторе в методеregisterTypesуказать строчкуCustomWorkplaceFilteringRuleExecutor.executeExtension = true.
Исправления и оптимизации¶
- В синхронизации AD/LDAP исправлена работа параметра
AdSync.SkipReferralList. - В web-клиенте для предпросмотра была добавлена виртуализация для отображения простых текстовых файлов.
- В ИИ-ассистенте исправлена ошибка, связанная с несоответствием фактического формата изображения и расширения файла при отправке сообщения с файлом, для которого выполнялось постраничное извлечение изображений. Ранее изображения могли сохраняться с расширением
jpg, хотя фактически имели форматpng, что приводило, в частности, к ошибке при отправке файлов в сервисarti. - В web-клиенте исправлена ошибка, из-за которой в карточке поле с типом “Текст с форматированием” могло перезаписываться при сохранении, даже если изменений не было.
- В web-клиенте исправлена ошибка, из-за которой в карточке при привязке нескольких контролов типа “Текст с форматированием” к одном полю мог пропадать контент вложений после их добавления.
- В TessaAdmin в настройках доступа к представлениям и рабочим ролям имена ролей теперь локализуются.
- В web-клиенте исправлена ошибка, из-за которой могло неправильно определяться рабочее место для перехода при ошибке открытия карточки.
- В конструкторе процессов в редакторе экземпляра процесса исправлена ошибка открытия карточки “Ошибка” из таблицы с ошибками процесса.
- Для электронных подписей исправлена проверка при подписании.
- В web-клиенте для ИИ ассистента исправлено отображение Markdown-сносок в сообщении и реализовано корректное переключение между ними.
- В web-клиенте исправлена ошибка, из-за которой в контроле “Текст с форматированием” у таблиц могла не сохраняться настройка выравнивания “Справа”.
- В web-клиенте исправлена ошибка, из-за которой новый контрол грида мог полностью блокировать UI на длительное время при добавлении большого количества строк.
- Исправлена ошибка в схеме, из-за которой изменение библиотеки таблиц или колонок вызывало исключение по причине попытки пересоздания колонок.
- В web-клиенте исправлена ошибка, из-за которой в горизонтальном блоке карточки, содержащем единственный контрол, не применялись настройки отступов и вывода заголовков слева.
- В web-клиенте исправлена ошибка, приводящая к изменению структуры карточки при разворачивании элемента управления “Текст с форматированием”.
- Исправлена ошибка, из-за которой поведение при создании карточки по шаблону через двойной клик в представлении “Шаблоны” отличалось от создания через кнопку “Создать по шаблону” из карточки самого шаблона.
- Исправлена ошибка, из-за которой при создании карточки по шаблону из представления “Шаблоны” могли дублироваться кнопки бизнес-процессов.
- Исправлена ошибка, из-за которой при создании карточки по шаблону посредством двойного клика в представлении “Шаблоны” не использовались расширения
CardCreateFromTemplateExtension. - В web-клиенте исправлена работа расширения
CleanupFieldsCardUIExtension. Со стороны клиента ожидалось неправильное название для настройкиCleanPhysicalColumnIDList. - При импорте карточек исправлена ошибка
"The given key 'TypeID' was not present in the dictionary.", которая скрывала за собой настоящую ошибку, полученную от сервера. - Исправлен импорт карточки “Кэш ИИ” при отсутствующей строке в таблице
AiCacheInstance. Теперь вместо ошибки выводится предупреждение, и импорт корректно выполняется. - Исправлена проблема, из-за которой при возникновении сообщений
ValidationResultв процессе загрузки карточек “Кэш ИИ” и “Кэш файлов” эти сообщения задваивались. - Исправлена ошибка при добавлении файлов в папки центра файлов при использовании СУБД MS SQL Server.
- Исправлена проверка доступности Redis на страницах
/checkи/hcheckдля веб-сервисов web и jinni при использовании Sentinel, а также формат отображения других ошибок. - Исправлена ошибка вида
Недопустимое имя объекта "#fvf_stats"в SQL-скриптахFixes/Migration-4.2.xx.sql. - Исправлена поддержка счётчиков
System.Diagnostics.Metricsв случае, если они использовали типdouble(например,Counter<double>). - Исправлены проблемы и улучшено логирование для ситуаций, когда токен сессии задан некорректно при передаче через заголовок
Tessa-Session, через куки или через параметр метода контроллера с атрибутом[SessionToken]. Например, если при ожидаемом XML в заголовкеTessa-Sessionпередана строка, не являющаяся XML, то веб-сервис пишет подробную информацию в лог, но обрабатывает запрос так, будто заголовок передан не был, и тогда сессия может быть получена из куков. - В web-клиенте исправлена ошибка, из-за которой кнопка разворачивания контрола “Текст с форматированием” не скрывалась при её отключении.
- Исправлена ошибка отображения списка функциональных ролей задания при просмотре ролей задания.
- В TessaAdmin в редакторе типов картотек исправлена ошибка построения метаданных для типов диалогов, возникавшая в ситуации, когда в схеме данных имя ссылочной колонки без префикса совпадало с именем другой колонки таблицы.
- В веб-сервисе
jinniисправлена ошибка, из-за которой обработчики распознавания текста на основе LLM работали только с многостраничными документами и завершались ошибкой на отдельном изображении. - В веб-сервисе
jinniисправлена ошибка, из-за которой операция распознавания текста в режиме без координат блоков завершалась ошибкой: не был найден файл метаданных. - В web-клиенте исправлена проблема, из-за которой копирование данных из Excel в контрол “Текст с форматированием” приводило к ошибкам.
- В web-клиенте исправлена ошибка, из-за которой в представлениях не очищался фильтр колонки при его удалении из выпадающего меню.
- В web-клиенте в конструкторе процессов исправлена ошибка сортировки таблиц по колонкам, которые отображали ссылочное значение или список значений.
- Оптимизирована обработка очередей с операциями. В Redis тип ключа изменён с
SORTED SETнаLIST. Отложенные операции обрабатываются отдельно, располагаясь в таблицеOperationsPostponed(вместо общей таблицыOperations). Также отложенные операции не занимают место в очереди Redis, пока они не перестанут быть отложенными. - Дата создания операции в колонке
Operations.Createdдля тех операций, что были отложенными, теперь соответствует дате перехода из отложенного состоянияPostponedв неотложенноеCreated. Предыдущее поведение могло привести к тому, что операция, которая создавалась отложенной на существенное время, могла быть признана повисшей и удалена, поскольку длительное время не бралась в работу. - Исправлен вызов метода
IOperationRepository.TryGetOperationIDByHashAsyncсо стороны клиента (из кода C#). - Исправлены возможные ошибки при параллельном добавлении одних и тех же тегов в карточки посредством
ITagRepository.StoreTagsAsync. - В web-клиенте исправлена ошибка, из-за которой в настройках представления не учитывались “виртуальные” колонки.
- Оптимизировано и исправлено кэширование в Redis информации по участникам топиков, производимое при работе с форумами и обсуждениями. Кэш теперь разделяется по коду сервера, как и другие ключи, а также хранимое в кэше значение является более компактным. Применяемые ключи описаны в руководстве разработчика.
- Исправлен вызов команды
tadmin UpgradeWorkflowProcessesво время автоматизированного обновления с версии 4.1 черезUpgrade.bat/upgrade.sh. - В представлениях “Завершённые задания” и “Мои завершённые задания” исправлена фильтрация записей по типу документа / карточки.
- В web-клиенте в диалоге создания файла по шаблону исправлена ошибка, приводившая к невозможности скролла таблицы шаблонов файлов.
- В web-клиенте исправлена ошибка, из-за которой вызовы
XMLHttpRequestмогли заканчиваться ошибкой из-за работыzone.js. - Исправлено удаление и восстановление удалённых файлов для карточек, у которых нет строки в таблице
Instances. - В плагине, выполняющем очистку старых удалённых файлов, наличие ошибок для одной карточки более не прерывает очистку для других карточек.
- В web-клиенте исправлена ошибка, из-за которой в новом контроле грида могли неправильно выделяться строки через Shift при наличии активной сортировки.
- В web-клиенте исправлена ошибка при обновлении списка значений в диалоге фильтрации колонки представления.
- Исправлена передача OAuth токена при отправке запросов Exchange Web Services.
- Для сервиса
webдобавлено логирование исключений на уровнеDebugпри десериализацииjsonобъектов. - В представлениях “Мои задания”, “Текущие задания” и “Завершённые задания” исправлена фильтрация записей по типу документа / карточки.
- При отправке уведомлений об истечении срока действия пароля теперь пропускаются сотрудники, для которых заблокирован вход в учётную запись TESSA.
- Улучшена совместимость desktop-приложений при запуске в среде эмуляции Wine (актуально для приложений TessaAdmin и TessaAppManager). При запуске в среде Wine отключается аппаратное ускорение в соответствии с настройкой
SoftwareRenderingв конфигурационных файлахapp.json. - В центре файлов файлы, открытые на чтение, теперь не помечаются как изменённые.
- В web-клиенте исправлено отображение формы отправки задания на мобильных устройствах.
- Удалён внешний ключ на сотрудника, изменившего представление. Теперь такого сотрудника можно удалить.
- Удалены внешние ключи на роли, которым доступны представления и рабочие места. Импорт представлений и рабочих мест теперь может выполняться раньше, чем будут импортированы карточки ролей.
- В web-клиенте исправлена ошибка в методе
StorageAccessor.setIfNotEmpty, из-за которойstorageструктуры могли не всегда верно определяться как пустые. - Исправлено завершение плагина по отправке сигналов таймера в процессы Workflow Engine. Ранее токен отмены не передавался в метод отправки сигнала.
- В web-клиенте исправлен выход из учётной записи. Теперь, даже при наличии ошибок (например, сессия была закрыта администратором) приложение корректно завершает свою работу.
- В web-клиенте в конструкторе процессов исправлена ошибка компиляции узла или действия в ситуации, когда в узле было заполнено поле “Подписки узла по умолчанию”, а в действии было заполнено поле “Список обрабатываемых сигналов”.
- Для команды tadmin UpdateActionHistory исправлена ошибка “ActionHistory table isn’t found”, возникавшая при указании исходной схемы данных на файловой системе.
- В web-клиенте в конструкторе процессов исправлена ошибка, из-за которой в настройках действий для ссылочных контролов, для которых также была включена возможность выбора значения через привязку данных, не работал выбор значения через троеточие.
- В web-клиенте исправлена ошибка расширения Deski, из-за которой при закрытии карточки могли удаляться файлы, не связанные с ней.
- Исправлены ошибки вида
duplicate key value violates unique constraint "pk_Errors"в случае, если конвертация файла не завершилась успешно. - В web-клиенте исправлена ошибка, из-за которой при недоступном плагине КриптоПро пользователю показывался диалог ошибки подключения в ситуациях, когда это не требуется.
- В конструкторе процессов исправлена ошибка, из-за которой в действии “Согласование” рядом с записями согласующих, у которых были настроены дополнительные согласующие, не отображался префикс
(+), обозначающий наличие дополнительных согласующих. - В web-клиенте исправлено поведение открытия приложения в существующей вкладке, которое могло приводить к бесконечной загрузке приложения.
- В центре файлов исправлена ошибка, когда пользователь, не имеющий права на редактирование родительской папки, мог создавать дочернюю ей папку.
- Исправлен класс
UnityContainerCompanion, при многократном использовании которого из разных потоков могла происходить ошибка с пулом объектовConfigurationManagerContext, из-за чего разные объектыUnityContainerCompanionпри выполнении могли получить “чужой” менеджер конфигурации в свойствеConfigurationManager.Default. Такая ошибка способна приводить к случайным падениям юнит-тестов. - В web-клиенте исправлена ошибка, из-за которой не учитывалось свойство
showButtonsWhenDisabledв контролах “Целое число”, “Десятичное число”, “Вещественное число”. - Исправлена ошибка при регистрации плагинов юнит настроек (
ISettingsUnitPlugin). Ошибка приводила к невозможности перерегистрации зависимостей в Unity-контейнере, используемых в плагине. - В API тестов исправлена ошибка, из-за которой зависимости из Unity-контейнера запрашивались до полного завершения настройки Unity-контейнера. Ошибка приводила к невозможности перерегистрации ряда зависимостей в Unity-контейнере.
- Повышена стабильность конвертации файлов с помощью
unoconv. Минимизирована вероятность возникновения ошибки *Office probably died. Binary URP bridge disposed during call*, которая могла приводить к сбоям процесса конвертации. - В конструкторе процессов в действиях “Задание”, “Группа заданий” и “Диалог” в настройках диалога исправлено представление, из которого выбирается тип карточки диалога.
- Оптимизирован запуск дочерних процессов Chronos: больше не используется глобальный мьютекс, сокращены накладные расходы при проверке завершённых дочерних процессов.
- В web-клиенте убрана кнопка “ИИ Ассистент” при просмотре удалённой карточки.
- Оптимизированы индексы для таблицы
Acl. - Исправлена конвертация шаблонов файлов в PDF при использовании механизма конвертации “Сервис”.
- Оптимизировано создание карточки сотрудника. Теперь при первом сохранении не выполняются лишние запросы на актуализацию имени сотрудника в составе ролей (таблица
RoleUsers). - В шаблонах файлов исправлена ошибка, из-за которой при использовании плейсхолдера
{t:...}с двумя колонками для сортировки применялась сортировка только по последней колонке. - В web-клиенте устранена ошибка, из-за которой в системе сохранялась неактуальная версия файла, при попытке сохранения карточки после блокировки контента файла приложением
Deski, из-за чего последующие правки игнорировались. - Исправлена ошибка запуска процесса из схемы процесса согласования в ситуации, когда процесс согласования создаётся в рамках Workflow Engine.
- В web-клиенте исправлена ошибка, которая могла привести к некорректному переносу строк в таблице представления.
- В web-клиенте в чате ИИ ассистента исправлено отображение Markdown разметки. Теперь при посимвольном выводе сообщения служебные символы Markdown не показываются - сразу отображается готовый текст с форматированием.
- Исправлена проверка прав доступа при обращении к представлению “Задания карточки” (
CardTasks). - В web-клиенте исправлена ошибка, из-за которой происходил сброс предпросмотра файла при удалении любого файла в файловом контроле.
- При выборе сертификатов для подписания показывается организация из атрибута
O. - В web-клиенте исправлена локализация названия типа роли “Метароль” в списке ролей, назначенных на задание.
- В web-клиенте при открытии окна настроек фильтрации фокус корректно наводится на выбранный параметр.
- В web-клиенте исправлена ошибка, из-за которой при смене кодировки в предпросмотре текстового файла текст не отображался в выбранной кодировке.
- В web-клиенте в маршрутах в этапе “Согласование” исправлена ошибка, из-за которой не сохранялись дополнительные согласующие.
- В центре файлов в корзине исправлен вывод пункта контекстного меню для очистки удалённых объектов.
- В центре файлов изменён принцип работы удаления папок. Теперь при удалении папки, если она содержит уже удалённые объекты (файлы или папки), то эти объекты будут удалены из корзины.
- В web-клиенте исправлена ошибка, из-за которой у пользователя отображался белый фон при загрузке приложения, если выбранный им ранее фон был удалён с сервера.
- Исправлен вывод колонки “Состояние” для таблицы “Подзадачи” в типовых задачах
WfResolution. Ошибка заключалась в том, что при использовании ролей, являющихся строками локализации, эта строка обрезалась по длине на сервере, из-за чего в интерфейсе выводилась лишь часть алиаса строки локализации без выполнения собственно локализации. В исправленном варианте длина на сервере более не ограничивается. - В web-клиенте исправлена ошибка, из-за которой в контроле “Текст с форматированием” при клике на элемент “Заголовок” любого уровня каретка переносилась в конец этого элемента.
Обновление на новую сборку¶
- Приложение-помощник web-клиента Deski обновлено до версии 3.0.3. Опубликуйте новые версии приложения при обновлении. Обновление может выполнить пользователь, вручную скачав из меню пользователя, или администратор системы, установив msi-пакет для Windows через доменные политики, а для Linux воспользовавшись инструкцией Установка ассистента web-клиента Deski.
- Обновлена документация по поддерживаемым версиям дистрибутивов ОС Linux. Добавлена поддержка дистрибутива
Альт Сервер / Альт Рабочая станция 11.2. Полный список поддерживаемых дистрибутивов (с которыми тестировалась платформа) доступен в разделе документации Системные требования для серверов Linux. - Для использования механизма RAG в СУБД PostgreSQL требуется установленное расширение
pgvector, подробнее см. в разделе Установка расширенияpgvectorв СУБД PostgreSQL. Если не планируется устанавливать расширение для использования механизма RAG, то при импорте схемы необходимо исключить библиотекуAiVector, подробнее см. командуImportSchemeутилитыtadmin. - Добавлены плагины Chronos
AiRagRequestsProcessingPlugin(обработка запросов на индексацию) иAiRagRequestsCleanupPlugin (очистка устаревших запросов на индексацию), которые используются в механизме RAG. Плагины включены по умолчанию. Если не планируется устанавливать расширениеpgvectorдля использования механизма RAG, то отключите плагины в конфигурационном файлеapp-plugins.json`. Подробнее о настройке плагинов см. раздел Список плагинов. - Удалён параметр плагина синхронизации AD/LDAP
AdSync.SkipSystemPartitionsв конфигурационном файлеapp-plugins.json. - В токенах доступа был изменён способ расчёта хэша и подписи токена. Теперь при расчёте хэша не используется ключ подписи
SignatureKey, а при расчёте подписи токена не используется сам токен. Это позволяет переподписывать уже существующие токены с помощью команды tadmin RecalcTokensSignature (команда автоматически вызывается в скриптахUpgrade.bat/upgrade.sh). Уже существующие токены доступа будут недействительны и потребуют повторного выпуска. - В веб-сервисе
jinniгруппа настроекOcrв конфигурационном файле разделена на подгруппы по обработчикам (Tesseract,Qwen,Deepseek), а параметр верхнего уровняRecognizerNameзаменён наDefaultMethod. Добавлен параметрDefaultMode- режим обработки, используемый по умолчанию. Прежний плоский формат группыOcrне поддерживается: настройки требуется перенести в подгруппы обработчиков, см. Настройка jinni. - В веб-сервисе
jinniдобавлен обработчик распознавания текстаQwenна основе моделей Qwen3-VL. ОбработчикChandraобъявлен устаревшим, его настройки удалены из конфигурационного файла. - Изменён формат очередей операций в Redis. Для корректного функционирования системы перед обновлением и запуском сервиса
webрекомендуется очистить Redis (например, командойredis-cli flushall) или удалить ключtessa:initialized, где строка “tessa” - это код сервераServerCode(см. конфигурационный файлapp.json). После этого нужно перезапустить сервисweb, если он был запущен. - Отложенные операции теперь располагаются в таблице
OperationsPostponed. Из таблицыOperationsудалена колонкаPostponedс датой, до которой она была отложена. Если отложенные операции присутствовали на момент обновления, то они будут удалены в скрипте миграцииMigration-4.2-pre.xx.sql(запись “Delete Postponed operations”). - Пользователь
Adminудалён из служебных настроек во всех группах. При необходимости добавить его - это можно сделать через настройки групп в меню Настройки системы. - При обновлении на новую сборку платформы в настройках системы необходимо явно задать модель для вычисления плотных эмбеддингов для корректного функционирования модуля ИИ. По умолчанию модель не задана в настройках умного поиска в категории Умный поиск (RAG).
- При указании хранилища в настройках “Центра файлов”, все новые файлы будут физически размещаться на этом хранилище. Для того, чтобы перенести существующие файлы из “Центра файлов” на это хранилище, необходимо выполнить миграцию в соответствии с разделом Миграция в файловое хранилище в руководстве администратора.
- В схеме данных и представлениях, используемых на проекте, замените справочник нормализации
KrTypesнаTypes(в виде идентификатора:8f4430ab-0530-42e3-9045-54e3b33bbb72замените на35531951-3d12-4a93-b7f7-e9826a6e4875). СправочникTypesтеперь содержит информацию для нормализации типов карточек/документов, зарегистрированных для типового решения. - Удалена настройка
Chronos.SyncTimeoutиз файлаapp.jsonсервиса Chronos.
Изменения API при обновлении¶
- В микросервисе
artiизменён формат ответа в маршруте для вычисления векторного представления текста или массива текстовых фрагментов. Вместо коллекционного поляchunksиспользуется строковое полеchunkвнутри каждого элемента коллекцииdata. Подробнее см. Arti REST API. - Методы определения типов карточки
GetCardTypeIDAsyncиGetCardTypeIDsAsyncперенесены из интерфейсаICardGetStrategyв интерфейсICardGetTypeStrategy. - Объект
ExpirableStringCache<TValue>заменён на более универсальныйExpirableCache<TKey, TValue>, который может использоваться для кэширования значений произвольных типов по ключам произвольных типов (а не только по строковым), с ограниченным сроком кэширования каждой записи. Замените объявления с типомExpirableStringCache<TValue>на типExpirableCache<string, TValue>. - Вернуть отложенную операцию в исходное состояние теперь невозможно методом
IOperationRepository.ReturnToCreatedAsync. При этом метод возвращаетfalse, как для несуществующей или завершённой операции. - Метод
IOperationRepository.CreateAsync(на сервере) поменял сигнатуру и теперь принимает все параметры в виде объектаIOperationCreationParameters. Добавлен одноимённый метод-расширение, которое получает значения по прежней сигнатуре. Если в коде проектного решения при вызове метода отображается ошибка компиляции, то подключите пространство имёнTessa.Platform.Operations. - Удалён тип операции
OperationTypes.Other. Если он использовался в коде проектного решения, то замените его на именованный тип операции, который добавьте в таблицуOperationTypes(через записи в схеме) для возможности поиска по этому типу из представления. Для использования в тестах возможно указывать произвольные идентификаторы, которые не перечислены в этой таблице. - Удалён базовый класс расширений
CardNewGetExtension(C#). Замените его использование на явную реализацию интерфейсовICardNewExtensionиICardGetExtension, а у существующих переопределений методов удалите ключевое словоoverride. Методы из этих интерфейсов, которые не переопределяются, указывать не нужно. - Удалён базовый класс расширений
ForumUserMentionExtension(C#). Замените его использование на явную реализацию интерфейсаIForumUserMentionExtension, а у существующих переопределений методов удалите ключевое словоoverride. Методы из этого интерфейса, которые не переопределяются, указывать не нужно. - Удалён базовый класс расширений
NotificationSendExtensionBase(C#). Замените его использование на явную реализацию интерфейсаINotificationSendExtension, а у существующих переопределений методов удалите ключевое словоoverride. Методы из этого интерфейса, которые не переопределяются, указывать не нужно. - Удалён базовый класс расширений
ApplicationExtension(C#). Замените его использование на явную реализацию интерфейсаIApplicationExtension, а у существующих переопределений методов удалите ключевое словоoverride. Методы из этого интерфейса, которые не переопределяются, указывать не нужно. - У объекта
CheckTriggersResult, содержащего информацию о результате обработки триггеров правил расчёта ACL и генераторов умных ролей, изменён тип свойстваCardIDsWithData. Данный объект может использоваться в расширениях правил расчёта ACLIAclGenerationRuleExtensionдля модификации результата обработки триггеров. При необходимости обновите код расширений правил расчёта ACL. - Изменено API юнитов настроек. Удалено свойство
ISettingsUnitPlugin.ID. Обновите реализации интерфейса в проектном решении. Теперь методSettingsUnitExtensions.RegisterSettingsUnitPluginпринимает идентификатор плагина (pluginID). Используйте этот параметр, если необходимо перерегистрировать другой плагин с таким же идентификатором. - В коде проектных расширений замените использование справочника нормализации
DefaultNormalizationSources.KrTypesнаPlatformNormalizationSources.Types. СправочникTypesтеперь содержит информацию для нормализации типов карточек/документов, зарегистрированных для типового решения. - Изменён интерфейс
ISettingsUnitPlugin: в методахValidateForStoreAsync,BeforeStoreAsync,AfterStoreAsync,AfterStoreFinallyAsync,BeforeRemoveAsyncиAfterRemoveAsyncпараметрSettingsUnitRecordзаменён на контекст операцииSettingsUnitPluginContext. ПрежнийSettingsUnitRecordдоступен через свойство контекста.
Изменения конфигурации при обновлении¶
-
Рабочие места:
-
Administrator -
User(добавлены узлы “Состояния запросаRAG”, “Типы коллекцийRAG” в режиме отбора)
-
-
Представления:
-
AbResolutions -
AiRagCollections(добавлено) -
AiRagCollectionTypes(добавлено) -
AiRagFragments(добавлено) -
AiRagRequests(добавлено) -
AiRagRequestStates(добавлено) -
CompletedTasks -
EmittedTasks -
MyCompletedTasks -
MyTasks -
Operations -
OperationsPostponed(добавлено) -
ProtocolCompletedTasks -
ReportCurrentTasksByDepartment -
ReportCurrentTasksByDepUnpivoted -
ReportCurrentTasksByUser -
ReportPastTasksByDepartment -
ReportPastTasksByUser -
SignatureArchive -
TagCards
-
-
Таблицы:
-
AbResolutions -
Acl -
AdSyncRoots -
AiRagCollections(добавлена) -
AiRagCollectionTypes(добавлена) -
AiRagFragments(добавлена) -
AiRagRequests(добавлена) -
AiRagRequestStates(добавлена) -
CompilationSource(добавлена) -
DeviceTypes -
FileVaultFolder -
FileVaultFolderAccess -
NormalizationSources -
Operations -
OperationsPostponed(добавлена) -
OperationTypes -
OperationUpdates -
RoleTypes -
ServerInstances -
ViewRoles -
Views -
WorkplaceRoles
-
-
Миграции:
AiRagVectorExtension(добавлена)
-
Библиотеки схемы:
-
AiVector(добавлена) -
Default
-
-
Типы:
-
AdSync -
BusinessProcessTemplate -
CalendarCalcMethod -
CompilationSource(добавлен) -
ConditionType -
CreateFileFromTemplate -
FileTemplate -
FileVaultStorage -
KrVirtualFile -
Metarole -
RefGroup -
RefGroupType -
ServerInstance
-
-
Формы:
-
AiRagMonitoring(добавлена) -
AiRagMonitoringCollection(добавлена) -
AiRagMonitoringRequest(добавлена) -
AiRagSearchTab(добавлена) -
AiRagSearchView(добавлена) -
FileVaultEditQuota(добавлена) -
FileVaultHomeFolders(добавлена) -
RegistratorContracts(добавлена)
-
-
Карточки:
-
ApprovalHistory -
CancelButton -
PrintableApprovalHistory -
RejectButton -
Server settings (settings)(необязательное изменение)
-
-
Изменены библиотеки локализации.