Перейти к содержанию

Патч 4.2.3 (31.10.2026)

Новые возможности

  1. Реализован механизм RAG (Retrieval-Augmented Generation) для интеллектуального поиска информации в базе знаний системы с использованием ИИ-модели.
  2. Для объектов системы со скриптами добавлена поддержка выгрузки скриптов в файловую систему и возможность отладки их при подключении выгруженных скриптов к расширениям. Подробнее см. в руководстве разработчика.

Добавление и изменение функциональности

  1. В синхронизации AD/LDAP доработана логика, которая определяет руководителя подразделения. Также для плагина синхронизации добавлен новый флаг-параметр AdSync.UseManagedBy, при включении которого руководитель будет определяться по атрибуту managedBy. Подробнее см. в разделе Алгоритм синхронизации в руководстве администратора.
  2. Ключ с активностью сессий в Redis теперь является хеш-таблицей HSET и размещается по пути {serverCode}:sessions. Ранее активность каждой сессии определялась отдельным ключом, который содержал идентификатор сессии. Ключи Redis с их подробным описанием перечислены в руководстве разработчика.
  3. В конфигурационный файл config.yaml микросервиса arti добавлен параметр-объект kwargs для более детальной настройки модели с помощью дополнительных конфигурационных параметров, которые поддерживает эта модель. Вложенные поля параметра kwargs будут встроены в тело запроса и отправлены в виде JSON-объекта к ИИ модели по протоколу OpenAI.
  4. В web-клиенте для виджета “ИИ ассистент” добавлена иконка в заголовок и обновлены иконки контекстных действий в тулбаре карточки и меню файлов.
  5. Добавлены плагины Chronos AiRagRequestsProcessingPlugin (обработка запросов на индексацию) и AiRagRequestsCleanupPlugin (очистка устаревших запросов на индексацию), которые используются в механизме RAG. Подробнее о настройке плагинов см. раздел Список плагинов.
  6. Добавлен плагин ИИ-агента RagSearchAiAgentPlugin, предоставляющий инструмент rag_search для интеллектуального поиска релевантной информации, фактов, данных или ответов на вопрос пользователя внутри загруженных в систему документов, файлов, данных и другого содержимого. Инструмент анализирует контекст данных и генерирует ответ со ссылками на первоисточники.
  7. В web-клиенте добавлен маршрут /rag, по которому открывается страница мониторинга RAG.
  8. В web-клиенте для диалога ИИ ассистента добавлена возможность выбирать файлы из карточки по двойному клику. Файлы карточки, добавленные при вызове через контекстное меню, нельзя добавить повторно.
  9. Для центра файлов добавлена интеграция с RAG (Retrieval-Augmented Generation) для интеллектуального поиска по файлам с использованием ИИ-модели.
  10. В центре файлов добавлена вкладка “Умный поиск” для папок, использующих функциональность умного поиска.
  11. При логине из TESSA Mobile Client тип устройства в сессии теперь указан как “Мобильный клиент”, что выводится в записи истории действий, в представлении “Активные сессии”, а также в коде на сервере через свойство ISessionToken.DeviceType.
  12. В web-клиенте добавлен кэш для редактора форм.
  13. В синхронизации AD/LDAP в таблице настроек корневых элементов синхронизации добавлен новый параметр “Фильтр пользователей”, с помощью которого можно указать LDAP-фильтр пользователей. Подробнее см. в разделах Автоматическая синхронизация и Алгоритм синхронизации в руководстве администратора.
  14. В настройках центра файлов добавлена возможность указывать хранилище файлов.
  15. В настройки модуля ИИ добавлен новый раздел Умный поиск (RAG), позволяющий задавать основные параметры и настраивать карточные коллекции механизма RAG.
  16. В веб-сервис jinni для операций распознавания текста и извлечения текста из файла можно передать имя обработчика и режим обработки; при их отсутствии используются значения по умолчанию из конфигурации веб-сервиса.
  17. В настройках “Модуль ИИ” добавлена настройка “Метод OCR” - обработчик распознавания текста, который используется при извлечении текста из изображений. Для отдельной коллекции RAG обработчик задаётся полем OcrMethod через серверное API; если он не задан, используется обработчик из настроек модуля ИИ, а при его отсутствии - обработчик по умолчанию из настроек веб-сервиса jinni.
  18. Для конструктора процессов в web-клиенте добавлена функциональность поиска и замены значений по всему шаблону бизнес-процесса.
  19. Добавлено представление “Отложенные операции”, доступное в папке “Служебные” рабочего места “Администратор”. Оно позволяет просматривать операции, которые были отложены. Такие операции более не выводятся в представлении “Активные операции”.
  20. Из представления “Активные операции” удалены колонка и параметр “Отложено до”, а также удалён параметр “Состояние”. Для отображения отложенных операций воспользуйтесь представлением “Отложенные операции”.
  21. Добавлен плагин-расширение Chronos ActivatePostponedOperationsPlugin, который активирует отложенные операции, переводя их из состояния Postponed в Created (включая добавление в очередь операций в Redis). Плагин включён в группу запуска "Normal", что по умолчанию соответствует запуску каждые 15 минут (настраивается в конфигурационном файле app-plugins.json).
  22. В центре файлов название папок теперь должно быть уникальным среди папок одного уровня вложенности.
  23. В web-клиенте обновлено визуальное оформление сообщений ИИ-ассистента.
  24. В web-клиенте для виджета “ИИ-ассистент” добавлена настройка отключения отступов.
  25. В web-клиенте в дизайнер форм добавлен контрол “Редактор кода” с подсветкой синтаксиса, нумерацией строк, переносом строк и настройкой минимального и максимального количества отображаемых строк.
  26. Для плагинов ИИ агента добавлена поддержка отложенного получения результата, которая позволяет запускать длительную операцию в фоновом режиме и получать результат по готовности.
  27. В плагинах ИИ‑агента реализована возможность сохранения промежуточных данных в контексте агента AiContext.Info. Для установки и чтения данных используйте объект AiResponse.ContextInfo.
  28. В web-клиенте для нового контрола грида добавлена настройка “Всегда выделять первую строку”.
  29. Обновлена поддержка запуска desktop-приложений в среде эмуляции Wine. Поддерживается только запуск 64-битных версий для приложений TessaAdmin и TessaAppManager. В качестве рекомендуемого дистрибутива теперь указан “Альт Рабочая станция 11.2”. Инструкция по настройке и запуску доступна в разделе документации Запуск desktop-приложений TESSA на Linux с использованием Wine.
  30. Добавлен плагин ИИ-агента TextRecognitionAiAgentPlugin, предоставляющий инструмент text_recognition для распознавания текста в приложенном файле и формирования pdf-файла с текстовым слоем. Подробнее см. Распознавание текста.
  31. Плагин AclGenerationPlugin теперь выполняет запуск программных правил расчёта ACL при их включении, отключении, изменении версии или удалении из кода.
  32. В конструкторе бизнес-процессов для узла добавлена возможность удалить его с объединением входящей и исходящей связи. Подробнее в разделе Действия над узлами.
  33. В конструктор процессов в настройки связей добавлена настройка “Порядок”, которая определяет порядок обработки связей при обработке сигнала.
  34. В контроле файлов теперь отключена возможность добавления файлов напрямую в категорию, если доступ на добавление файлов в указанную категорию был полностью запрещён, например, правилами доступа.
  35. Добавлен скрипт Fixes/SelectCardFileSources.**.sql, который позволяет определить идентификаторы файловых хранилищ, на которых размещаются файлы для карточки с указанным идентификатором. Версию скрипта “ms” или “pg” выбирайте в соответствии с используемой СУБД. Пример использования скрипта доступен в руководстве администратора для администрирования Центра файлов.
  36. Плагин ИИ-агента ContractCheckListAiAgentPlugin, предоставляющий инструмент contract_check_list, переименован в CheckListAiAgentPlugin, а его инструмент на check_list. Теперь инструмент позволяет выполнять проверку не только договоров, но и произвольных документов, тип которых указан в настройках инструмента. Подробнее см. Проверка документа по чек-листу.
  37. Оптимизирована работа с объектами, передающими информацию о списке карточек, для которых выполняется перерасчёт ACL.
  38. Актуализирована документация по веб-сервису Jinni: описаны недостающие параметры конфигурации, уточнены установка в Windows и Docker, переопределение параметров аргументами командной строки и область действия обработчика распознавания текста по умолчанию.
  39. Добавлена статья базы знаний Пример разработки обработчика распознавания текста для веб-сервиса Jinni.
  40. Удалён справочник нормализации KrTypes. Справочник нормализации Types теперь содержит информацию для нормализации типов карточек/документов, зарегистрированных для типового решения. Во всех местах, где использовался справочник KrTypes, теперь должен использоваться справочник Types.
  41. В веб-сервисе arti реализованы новые режимы разбиения текста на фрагменты: рекурсивное разбиение по токенам и разбиение с учётом Markdown‑структуры. Названия всех режимов приведены к единому стилю и описаны в руководстве веб-сервиса arti.
  42. Добавлена поддержка модуля лицензии “ИИ спец. редакция”, которая включает стандартную функциональность модуля “ИИ” за исключением создания новых программных инструментов. Функциональность модуля лицензии “ИИ” по-прежнему не ограничена.
  43. В чате ИИ-ассистента добавлена поддержка альтернативного способа открытия ссылок - с зажатой клавишей Ctrl. Это позволяет открывать ссылки в диалоговом окне, если это возможно.
  44. При запуске вторичного процесса “Отменить процесс” теперь удаляется процесс согласования.
  45. При запуске вторичного процесса “Отозвать процесс” теперь происходит отзыв процесса согласования, благодаря чему после отзыва завершённого процесса согласования его можно повторно запустить через схему согласования.
  46. Добавлен пункт в настройки безопасности - “Время неактивности, по истечении которого сессия закрывается для TESSA Mobile Client, часы”. Подробнее см. в разделе руководства Настройки безопасности.
  47. В центре файлов для администраторов центра файлов добавлена возможность администрировать домашние папки пользователей, указывая отдельные квоты на максимальный размер папки или очищать содержимое папки вместе с корзиной.
  48. В центре файлов в корзину добавлена кнопка для очистки корзины.
  49. В центре файлов для администраторов центра файлов добавлена возможность указывать квоты на максимальный размер папки для общих папок.
  50. В центре файлов для общих папок добавлена возможность указывать администраторов папки. Администраторы имеют возможность редактировать список сотрудников, для которых доступна папка.
  51. В центре файлов для общих папок можно указывать отдельные роли (например, подразделения), для которых доступна папка.
  52. В центре файлов для корзины добавлен вывод размера, занимаемым удалённым объектом.

Консольная утилита tadmin

  1. Добавлена команда RecalcTokensSignature для повторного вычисления подписи токенов доступа после изменения ключа подписи SignatureKey. Команда автоматически вызывается в скриптах Upgrade.bat/upgrade.sh, поскольку в этих скриптах изменяется ключ подписи SignatureKey.
  2. Добавлена команда FileVaultUpload для програмного заполнения центра файлов файлами и папками.
  3. Для команды MigrateFiles добавлен параметр -id, через который можно указать один или несколько идентификаторов карточек, из которых необходимо мигрировать файлы (в дополнение к фильтру по исходному местоположению файлов). Если идентификаторы карточек не указаны, то миграция обработает все карточки.

Новые версии библиотек

  1. .NET 10.0.14
  2. CAdESLib 1.7.2.1
  3. DynamicExpresso.Core 2.19.6
  4. HtmlAgilityPack 1.13.1
  5. HtmlSanitizer 9.2.1039
  6. iTextSharp.LGPLv2.Core 3.8.7
  7. ITfoxtec.Identity.Saml2.MvcCore 4.21.0
  8. Kerberos.NET 4.6.168
  9. linq2db 6.5.1
  10. MailKit 4.18.2
  11. Microsoft.CodeAnalysis.CSharp 5.9.0
  12. Microsoft.Data.SqlClient 7.1.1
  13. Microsoft.IdentityModel.Protocols.OpenIdConnect 8.23.0
  14. Microsoft.NET.Test.Sdk 18.11.0
  15. Moq 4.21.0
  16. NetOfficeFw.Word 1.9.12
  17. NLog 6.2.2
  18. NLog.Targets.AtomicFile 6.2.2
  19. NLog.Web.AspNetCore 6.2.2
  20. NUnit 5.0.0
  21. OpenTelemetry 1.20.1
  22. PDFsharp-wpf 6.5.0
  23. PDFtoImage 5.4.0
  24. Quartz 4.6.2
  25. SharpCompress 0.50.7
  26. SkiaSharp 4.154.0
  27. SkiaSharp.QrCode 1.2.0
  28. StackExchange.Redis 3.4.20
  29. Swashbuckle.AspNetCore 10.3.1
  30. Swashbuckle.AspNetCore.Newtonsoft 10.3.1
  31. ZXing.Net.Bindings.OpenCV.V4 0.16.13

Изменения API

  1. В микросервисе arti добавлена возможность передавать размер вектора для embedding-модели в маршрут для вычисления векторного представления текста или массива текстовых фрагментов. Подробнее см. Arti REST API.
  2. В микросервисе arti изменён формат ответа в маршруте для вычисления векторного представления текста или массива текстовых фрагментов. Вместо коллекционного поля chunks используется строковое поле chunk внутри каждого элемента коллекции data. Подробнее см. Arti REST API.
  3. В web-клиенте для TreeViewModel добавлено свойство nodeCaptionWrap, включающее перенос текста в подписях узлов.
  4. В запрос загрузки карточки CardGetRequest добавлено свойство ExtendedTypeCheck, при установке которого система проверяет тип карточки не только по таблице Instances, но и с использованием других зарегистрированных в системе стратегий определения типа карточки ICardGetTypeStrategy. Свойство стоит использовать только в случаях, когда тип карточки неизвестен и не может быть определён при формировании запроса.
  5. В чате ИИ ассистента добавлена возможность генерации и открытия Markdown-ссылок для предпросмотра файла. Для генерации используйте IMdLinkProvider.GetPreviewLink в серверном API.
  6. Добавлен контроллер api/v1/ai/rag, который используется для взаимодействия с механизмом RAG в web-клиенте.
  7. Добавлен метод Card.TryGetTypeID(), аналогичный свойству TypeID, но возвращающий null для невалидного объекта карточки, у которого свойство TypeID не было присвоено. Используйте метод для получения типа из результатов запросов Response.Card.TryGetTypeID(), где в результате валидации Response.ValidationResult есть ошибки. В этом случае не гарантируется, что в Response.Card будет располагаться валидная карточка, из-за чего обращение к свойству TypeID может привести к исключению.
  8. В методы IAiFileProcessor.ExtractTextAsync и IAiRagDocumentProvider.GetDocumentTextAsync добавлен необязательный параметр ocrMethod с именем обработчика распознавания текста. Из параметров операции распознавания текста OcrParameters удалено свойство LLMParameters: модель, промпт и дополнительные параметры обработчика задаются в его подгруппе в конфигурационном файле веб-сервиса jinni.
  9. В web-клиенте изменено поведение объектов сессии: теперь, если AccessToken доступен только из cookie браузера, в объектах сессии для этого токена будет лежать null вместо строки-плейсхолдера.
  10. В веб-сервисе arti добавлена поддержка механизма вызова инструментов (Function Calling).
  11. В веб-сервисе web добавлен объект AiToolFunction, который позволяет описать объект-функцию для механизма вызова инструментов. Добавлена новая роль tools для формирования сообщений с результатами вызова функций в механизме вызова инструментов.
  12. Добавлен базовый класс плагинов AiAgentPluginBase, который содержит базовую реализацию методов. Обновлён пример документации Пример ИИ инструмента для составления резюме по протоколу совещания.
  13. Для обработки коллекций используется RAG-плагин в виде объекта IAiRagPlugin. Он предоставляет провайдеры для работы с коллекцией IAiRagCollectionProvider, документами IAiRagDocumentProvider, ссылками IAiRagLinkProvider, правами IAiRagPermissionsProvider и поиском IAiRagSearchProvider в механизме RAG. В платформе реализованы: плагин для карточных коллекций AiRagCardPlugin, плагин для коллекций в центре файлов FileVaultAiRagPlugin и плагин по умолчанию AiRagDefaultPlugin, который использует провайдеры по умолчанию.
  14. В веб-сервисе arti переработан файл конфигурации. Группа для моделей models переименована в textGenerationModels, группа embeddingModel переименована в denseEmbeddingModels и теперь поддерживает множество моделей, добавлена группа rerankModels для моделей переранжирования, некоторые отдельные поля переименованы для большей ясности. Подробнее о полях конфигурации см. в разделе Конфигурационный файл веб-сервиса arti.
  15. В веб-сервисе arti для маршрута GET /v1/models добавлен обязательный query-параметр type для указания типа запрашиваемых моделей. Подробнее о его значениях см. в разделе Описание REST API веб-сервиса arti.
  16. В веб-сервисе arti добавлен маршрут POST /v1/rerank, который позволяет выполнить переранжирование текстового содержимого документов в соответствии с их релевантностью запросу пользователя. Для обращения по этому маршруту используйте IArtiService.RerankAsync. Подробнее о новом маршруте см. в разделе Описание REST API веб-сервиса arti.
  17. Интерфейсы и атрибуты для реализации сторонних обработчиков распознавания текста перенесены из проекта Jinni в библиотеку Tessa. Для реализации собственного обработчика теперь достаточно ссылки на библиотеку Tessa.
  18. Добавлен класс AclGenerationRuleRolesSqlReader, который может использоваться для создания объекта для чтения ролей карточек через SQL запрос при расчёте ACL.
  19. Для сохранения карточки с заданием добавлена новая проверка: теперь вариант завершения задания может быть задан только в том случае, если в качестве действия выбрано CardTaskAction.Complete.
  20. Регистраторы WebRegistrator теперь могут выполняться для веб-сервиса jinni в дополнение к веб-сервису web. Для атрибутов регистраторов [WebRegistrator] добавлено свойство Tag, посредством которого можно указать, для каких веб-сервисов он должен выполняться: WebRegistratorTag.Web - только для веб-сервиса web; WebRegistrator.Jinni - только для веб-сервиса jinni. По умолчанию регистратор выполняется для всех веб-сервисов. Также метод FinalizeRegistration класса WebRegistratorBase заменён на асинхронный FinalizeRegistrationAsync. Примеры использования имеются в типовом решении (проект Tessa.Extensions.Default.Server.Web), а также в руководстве разработчика в разделе Кастомизация ссылок на файлы web-клиента.
  21. У большинства интерфейсов расширений IExtension в C# появились реализации методов по умолчанию такие же, как в аналогичных базовых классах. Например, если требуется написать класс расширения ICardGetExtension с единственным определённым методом AfterRequest, то теперь вместо наследования от базового класса CardGetExtension достаточно реализовать на классе интерфейс ICardGetExtension и определить этот единственный метод (без ключевого слова override). Это позволяет удобно комбинировать реализации разных интерфейсов в пределах одного класса, например, реализовать ICardGetExtension и ICardNewExtension на одном классе с указанием только необходимых методов, содержащих логику расширения (ранее для того требовалось наследоваться от специального базового класса CardNewGetExtension или же определять все методы интерфейса с реализациями по умолчанию).
  22. В web-клиенте расширения на узлы рабочего места для фильтрации представлений в режиме выборки вынесены в отдельный класс WorkplaceFilteringRuleExtension. До этого использовалось расширение TreeItemExtension в комбинации с интерфейсом IWorkplaceFilteringRule. При обновлении системы необходимо убрать наследование он TreeItemExtension и IWorkplaceFilteringRule и, вместо этого, отнаследоваться от класса WorkplaceFilteringRuleExtension.
  23. В web-клиенте расширения на узлы рабочего места для фильтрации представлений в режиме выборки по умолчанию отключены для оптимизации открытия диалога. Таким образом, типовое расширение RefSectionExtension не работает по умолчанию. Чтобы снова включить эти расширения, необходимо в проектном регистраторе в методе registerTypes указать строчку CustomWorkplaceFilteringRuleExecutor.executeExtension = true.

Исправления и оптимизации

  1. В синхронизации AD/LDAP исправлена работа параметра AdSync.SkipReferralList.
  2. В web-клиенте для предпросмотра была добавлена виртуализация для отображения простых текстовых файлов.
  3. В ИИ-ассистенте исправлена ошибка, связанная с несоответствием фактического формата изображения и расширения файла при отправке сообщения с файлом, для которого выполнялось постраничное извлечение изображений. Ранее изображения могли сохраняться с расширением jpg, хотя фактически имели формат png, что приводило, в частности, к ошибке при отправке файлов в сервис arti.
  4. В web-клиенте исправлена ошибка, из-за которой в карточке поле с типом “Текст с форматированием” могло перезаписываться при сохранении, даже если изменений не было.
  5. В web-клиенте исправлена ошибка, из-за которой в карточке при привязке нескольких контролов типа “Текст с форматированием” к одном полю мог пропадать контент вложений после их добавления.
  6. В TessaAdmin в настройках доступа к представлениям и рабочим ролям имена ролей теперь локализуются.
  7. В web-клиенте исправлена ошибка, из-за которой могло неправильно определяться рабочее место для перехода при ошибке открытия карточки.
  8. В конструкторе процессов в редакторе экземпляра процесса исправлена ошибка открытия карточки “Ошибка” из таблицы с ошибками процесса.
  9. Для электронных подписей исправлена проверка при подписании.
  10. В web-клиенте для ИИ ассистента исправлено отображение Markdown-сносок в сообщении и реализовано корректное переключение между ними.
  11. В web-клиенте исправлена ошибка, из-за которой в контроле “Текст с форматированием” у таблиц могла не сохраняться настройка выравнивания “Справа”.
  12. В web-клиенте исправлена ошибка, из-за которой новый контрол грида мог полностью блокировать UI на длительное время при добавлении большого количества строк.
  13. Исправлена ошибка в схеме, из-за которой изменение библиотеки таблиц или колонок вызывало исключение по причине попытки пересоздания колонок.
  14. В web-клиенте исправлена ошибка, из-за которой в горизонтальном блоке карточки, содержащем единственный контрол, не применялись настройки отступов и вывода заголовков слева.
  15. В web-клиенте исправлена ошибка, приводящая к изменению структуры карточки при разворачивании элемента управления “Текст с форматированием”.
  16. Исправлена ошибка, из-за которой поведение при создании карточки по шаблону через двойной клик в представлении “Шаблоны” отличалось от создания через кнопку “Создать по шаблону” из карточки самого шаблона.
  17. Исправлена ошибка, из-за которой при создании карточки по шаблону из представления “Шаблоны” могли дублироваться кнопки бизнес-процессов.
  18. Исправлена ошибка, из-за которой при создании карточки по шаблону посредством двойного клика в представлении “Шаблоны” не использовались расширения CardCreateFromTemplateExtension.
  19. В web-клиенте исправлена работа расширения CleanupFieldsCardUIExtension. Со стороны клиента ожидалось неправильное название для настройки CleanPhysicalColumnIDList.
  20. При импорте карточек исправлена ошибка "The given key 'TypeID' was not present in the dictionary.", которая скрывала за собой настоящую ошибку, полученную от сервера.
  21. Исправлен импорт карточки “Кэш ИИ” при отсутствующей строке в таблице AiCacheInstance. Теперь вместо ошибки выводится предупреждение, и импорт корректно выполняется.
  22. Исправлена проблема, из-за которой при возникновении сообщений ValidationResult в процессе загрузки карточек “Кэш ИИ” и “Кэш файлов” эти сообщения задваивались.
  23. Исправлена ошибка при добавлении файлов в папки центра файлов при использовании СУБД MS SQL Server.
  24. Исправлена проверка доступности Redis на страницах /check и /hcheck для веб-сервисов web и jinni при использовании Sentinel, а также формат отображения других ошибок.
  25. Исправлена ошибка вида Недопустимое имя объекта "#fvf_stats" в SQL-скриптах Fixes/Migration-4.2.xx.sql.
  26. Исправлена поддержка счётчиков System.Diagnostics.Metrics в случае, если они использовали тип double (например, Counter<double>).
  27. Исправлены проблемы и улучшено логирование для ситуаций, когда токен сессии задан некорректно при передаче через заголовок Tessa-Session, через куки или через параметр метода контроллера с атрибутом [SessionToken]. Например, если при ожидаемом XML в заголовке Tessa-Session передана строка, не являющаяся XML, то веб-сервис пишет подробную информацию в лог, но обрабатывает запрос так, будто заголовок передан не был, и тогда сессия может быть получена из куков.
  28. В web-клиенте исправлена ошибка, из-за которой кнопка разворачивания контрола “Текст с форматированием” не скрывалась при её отключении.
  29. Исправлена ошибка отображения списка функциональных ролей задания при просмотре ролей задания.
  30. В TessaAdmin в редакторе типов картотек исправлена ошибка построения метаданных для типов диалогов, возникавшая в ситуации, когда в схеме данных имя ссылочной колонки без префикса совпадало с именем другой колонки таблицы.
  31. В веб-сервисе jinni исправлена ошибка, из-за которой обработчики распознавания текста на основе LLM работали только с многостраничными документами и завершались ошибкой на отдельном изображении.
  32. В веб-сервисе jinni исправлена ошибка, из-за которой операция распознавания текста в режиме без координат блоков завершалась ошибкой: не был найден файл метаданных.
  33. В web-клиенте исправлена проблема, из-за которой копирование данных из Excel в контрол “Текст с форматированием” приводило к ошибкам.
  34. В web-клиенте исправлена ошибка, из-за которой в представлениях не очищался фильтр колонки при его удалении из выпадающего меню.
  35. В web-клиенте в конструкторе процессов исправлена ошибка сортировки таблиц по колонкам, которые отображали ссылочное значение или список значений.
  36. Оптимизирована обработка очередей с операциями. В Redis тип ключа изменён с SORTED SET на LIST. Отложенные операции обрабатываются отдельно, располагаясь в таблице OperationsPostponed (вместо общей таблицы Operations). Также отложенные операции не занимают место в очереди Redis, пока они не перестанут быть отложенными.
  37. Дата создания операции в колонке Operations.Created для тех операций, что были отложенными, теперь соответствует дате перехода из отложенного состояния Postponed в неотложенное Created. Предыдущее поведение могло привести к тому, что операция, которая создавалась отложенной на существенное время, могла быть признана повисшей и удалена, поскольку длительное время не бралась в работу.
  38. Исправлен вызов метода IOperationRepository.TryGetOperationIDByHashAsync со стороны клиента (из кода C#).
  39. Исправлены возможные ошибки при параллельном добавлении одних и тех же тегов в карточки посредством ITagRepository.StoreTagsAsync.
  40. В web-клиенте исправлена ошибка, из-за которой в настройках представления не учитывались “виртуальные” колонки.
  41. Оптимизировано и исправлено кэширование в Redis информации по участникам топиков, производимое при работе с форумами и обсуждениями. Кэш теперь разделяется по коду сервера, как и другие ключи, а также хранимое в кэше значение является более компактным. Применяемые ключи описаны в руководстве разработчика.
  42. Исправлен вызов команды tadmin UpgradeWorkflowProcesses во время автоматизированного обновления с версии 4.1 через Upgrade.bat/upgrade.sh.
  43. В представлениях “Завершённые задания” и “Мои завершённые задания” исправлена фильтрация записей по типу документа / карточки.
  44. В web-клиенте в диалоге создания файла по шаблону исправлена ошибка, приводившая к невозможности скролла таблицы шаблонов файлов.
  45. В web-клиенте исправлена ошибка, из-за которой вызовы XMLHttpRequest могли заканчиваться ошибкой из-за работы zone.js.
  46. Исправлено удаление и восстановление удалённых файлов для карточек, у которых нет строки в таблице Instances.
  47. В плагине, выполняющем очистку старых удалённых файлов, наличие ошибок для одной карточки более не прерывает очистку для других карточек.
  48. В web-клиенте исправлена ошибка, из-за которой в новом контроле грида могли неправильно выделяться строки через Shift при наличии активной сортировки.
  49. В web-клиенте исправлена ошибка при обновлении списка значений в диалоге фильтрации колонки представления.
  50. Исправлена передача OAuth токена при отправке запросов Exchange Web Services.
  51. Для сервиса web добавлено логирование исключений на уровне Debug при десериализации json объектов.
  52. В представлениях “Мои задания”, “Текущие задания” и “Завершённые задания” исправлена фильтрация записей по типу документа / карточки.
  53. При отправке уведомлений об истечении срока действия пароля теперь пропускаются сотрудники, для которых заблокирован вход в учётную запись TESSA.
  54. Улучшена совместимость desktop-приложений при запуске в среде эмуляции Wine (актуально для приложений TessaAdmin и TessaAppManager). При запуске в среде Wine отключается аппаратное ускорение в соответствии с настройкой SoftwareRendering в конфигурационных файлах app.json.
  55. В центре файлов файлы, открытые на чтение, теперь не помечаются как изменённые.
  56. В web-клиенте исправлено отображение формы отправки задания на мобильных устройствах.
  57. Удалён внешний ключ на сотрудника, изменившего представление. Теперь такого сотрудника можно удалить.
  58. Удалены внешние ключи на роли, которым доступны представления и рабочие места. Импорт представлений и рабочих мест теперь может выполняться раньше, чем будут импортированы карточки ролей.
  59. В web-клиенте исправлена ошибка в методе StorageAccessor.setIfNotEmpty, из-за которой storage структуры могли не всегда верно определяться как пустые.
  60. Исправлено завершение плагина по отправке сигналов таймера в процессы Workflow Engine. Ранее токен отмены не передавался в метод отправки сигнала.
  61. В web-клиенте исправлен выход из учётной записи. Теперь, даже при наличии ошибок (например, сессия была закрыта администратором) приложение корректно завершает свою работу.
  62. В web-клиенте в конструкторе процессов исправлена ошибка компиляции узла или действия в ситуации, когда в узле было заполнено поле “Подписки узла по умолчанию”, а в действии было заполнено поле “Список обрабатываемых сигналов”.
  63. Для команды tadmin UpdateActionHistory исправлена ошибка “ActionHistory table isn’t found”, возникавшая при указании исходной схемы данных на файловой системе.
  64. В web-клиенте в конструкторе процессов исправлена ошибка, из-за которой в настройках действий для ссылочных контролов, для которых также была включена возможность выбора значения через привязку данных, не работал выбор значения через троеточие.
  65. В web-клиенте исправлена ошибка расширения Deski, из-за которой при закрытии карточки могли удаляться файлы, не связанные с ней.
  66. Исправлены ошибки вида duplicate key value violates unique constraint "pk_Errors" в случае, если конвертация файла не завершилась успешно.
  67. В web-клиенте исправлена ошибка, из-за которой при недоступном плагине КриптоПро пользователю показывался диалог ошибки подключения в ситуациях, когда это не требуется.
  68. В конструкторе процессов исправлена ошибка, из-за которой в действии “Согласование” рядом с записями согласующих, у которых были настроены дополнительные согласующие, не отображался префикс (+), обозначающий наличие дополнительных согласующих.
  69. В web-клиенте исправлено поведение открытия приложения в существующей вкладке, которое могло приводить к бесконечной загрузке приложения.
  70. В центре файлов исправлена ошибка, когда пользователь, не имеющий права на редактирование родительской папки, мог создавать дочернюю ей папку.
  71. Исправлен класс UnityContainerCompanion, при многократном использовании которого из разных потоков могла происходить ошибка с пулом объектов ConfigurationManagerContext, из-за чего разные объекты UnityContainerCompanion при выполнении могли получить “чужой” менеджер конфигурации в свойстве ConfigurationManager.Default. Такая ошибка способна приводить к случайным падениям юнит-тестов.
  72. В web-клиенте исправлена ошибка, из-за которой не учитывалось свойство showButtonsWhenDisabled в контролах “Целое число”, “Десятичное число”, “Вещественное число”.
  73. Исправлена ошибка при регистрации плагинов юнит настроек (ISettingsUnitPlugin). Ошибка приводила к невозможности перерегистрации зависимостей в Unity-контейнере, используемых в плагине.
  74. В API тестов исправлена ошибка, из-за которой зависимости из Unity-контейнера запрашивались до полного завершения настройки Unity-контейнера. Ошибка приводила к невозможности перерегистрации ряда зависимостей в Unity-контейнере.
  75. Повышена стабильность конвертации файлов с помощью unoconv. Минимизирована вероятность возникновения ошибки *Office probably died. Binary URP bridge disposed during call*, которая могла приводить к сбоям процесса конвертации.
  76. В конструкторе процессов в действиях “Задание”, “Группа заданий” и “Диалог” в настройках диалога исправлено представление, из которого выбирается тип карточки диалога.
  77. Оптимизирован запуск дочерних процессов Chronos: больше не используется глобальный мьютекс, сокращены накладные расходы при проверке завершённых дочерних процессов.
  78. В web-клиенте убрана кнопка “ИИ Ассистент” при просмотре удалённой карточки.
  79. Оптимизированы индексы для таблицы Acl.
  80. Исправлена конвертация шаблонов файлов в PDF при использовании механизма конвертации “Сервис”.
  81. Оптимизировано создание карточки сотрудника. Теперь при первом сохранении не выполняются лишние запросы на актуализацию имени сотрудника в составе ролей (таблица RoleUsers).
  82. В шаблонах файлов исправлена ошибка, из-за которой при использовании плейсхолдера {t:...} с двумя колонками для сортировки применялась сортировка только по последней колонке.
  83. В web-клиенте устранена ошибка, из-за которой в системе сохранялась неактуальная версия файла, при попытке сохранения карточки после блокировки контента файла приложением Deski, из-за чего последующие правки игнорировались.
  84. Исправлена ошибка запуска процесса из схемы процесса согласования в ситуации, когда процесс согласования создаётся в рамках Workflow Engine.
  85. В web-клиенте исправлена ошибка, которая могла привести к некорректному переносу строк в таблице представления.
  86. В web-клиенте в чате ИИ ассистента исправлено отображение Markdown разметки. Теперь при посимвольном выводе сообщения служебные символы Markdown не показываются - сразу отображается готовый текст с форматированием.
  87. Исправлена проверка прав доступа при обращении к представлению “Задания карточки” (CardTasks).
  88. В web-клиенте исправлена ошибка, из-за которой происходил сброс предпросмотра файла при удалении любого файла в файловом контроле.
  89. При выборе сертификатов для подписания показывается организация из атрибута O.
  90. В web-клиенте исправлена локализация названия типа роли “Метароль” в списке ролей, назначенных на задание.
  91. В web-клиенте при открытии окна настроек фильтрации фокус корректно наводится на выбранный параметр.
  92. В web-клиенте исправлена ошибка, из-за которой при смене кодировки в предпросмотре текстового файла текст не отображался в выбранной кодировке.
  93. В web-клиенте в маршрутах в этапе “Согласование” исправлена ошибка, из-за которой не сохранялись дополнительные согласующие.
  94. В центре файлов в корзине исправлен вывод пункта контекстного меню для очистки удалённых объектов.
  95. В центре файлов изменён принцип работы удаления папок. Теперь при удалении папки, если она содержит уже удалённые объекты (файлы или папки), то эти объекты будут удалены из корзины.
  96. В web-клиенте исправлена ошибка, из-за которой у пользователя отображался белый фон при загрузке приложения, если выбранный им ранее фон был удалён с сервера.
  97. Исправлен вывод колонки “Состояние” для таблицы “Подзадачи” в типовых задачах WfResolution. Ошибка заключалась в том, что при использовании ролей, являющихся строками локализации, эта строка обрезалась по длине на сервере, из-за чего в интерфейсе выводилась лишь часть алиаса строки локализации без выполнения собственно локализации. В исправленном варианте длина на сервере более не ограничивается.
  98. В web-клиенте исправлена ошибка, из-за которой в контроле “Текст с форматированием” при клике на элемент “Заголовок” любого уровня каретка переносилась в конец этого элемента.

Обновление на новую сборку

  1. Приложение-помощник web-клиента Deski обновлено до версии 3.0.3. Опубликуйте новые версии приложения при обновлении. Обновление может выполнить пользователь, вручную скачав из меню пользователя, или администратор системы, установив msi-пакет для Windows через доменные политики, а для Linux воспользовавшись инструкцией Установка ассистента web-клиента Deski.
  2. Обновлена документация по поддерживаемым версиям дистрибутивов ОС Linux. Добавлена поддержка дистрибутива Альт Сервер / Альт Рабочая станция 11.2. Полный список поддерживаемых дистрибутивов (с которыми тестировалась платформа) доступен в разделе документации Системные требования для серверов Linux.
  3. Для использования механизма RAG в СУБД PostgreSQL требуется установленное расширение pgvector, подробнее см. в разделе Установка расширения pgvector в СУБД PostgreSQL. Если не планируется устанавливать расширение для использования механизма RAG, то при импорте схемы необходимо исключить библиотеку AiVector, подробнее см. команду ImportScheme утилиты tadmin.
  4. Добавлены плагины Chronos AiRagRequestsProcessingPlugin (обработка запросов на индексацию) и AiRagRequestsCleanupPlugin (очистка устаревших запросов на индексацию), которые используются в механизме RAG. Плагины включены по умолчанию. Если не планируется устанавливать расширениеpgvectorдля использования механизма RAG, то отключите плагины в конфигурационном файлеapp-plugins.json`. Подробнее о настройке плагинов см. раздел Список плагинов.
  5. Удалён параметр плагина синхронизации AD/LDAP AdSync.SkipSystemPartitions в конфигурационном файле app-plugins.json.
  6. В токенах доступа был изменён способ расчёта хэша и подписи токена. Теперь при расчёте хэша не используется ключ подписи SignatureKey, а при расчёте подписи токена не используется сам токен. Это позволяет переподписывать уже существующие токены с помощью команды tadmin RecalcTokensSignature (команда автоматически вызывается в скриптах Upgrade.bat/upgrade.sh). Уже существующие токены доступа будут недействительны и потребуют повторного выпуска.
  7. В веб-сервисе jinni группа настроек Ocr в конфигурационном файле разделена на подгруппы по обработчикам (Tesseract, Qwen, Deepseek), а параметр верхнего уровня RecognizerName заменён на DefaultMethod. Добавлен параметр DefaultMode - режим обработки, используемый по умолчанию. Прежний плоский формат группы Ocr не поддерживается: настройки требуется перенести в подгруппы обработчиков, см. Настройка jinni.
  8. В веб-сервисе jinni добавлен обработчик распознавания текста Qwen на основе моделей Qwen3-VL. Обработчик Chandra объявлен устаревшим, его настройки удалены из конфигурационного файла.
  9. Изменён формат очередей операций в Redis. Для корректного функционирования системы перед обновлением и запуском сервиса web рекомендуется очистить Redis (например, командой redis-cli flushall) или удалить ключ tessa:initialized, где строка “tessa” - это код сервера ServerCode (см. конфигурационный файл app.json). После этого нужно перезапустить сервис web, если он был запущен.
  10. Отложенные операции теперь располагаются в таблице OperationsPostponed. Из таблицы Operations удалена колонка Postponed с датой, до которой она была отложена. Если отложенные операции присутствовали на момент обновления, то они будут удалены в скрипте миграции Migration-4.2-pre.xx.sql (запись “Delete Postponed operations”).
  11. Пользователь Admin удалён из служебных настроек во всех группах. При необходимости добавить его - это можно сделать через настройки групп в меню Настройки системы.
  12. При обновлении на новую сборку платформы в настройках системы необходимо явно задать модель для вычисления плотных эмбеддингов для корректного функционирования модуля ИИ. По умолчанию модель не задана в настройках умного поиска в категории Умный поиск (RAG).
  13. При указании хранилища в настройках “Центра файлов”, все новые файлы будут физически размещаться на этом хранилище. Для того, чтобы перенести существующие файлы из “Центра файлов” на это хранилище, необходимо выполнить миграцию в соответствии с разделом Миграция в файловое хранилище в руководстве администратора.
  14. В схеме данных и представлениях, используемых на проекте, замените справочник нормализации KrTypes на Types (в виде идентификатора: 8f4430ab-0530-42e3-9045-54e3b33bbb72 замените на 35531951-3d12-4a93-b7f7-e9826a6e4875). Справочник Types теперь содержит информацию для нормализации типов карточек/документов, зарегистрированных для типового решения.
  15. Удалена настройка Chronos.SyncTimeout из файла app.json сервиса Chronos.

Изменения API при обновлении

  1. В микросервисе arti изменён формат ответа в маршруте для вычисления векторного представления текста или массива текстовых фрагментов. Вместо коллекционного поля chunks используется строковое поле chunk внутри каждого элемента коллекции data. Подробнее см. Arti REST API.
  2. Методы определения типов карточки GetCardTypeIDAsync и GetCardTypeIDsAsync перенесены из интерфейса ICardGetStrategy в интерфейс ICardGetTypeStrategy.
  3. Объект ExpirableStringCache<TValue> заменён на более универсальный ExpirableCache<TKey, TValue>, который может использоваться для кэширования значений произвольных типов по ключам произвольных типов (а не только по строковым), с ограниченным сроком кэширования каждой записи. Замените объявления с типом ExpirableStringCache<TValue> на тип ExpirableCache<string, TValue>.
  4. Вернуть отложенную операцию в исходное состояние теперь невозможно методом IOperationRepository.ReturnToCreatedAsync. При этом метод возвращает false, как для несуществующей или завершённой операции.
  5. Метод IOperationRepository.CreateAsync (на сервере) поменял сигнатуру и теперь принимает все параметры в виде объекта IOperationCreationParameters. Добавлен одноимённый метод-расширение, которое получает значения по прежней сигнатуре. Если в коде проектного решения при вызове метода отображается ошибка компиляции, то подключите пространство имён Tessa.Platform.Operations.
  6. Удалён тип операции OperationTypes.Other. Если он использовался в коде проектного решения, то замените его на именованный тип операции, который добавьте в таблицу OperationTypes (через записи в схеме) для возможности поиска по этому типу из представления. Для использования в тестах возможно указывать произвольные идентификаторы, которые не перечислены в этой таблице.
  7. Удалён базовый класс расширений CardNewGetExtension (C#). Замените его использование на явную реализацию интерфейсов ICardNewExtension и ICardGetExtension, а у существующих переопределений методов удалите ключевое слово override. Методы из этих интерфейсов, которые не переопределяются, указывать не нужно.
  8. Удалён базовый класс расширений ForumUserMentionExtension (C#). Замените его использование на явную реализацию интерфейса IForumUserMentionExtension, а у существующих переопределений методов удалите ключевое слово override. Методы из этого интерфейса, которые не переопределяются, указывать не нужно.
  9. Удалён базовый класс расширений NotificationSendExtensionBase (C#). Замените его использование на явную реализацию интерфейса INotificationSendExtension, а у существующих переопределений методов удалите ключевое слово override. Методы из этого интерфейса, которые не переопределяются, указывать не нужно.
  10. Удалён базовый класс расширений ApplicationExtension (C#). Замените его использование на явную реализацию интерфейса IApplicationExtension, а у существующих переопределений методов удалите ключевое слово override. Методы из этого интерфейса, которые не переопределяются, указывать не нужно.
  11. У объекта CheckTriggersResult, содержащего информацию о результате обработки триггеров правил расчёта ACL и генераторов умных ролей, изменён тип свойства CardIDsWithData. Данный объект может использоваться в расширениях правил расчёта ACL IAclGenerationRuleExtension для модификации результата обработки триггеров. При необходимости обновите код расширений правил расчёта ACL.
  12. Изменено API юнитов настроек. Удалено свойство ISettingsUnitPlugin.ID. Обновите реализации интерфейса в проектном решении. Теперь метод SettingsUnitExtensions.RegisterSettingsUnitPlugin принимает идентификатор плагина (pluginID). Используйте этот параметр, если необходимо перерегистрировать другой плагин с таким же идентификатором.
  13. В коде проектных расширений замените использование справочника нормализации DefaultNormalizationSources.KrTypes на PlatformNormalizationSources.Types. Справочник Types теперь содержит информацию для нормализации типов карточек/документов, зарегистрированных для типового решения.
  14. Изменён интерфейс ISettingsUnitPlugin: в методах ValidateForStoreAsync, BeforeStoreAsync, AfterStoreAsync, AfterStoreFinallyAsync, BeforeRemoveAsync и AfterRemoveAsync параметр SettingsUnitRecord заменён на контекст операции SettingsUnitPluginContext. Прежний SettingsUnitRecord доступен через свойство контекста.

Изменения конфигурации при обновлении

  1. Рабочие места:

    • Administrator

    • User (добавлены узлы “Состояния запроса RAG”, “Типы коллекций RAG” в режиме отбора)

  2. Представления:

    • AbResolutions

    • AiRagCollections (добавлено)

    • AiRagCollectionTypes (добавлено)

    • AiRagFragments (добавлено)

    • AiRagRequests (добавлено)

    • AiRagRequestStates (добавлено)

    • CompletedTasks

    • EmittedTasks

    • MyCompletedTasks

    • MyTasks

    • Operations

    • OperationsPostponed (добавлено)

    • ProtocolCompletedTasks

    • ReportCurrentTasksByDepartment

    • ReportCurrentTasksByDepUnpivoted

    • ReportCurrentTasksByUser

    • ReportPastTasksByDepartment

    • ReportPastTasksByUser

    • SignatureArchive

    • TagCards

  3. Таблицы:

    • AbResolutions

    • Acl

    • AdSyncRoots

    • AiRagCollections (добавлена)

    • AiRagCollectionTypes (добавлена)

    • AiRagFragments (добавлена)

    • AiRagRequests (добавлена)

    • AiRagRequestStates (добавлена)

    • CompilationSource (добавлена)

    • DeviceTypes

    • FileVaultFolder

    • FileVaultFolderAccess

    • NormalizationSources

    • Operations

    • OperationsPostponed (добавлена)

    • OperationTypes

    • OperationUpdates

    • RoleTypes

    • ServerInstances

    • ViewRoles

    • Views

    • WorkplaceRoles

  4. Миграции:

    • AiRagVectorExtension (добавлена)
  5. Библиотеки схемы:

    • AiVector (добавлена)

    • Default

  6. Типы:

    • AdSync

    • BusinessProcessTemplate

    • CalendarCalcMethod

    • CompilationSource (добавлен)

    • ConditionType

    • CreateFileFromTemplate

    • FileTemplate

    • FileVaultStorage

    • KrVirtualFile

    • Metarole

    • RefGroup

    • RefGroupType

    • ServerInstance

  7. Формы:

    • AiRagMonitoring (добавлена)

    • AiRagMonitoringCollection (добавлена)

    • AiRagMonitoringRequest (добавлена)

    • AiRagSearchTab (добавлена)

    • AiRagSearchView (добавлена)

    • FileVaultEditQuota (добавлена)

    • FileVaultHomeFolders (добавлена)

    • RegistratorContracts (добавлена)

  8. Карточки:

    • ApprovalHistory

    • CancelButton

    • PrintableApprovalHistory

    • RejectButton

    • Server settings (settings) (необязательное изменение)

  9. Изменены библиотеки локализации.

Back to top