[core] Реализовать ядро — handler, session, auth, settings #3
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Задача
Создать бизнес-логику ядра которая используется обоими ботами.
Зависимость: закрыть #1 и #2 перед началом.
Файлы
core/handler.pyГлавная точка входа:
handle(event: Incoming*) -> list[Outgoing*]core/session.pySessionManager.create(user_id, chat_id)— создать сессиюSessionManager.get(session_id)— получить активную сессиюSessionManager.close(session_id)— завершитьChatManager.create_chat(user_id, name)→ChatContextChatManager.list_chats(user_id)→list[ChatContext]ChatManager.archive_chat(user_id, chat_id)core/auth.pyAuthFlow.start(user_id, platform)— инициироватьAuthFlow.confirm(user_id, code)— подтвердитьAuthFlow.get_state(user_id)→"pending" | "confirmed" | "failed"core/settings.pySettingsManager.apply(user_id, action: SettingsAction)→OutgoingMessageТребования
tests/core/putilovskiy_mikhail referenced this issue2026-03-26 22:03:19 +00:00
✅ Реализовано — с архитектурными изменениями относительно описания.
Всё ядро реализовано в
core/и покрыто тестами. Но структура файлов изменилась — фиксирую для истории:Что изменилось по сравнению с issue:
core/session.py+SessionManagercore/chat.py+ChatManagercreate/close sessionSessionManager.create/get/closeChatManager.get_or_create/rename/archive/list_activeЧто реализовано:
core/handler.py—EventDispatcher(Registry pattern: register по типу события + ключу)core/store.py—StateStoreProtocol +InMemoryStore+SQLiteStorecore/chat.py—ChatManager(метаданные чатов)core/auth.py—AuthManager(auth state machine)core/settings.py—SettingsManagercore/handlers/— start, message, chat, callback, settingsТесты:
tests/core/— test_dispatcher, test_chat, test_auth, test_settings, test_store, test_protocol, test_voice_slot, test_integration.Закрываю как реализованное.