Skip to content
Merged
Show file tree
Hide file tree
Changes from 28 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
---
name: Отчет об ошибке
about: Создайте отчет об ошибке, чтобы помочь улучшить продукт
about: Создайте отчет об ошибке, чтобы помочь улучшить библиотеку
title: ''
labels: ''
assignees: ''
labels: bugs
assignees: max36895
---

### Опишите ошибку
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: Запрос нового функционала
about: Предложите идею по улучшению продукта
about: Предложите идею по улучшению библиотеки
title: ''
labels: question
assignees: max36895
Expand Down
68 changes: 0 additions & 68 deletions .github/workflows/codeql-analysis.yml

This file was deleted.

2 changes: 2 additions & 0 deletions .github/workflows/release-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ on:
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/unit-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ on:
pull_request:
branches: [main]

permissions:
contents: read

jobs:
unitTest:
name: unitTest
Expand Down
51 changes: 49 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,55 @@
Все значимые изменения в проекте umbot документируются в этом файле.
Формат основан на [Keep a CHANGELOG](http://keepachangelog.com/).

## [2.1.0] - 2025-19-05
## [2.2.x] - 2025-30-11

### Добавлено

- Возможность в logger указать метрику.
- Возможность указать кастомный обработчик команд
- Автоопределение типа приложения на основе запроса
- Метод для задания режима работы приложения bot.setAppMode
- stress test для проверки библиотеки под нагрузкой
- Добавлена поддержка re2 для обработки регулярных выражений. Благодаря этому потребление памяти может
сократиться, а также время обработки регулярных выражений ускорится примерно в 2-6 раз
- Добавлено предупреждение при добавлении большого количества команд

### Обновлено

- Ошибки во время работы приложения записываются как ошибки, а не как обычные логи
- Оптимизирована логика поиска нужного текста
- Поиск опасных регулярных выражений(ReDos) в интентах
- Сохранение логов стало асинхронной операцией
- Произведена оптимизации работы библиотеки
- Поправлены шаблоны навыков в cli
- Удалены устаревшие методы
- Метод bot.initBotController принимает класс на BotController. Поддержка передачи инстанса осталась, но будет удалена в
следующих обновлениях
- Удалена возможность указать тип приложения через get параметры.
- Более детальные логи при получении ошибки во время обращения к платформе
- Оптимизирована работа с регулярными выражениями
- Оптимизирована работа с файловой базой данных. Запись происходит асинхронно, и не так часто как ранее. Раньше запись
происходила на каждое сохранение, сейчас данные из базы хранятся в памяти, и запись происходит через 500мс после
бездействия.
- Доработан механизм поиска значений в файловой бд, теперь если идет поиск по ключу и данного ключа нет, поиск
отрабатывает за O(1), а не за O(n), также если поиск идет только по ключу, то поиск также будет составлять O(1)
- Для удобства, константа FALLBACK_COMMAND стала иметь значение "\*", данный подход позволяет просто указать
`bot.addCommand("\*",[], () => {...})`, чтобы указать команду для действия, когда нужная команда не была найдена
- Повышена производительность библиотеки

### Исправлено

- Архитектурная проблема, из-за которой приложение могло работать не корректно под нагрузкой
- Ошибки с некорректной отправкой запроса к платформе
- Ошибка когда benchmark мог упасть, также доработан вывод результата
- Ошибка когда логи могли не сохраняться
- Ошибка с некорректной записью и чтением результатов из файловой бд
- При завершении работы приложения, сбрасываются все команды и происходит отключение от бд
- Ошибка в benchmark из-за чего он показывал результат лучше, чем есть на самом деле. Особенно на регулярных выражениях
- Ошибка с некорректным сбросом подключения к бд
- Проблема, когда при относительно большой файловой бд(более 10000 записей), время обработки могло сильно просесть.

## [2.1.0] - 2025-19-10

### Добавлено

Expand Down Expand Up @@ -40,7 +88,6 @@
- Ошибки в cli
- Исправлена ошибка, когда поиск по регулярному выражению мог возвращать не корректный результат
- Ошибки с некорректным отображением документации
- Ошибки с некорректной отправкой запроса к платформе

## [2.0.0] - 2025-05-08

Expand Down
34 changes: 32 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,8 @@

## 🧩 Поддерживаемые платформы

| Платформа | Идентификатор | Статус |
| ------------------ | ------------------ | :------------------: |
| Платформа | Идентификатор | Статус |
|--------------------|--------------------|:-------------------:|
| Яндекс.Алиса | `alisa` | ✅ Полная поддержка |
| Маруся | `marusia` | ✅ Полная поддержка |
| Сбер SmartApp | `smart_app` | ✅ Полная поддержка |
Expand Down Expand Up @@ -138,6 +138,36 @@ export class EchoController extends BotController {

- [CLI](./cli/README.md) команды

## Рекомендации

### re2

Библиотека поддерживает работу с re2. За счет использования данной библиотеки, можно добиться существенного ускорения
обработки регулярных выражений, а также добиться сокращения по потреблению памяти. По памяти потребление уменьшается
примерно в 3-7 раз, а время выполнения увеличивается в среднем в 2-15 раз.
Для корректной установки на window нужно следовать [инструкции](https://github.com/nodejs/node-gyp#on-windows),
установив python3.13, а также инструменты visual studio. Установка на linux или mac происходит без лишних действий.
Также стоит учитывать что последние версия re2(1.21 и выше) не поддерживает работу nodejs 18, поэтому необходимо
установить версию 1.20.12. Если вы используете nodejs 20 и выше, то лучше установить актуальную версию.
Установка:

```bash
npm install --save re2@latest
```

Дальше библиотека сама определит установлен re2 или нет, и в случае если он установлен, все регулярные выражения будут
обрабатываться через него.

### Хранение данных пользователей

Не рекомендуется использовать в релизной версии приложения файловую базу данных, так как данный подход может привести к
падению приложения, при большом количестве записей. Связано это с тем, что в файловой базе данных, данные в основном
хранятся в оперативной памяти.
Для сохранения данных в БД укажите:

1. поле `db` в настройке приложения `bot.setAppConfig({db:{...}})`
2. укажите свое подключение к БД через `bot.setUserDbController(new DbConnect());`

## 📝 Лицензия

MIT License. См. [LICENSE](./LICENSE) для деталей.
Expand Down
5 changes: 3 additions & 2 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,9 @@

| Версия | Статус поддержки | Окончание поддержки |
| ------ | -------------------- | ------------------- |
| 2.1.x | ✅ Поддерживается | - |
| 2.0.x | ✅ Поддерживается | - |
| 2.2.x | ✅ Поддерживается | - |
| 2.1.x | ✅ Поддерживается | 31.12.2026 |
| 2.0.x | ✅ Поддерживается | 31.12.2025 |
| 1.5.x | ❌ Поддерживается | 31.10.2025 |
| 1.1.x | ❌ Поддерживается | 31.10.2025 |
| ≤ 1.0 | ❌ Не поддерживается | - |
Expand Down
Loading
Loading