Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
50 changes: 34 additions & 16 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,39 @@
# Changelog

## [4.0.26] - 2026-09-17

### Added

- **Telegram-бот: полноценный i18n (ru/en)** — все сообщения, меню и подписи бота переведены и вынесены в новый модуль `botsrc/i18n.js`:
- язык бота хранится отдельно от языка UI (ключ `telegramLanguage` в `cuckoo-settings.json`), по умолчанию — системный;
- при первом `/start` бот показывает выбор языка (кнопки 🇷🇺 Русский / 🇬🇧 English);
- меню команд `/` в Telegram регистрируется через `setMyCommands` на выбранном языке.
- **Telegram-бот: приём вложений** — можно отправить боту фото или документ, он скачает файл и прикрепит его в поле ввода активного чата:
- скачивание через `getFile` → `api.telegram.org/file/bot<token>/<file_path>` во временную папку `userData/tgtemp`;
- изображения вставляются как картинка (clipboard + `Ctrl+V`, как у `read_photo`), остальные файлы — через `DataTransfer` + `change`;
- MIME определяется по расширению, временный файл удаляется после прикрепления.
- **Telegram-бот: список сессий и переключение** — команды `/sessions` (постраничный список сессий проекта) и `/switch <id>` для переключения активной сессии.
- **Telegram-бот: пагинация длинных списков** — `/sessions`, `/log`, `/todos`, `/diff` разбиты на страницы по 10 элементов с кнопками «Назад / Вперёд».
- **Telegram-бот: новая команда `/todos`** — список задач активного окна с иконками статуса (`☐` / `◔` / `☑`) и пагинацией.
- **Telegram-бот: ограничение по User ID** — новая настройка `telegramAllowedUserId`: если задана, бот принимает сообщения только от этого пользователя (в дополнение к проверке `chat_id`).
- **Telegram-бот: игнор-лист уведомлений** — новая настройка `telegramToolNotifyIgnore` (список имён tool по одному в строке), уведомления о которых не отправляются. По умолчанию исключены «шумные» `read`, `readLines`, `glob`, `grep`, `todoWrite`.
- **Настройки: секция языка бота** — в меню `/settings` Telegram-бота добавлена отдельная страница «Язык» с выбором ru/en.

### Changed

- **Telegram-бот: меню настроек переведено на i18n и переструктурировано** — страницы (`ui`, `glass`, `agent`, `tg`, `lang`) собираются из локализованных ключей `label.*` / `settings.*`; лейблы кнопок и значения форматируются через `_t()`.
- **Рефакторинг `settings-tab.js`** — единый стиль (двойные кавычки, форматирование), переработаны привязки полей Telegram-настроек (добавлены `allowedUserId` и `notifyIgnore`), без изменения пользовательского поведения.
- **`botsrc/telegram.js`** — `configure()` принимает третий параметр `allowedUserId`; добавлены методы `setMyCommands()` и `downloadFile()`; long-polling пропускает сообщения без текста/фото/документа.
- **`settings-store.js`** — новые дефолты: `telegramLanguage`, `telegramAllowedUserId`, `telegramToolNotifyIgnore`; `telegramLanguage` подтягивается из системного языка, если пользователь его не выбирал.

### Fixed

- **Настройки Telegram: конфликт языка** — язык бота больше не перезаписывается языком UI; смена языка UI не влияет на язык бота (и наоборот).

### Removed

- Удалён вывод старых версий из CHANGELOG (оставлены только 4.0.26 и 4.0.25).

## [4.0.25] - 2026-09-17

### Added
Expand All @@ -19,19 +53,3 @@
- валидация и тосты переписаны под новые единицы.
- **i18n для настроек задержки** — сообщения об ошибках и сохранении переведены на ru/en (ранее были захардкожены на китайском): ключи `overlay.delay.*`.
- Исправлена вёрстка строки задержки в overlay — подписи «до» и «сек» больше не переносятся по буквам (отдельный класс `.cuckoo-delay-label` вместо `.cuckoo-blur-label` с `space-between`).

## [4.0.24] - 2026-09-16

### Added

- **Цветные иконки файлов (Material Icon Theme)** — рядом с именами файлов теперь рисуется иконка по типу файла (расширению/имени):
- в чипах путей внутри ответов AI;
- в блоке «Затронуто» под ответом;
- в меню @-упоминаний файлов.
Иконки берутся из пакета `material-icon-theme` (~1377 расширений, ~2135 спец-имён) через IPC `get-file-icons`; неизвестные типы показывают контурный документ.
- **Регистронезависимый @-поиск файлов** — `@lua` находит `Sample.LUA` и наоборот (в ripgrep для `@`-поиска используется `--iglob` вместо регистрозависимого `--glob`).

### Changed

- **Меню slash-команд `/`** оставлено без иконок — иконки показываются только в списке файлов (`@`).
- Список файлов в меню `@` выровнен по левому краю с иконкой 16×16 (папка — SVG, файл — Material-иконка).
Loading
Loading