Skip to content

1.6 мессенджер переходит на пакет, его форк flood-логики удаляется #1425

Description

@axisrow

Задача

Перевести tg_messenger на новый пакет и удалить его форк flood-логики.

Что удаляется в мессенджере

tg_messenger/core/flood.py прямо объявляет себя копией:

Slim, dependency-free FloodWait handling vendored from the main project
Mirrors the discipline of src/telegram/flood_wait.py in tg_content_factory.

Константы (60 с / 120 с) скопированы дословно. При этом форк строго слабее
оригинала: нет персистентности, нет автостопа, нет наблюдаемости,
обёртка ретрая применяется вручную на ~30 местах и уже имеет пропуск
(core/client.py:494iter_messages вызывается сырым).

Кандидаты на удаление после перехода:

Что остаётся в мессенджере

Живое общение: listen*(), MessageStore, AgentRunner, TUI, web-чат,
ghostwrite, модерация — то есть верхний слой, ради которого проект существует.

Риски

  • Мессенджер версии 0.1.0, без тегов и changelog — перед изменениями
    завести версионирование, иначе фабрика (которая стоит на editable-чекауте)
    сломается молча.
  • core/client.py — 1080 строк, StandaloneTelegramClient завязан на свою
    модель подключения (external_session, client_factory). Замена внутренностей
    на пакет — не механическая, нужен дизайн.
  • Мессенджер остаётся одноаккаунтным. Пул, ротация и лизинг в пакет
    не переезжают (остаются в фабрике) — не пытаться их сюда протащить.

Acceptance Criteria

  • Мессенджер использует слой Telegram из пакета.
  • core/flood.py удалён; функциональность не потеряна.
  • Мессенджер получает возможности, которых у него не было: персистентность
    флуда, автостоп (breaker), наблюдаемость
    . Ротацию аккаунтов НЕ получает —
    он одноаккаунтный, пул остаётся в фабрике.
  • Мессенджер продолжает ставиться и работать самостоятельно, без фабрики:
    pip install, один аккаунт, своё хранилище. Явный тест/прогон.
  • Тесты мессенджера зелёные; свои ~15 тестов флуда заменены на покрытие
    пакета.
  • Версионирование заведено (теги + changelog), фабрика пинится точно.
  • Оба проекта работают на одном пакете одновременно.

Контекст

Этап 1.6 эпика #1416, финал переезда. Зависит от 1.5.
Затрагивает #1148 (обмен session string) — сверить.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    refactorCode restructuring without behavior change

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions