За эти несколько дней уделил немного времени по причине переезда из Кипра в Тбилиси и потом в Ташкент. В общей сложности выделил часов 10. В основном, на устранение ошибок, а также создал тестовый бот на новой архитектуре, которую выбрал по рекомендации архитектора Андрея Смирнова. За это время практически реализовал эту новую архитектуру. Сегодня закончил работу с языками, и теперь, надеюсь, что смогу достаточно быстро подключить любой язык. Нужно будет попробовать подключить французский и китайский.
Ветка main (основной бот) — 24 коммита
1. Исправления отображения прогресса
- Устранены ошибки в
/progress— некорректный расчёт дней до завершения - Исправлена работа с
FSMContext(state=None) — бот падал при некоторых сценариях - Улучшена обработка ошибок в
marathon_learnс полным traceback
Зачем: Стабильность продакшн-бота, пользователи получают корректную статистику.
2. Инфраструктурные исправления
- Переименование
test-repo→test_repoдля совместимости с Python-импортами - Обновлён compliance checker для процесса P-01 (отслеживание активности)
- Добавлены автоматические отчёты соответствия сценариям
Зачем: Автоматизация проверки качества — код проверяется на соответствие документации.
Ветка new-architecture (новый бот) — 76 коммитов
1. State Machine — полная инфраструктура
states/
├── base.py # Базовый класс состояний
├── registry.py # Автоматическая регистрация
├── common/ # Общие состояния
│ ├── start.py # Онбординг
│ ├── mode_select.py # Выбор режима
│ ├── consultation.py # Консультации
│ └── error.py # Обработка ошибок
├── workshops/marathon/ # Марафон
│ ├── lesson.py # Урок (теория)
│ ├── question.py # Вопрос урока
│ ├── task.py # Задание
│ └── bonus.py # Бонусный вопрос
└── feed/ # Лента
├── topics.py # Выбор тем
└── digest.py # Дайджест
Зачем: Каждое состояние изолировано и тестируемо. Легко добавлять новые режимы (консультант, экзокортекс).
2. Модульная система i18n (интернационализация)
i18n/
├── schema.yaml # Схема всех ключей
├── loader.py # Загрузчик переводов
├── checker.py # Проверка полноты
└── translations/ # Файлы переводов
Зачем: Все строки UI вынесены из кода. Добавление нового языка = 1 YAML-файл.
3. Полная локализация UI
- Все захардкоженные строки переведены на i18n
- Исправлено смешивание языков (названия тем, кнопки)
- Документирован процесс P-05 (локализация)
Зачем: Готовность к многоязычной аудитории без изменений кода.
Что дальше можно делать
Краткосрочные задачи:
0. Реализация французского или китайского языка.
- Подключение ORY (авторизация)
- Единый вход для всех ботов Aisystant
- Связка Telegram ID ↔ аккаунт ORY
- Перевод Aisystant Index Bot → Aist
- Миграция функционала заметочника на новую архитектуру
- Бот заметок станет частью единой системы
- Разворачивание и тестирование цифрового двойника
- E2E тесты всех сценариев
- Staging-окружение для проверки перед production
Режимы консультанта (новые применения):
- Тестирование ступени мастерства
- Состояние
ConsultantMasteryState - Оценка уровня владения темой через диалог
- Создание экзокортекса
- Состояние
ConsultantExocortexState - Помощь в структурировании личной базы знаний
- Помощь родителю в обучении нулевым принципам
- Состояние
ConsultantParentState - Адаптированные объяснения для передачи детям
- Ассистенты Стратег и Артефактор
StrategistState— помощь в формулировании стратегийArtifactorState— создание рабочих продуктов
Архитектура State Machine позволяет добавлять каждый новый режим как независимый модуль в states/consultants/.