Задача
Перенести пул соединений и транспортный слой — самая связанная волна,
делается последней.
Модули
| Модуль |
Строк |
Связей с src/ |
src/telegram/pool_dialogs.py |
1993 |
7 |
src/telegram/backends.py |
1030 |
8 |
src/telegram/pool_lifecycle.py |
692 |
11 |
src/telegram/client_pool.py |
210 |
19 |
src/telegram/account_lease_pool.py |
191 |
4 |
~4100 строк. client_pool.py — рекордсмен по связности (19), но сам по себе мал:
это композиция миксинов (после #1046), а не логика.
Что здесь сложного
- Лизинг ≠ подключение. Соединения в пуле постоянные
(pool_lifecycle.py:611, disconnect_on_close=False); лиз — это резервация
аккаунта под операцию, а не поднятие связи. Сохранить эту семантику.
- Подмена объекта клиента.
pool_lifecycle.py:507, 548, 600 молча заменяют
clients[phone] на новый TelegramTransportSession. Это уже сейчас ловушка
(для будущего слушателя — критичная), при переезде легко потерять.
- Три уровня реконнекта с разной семантикой: авто-реконнект Telethon,
reconnect_phone, force_reconnect_phone.
pool_dialogs.py — почти 2000 строк, содержит 34 точки вызова прогрева
диалогов (операция, дающая 85 % всех флудов). Кандидат на разбиение,
но не в рамках переезда — переносить как есть, чтобы диф был читаемым.
Acceptance Criteria
Контекст
Этап 1.4 эпика #1416. Зависит от 1.1-1.3.
Задача
Перенести пул соединений и транспортный слой — самая связанная волна,
делается последней.
Модули
src/src/telegram/pool_dialogs.pysrc/telegram/backends.pysrc/telegram/pool_lifecycle.pysrc/telegram/client_pool.pysrc/telegram/account_lease_pool.py~4100 строк.
client_pool.py— рекордсмен по связности (19), но сам по себе мал:это композиция миксинов (после #1046), а не логика.
Что здесь сложного
(
pool_lifecycle.py:611,disconnect_on_close=False); лиз — это резервацияаккаунта под операцию, а не поднятие связи. Сохранить эту семантику.
pool_lifecycle.py:507, 548, 600молча заменяютclients[phone]на новыйTelegramTransportSession. Это уже сейчас ловушка(для будущего слушателя — критичная), при переезде легко потерять.
reconnect_phone,force_reconnect_phone.pool_dialogs.py— почти 2000 строк, содержит 34 точки вызова прогревадиалогов (операция, дающая 85 % всех флудов). Кандидат на разбиение,
но не в рамках переезда — переносить как есть, чтобы диф был читаемым.
Acceptance Criteria
clients[phone]явно задокументированы в пакете какизвестная ловушка (пригодится для этапа 2).
lint-importsзелёный; контракт «энтрипоинты не импортируют telethon»сохранён и распространён на новый пакет.
Контекст
Этап 1.4 эпика #1416. Зависит от 1.1-1.3.