Commit Graph

15 Commits (9f906af400d8859700dc201facde06028df9ec9e)

Author SHA1 Message Date
mirivlad 02971d83ef v0.7.5: Исправление кнопки Отмена в редактировании сервера
Проблема:
- При нажатии ' Отмена' в режиме редактирования сервера
  бот продолжал ждать ввода и игнорировал другие команды

Исправление:
- Добавлен сброс состояния (waiting_for_input, input_type, editing_server, context)
  при нажатии кнопки 'server_menu' в menu_callback

Теперь:
- Кнопка ' Отмена' корректно возвращает в меню серверов
- Бот больше не зависает в режиме ожидания ввода

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-28 11:36:34 +08:00
mirivlad 81148ee567 v0.7.3: Косметические изменения в меню
Удалено из меню:
- Команда /ai из списка команд бота
- Кнопка 'Управление доступом' из меню настроек
- Кнопка 'AI-провайдер' из меню настроек

Также удалены обработчики:
- access_menu, show_access, add_access, remove_access
- ai_provider_menu, ai_provider_toggle, ai_provider_info

Команды /ai* и AI-провайдеры остаются доступными через:
- /ai_presets, /ai_off, /ai_qwen, /ai_giga_*
- Прямые команды /ai

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-28 11:25:48 +08:00
mirivlad d2f22ee149 v0.7.2: Исправление зависания бота и обработки длинного вывода
Исправленные проблемы:
- Бот зависал после выполнения команд из кнопок меню
- PTY цикл зацикливался при ошибке чтения ([Errno 5] Input/output error)
- CallbackQuery обрабатывался неправильно (effective_user vs from_user)
- Длинные сообщения разбивались с неправильным экранированием Markdown
- Event loop блокировался при ожидании кнопок Продолжить/Отменить

Изменения:
1. bot/utils/ssh_readers.py — исправлено зависание read_pty_output()
2. bot/utils/formatters.py — переписана send_long_message() без блокировки event loop
3. bot/handlers/callbacks.py — обработка кнопок continue_output_/cancel_output
4. bot/models/user_state.py — добавлены поля для управления выводом
5. bot/services/command_executor.py — ограничитель итераций в цикле PTY
6. bot/utils/formatters.py — escape_markdown() не экранирует содержимое блоков кода
7. bot.py — мелкие исправления

Теперь:
- Кнопки меню работают корректно
- Длинный вывод разбивается на части с кнопками Продолжить/Отменить
- Бот не зависает и продолжает обрабатывать команды
- Markdown рендеринг работает правильно

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-28 11:10:29 +08:00
mirivlad 577bfce85e fix: используем state.output_wait_message вместо wait_msg
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-27 20:11:57 +08:00
mirivlad d20092730e fix: polling подход для ожидания кнопок вместо asyncio.Event
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-27 20:01:28 +08:00
mirivlad 42e1043f28 feat: добавлено логирование для отладки кнопок
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-27 19:55:35 +08:00
mirivlad d0f91d7daa fix: используем asyncio.Event для неблокирующего ожидания кнопок
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-27 19:49:19 +08:00
mirivlad 85947754c7 fix: кнопки удаляются сразу после нажатия, ожидание бесконечное
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-27 19:20:48 +08:00
mirivlad fbf0edc60a v0.7.2: Улучшения AI-провайдеров, инструменты и обработчики
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-27 18:07:57 +08:00
mirivlad e538d84e13 v0.7: AI Provider Manager для работы с любым AI-провайдером (Qwen, GigaChat)
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-26 23:21:20 +08:00
mirivlad a13db1490b feat: добавить команду /compact в меню памяти ИИ
- Добавлена кнопка '🔄 Компактификация' в меню memory_menu
- Реализован callback handler для memory_compact
- Компактификация запускается из меню с отображением прогресса
- Исправление: команда /compact теперь доступна через меню

Version: 0.5.3

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-25 14:39:57 +08:00
mirivlad b748ceefb7 fix: исправить вызов метода get_tool() → get() в ToolsRegistry
- bot.py: исправить tools_registry.get_tool() на tools_registry.get()
- bot/handlers/commands.py: исправить tools_registry.get_tool() на tools_registry.get()

Исправляет ошибку AttributeError при запуске бота

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-25 13:39:18 +08:00
mirivlad f559c83baa feat: интеллектуальная cron-система с AI-агентом
Основные изменения:
- CronJob теперь хранит prompt для ИИ вместо команды
- Добавлены поля: user_id, notify, log_results
- Задачи выполняются через AI-агент (автономный выбор инструмента)
- Планировщик проверяет задачи каждую минуту
- Уведомления отправляются в Telegram (если notify=True)
- Результаты сохраняются в cron_logs/ (если log_results=True)
- Добавлена команда /cron для управления задачами
- Обновлена БД и модель данных

Новые файлы:
- bot/services/cron_scheduler.py - планировщик задач
- CRON_SYSTEM.md - документация

Изменённые файлы:
- bot/tools/cron_tool.py - обновлён для работы с промптами
- bot/handlers/commands.py - добавлена cron_command
- bot.py - интеграция планировщика, регистрация команды
- .gitignore - исключение cron_logs/

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-25 12:36:32 +08:00
mirivlad e9186e9dd2 refactor: разделение хендлеров и сервисов по модулям
- bot/handlers/commands.py - команды (/start, /menu, /help, /settings)
- bot/handlers/callbacks.py - callback от меню (468 строк)
- bot/services/command_executor.py - выполнение команд (299 строк)
- bot.py сокращён до 1330 строк (было 2365, -1000 строк!)

Итого:
- models: 425 строк
- utils: 384 строки
- keyboards: 200 строк
- handlers: 600 строк
- services: 300 строк
- bot.py: 1330 строк (точка входа + хендлеры сообщений)

Version: 0.5.1

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-24 23:47:12 +08:00
mirivlad d1592c7b38 refactor: модульная структура бота (v0.5.0)
Рефакторинг кода бота для улучшения поддерживаемости:

Структура:
- bot/models/ — модели данных (Server, UserState, сессии)
- bot/utils/ — утилиты (очистка текста, форматирование, декораторы)
- bot/keyboards/ — Inline-клавиатуры и меню
- bot/services/ — бизнес-логика (выполнение команд)
- bot/handlers/ — обработчики событий (пустые для будущего заполнения)
- bot/config.py — конфигурация и глобальные объекты

Изменения:
- bot.py сокращён с 3240 до 2364 строк (-900 строк дубликатов)
- Все модели перенесены в отдельные модули
- Утилиты разделены по назначению (cleaners, formatters, decorators)
- Меню вынесено в keyboards/menus.py
- Импорты из новой структуры через bot.config и bot.models

Преимущества:
- Лучшая организация кода
- Упрощённое тестирование модулей
- Легче добавлять новый функционал
- Чёткое разделение ответственности

Version: 0.5.0

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-24 23:32:26 +08:00