Команды бота

    Редактирование файла

    Создать автоматизацию

    Создать правило автоотправки

    Переслать сообщение в...

    • Загрузка списка групп...

    TotalMessenger · Локальный прототип мессенджера

    totalmessenger-cover.jpg

    Android Phase 0: контакты, текстовые сообщения, очередь исходящих и фоновая попытка доставки. Реальной SMTP/HTTP/mesh-отправки нет — email-транспорт сейчас stub. Не путать с MeshMessenger.

    Возможности

    • Экран чата — Jetpack Compose, один чат default-chat.
    • Контакты — имя, телефон, email, Wi-Fi ID, Bluetooth ID.
    • Outbox — сообщение пишется в Room как PENDING, дальше WorkManager.
    • Статусыpending, sent, delivered, failed (stub обычно ставит sent).
    • Роутер транспорта — всегда EMAIL; EmailTransportEngine ждёт 150 мс и отвечает успехом.

    Нет сети, нет permission INTERNET, нет выбора чата, нет Gradle wrapper.

    Требования

    • Android 8 (API 26)+, compile/target SDK 35.
    • Android Studio, JDK 17, установленный Gradle (wrapper в репозитории нет).

    Установка и запуск

    Откройте D:\AndroidProjects\TotalMessenger в Android Studio, синхронизируйте Gradle.

    gradle :app:assembleDebug
    gradle :app:installDebug

    Использование

    Контакт и сообщение

    1. Запустите приложение.
    2. Добавьте контакт (пустые optional-поля очищаются).
    3. Введите текст и отправьте.
    4. Сообщение появляется в ленте; фоновый worker меняет статус с PENDING на SENT.

    Получатель захардкожен (me / peer). На другой телефон ничего не уходит.

    Структура проекта

    TotalMessenger/
    ├── app/                 # модуль :app
    ├── doc/
    ├── README.md
    ├── build.gradle.kts
    └── settings.gradle.kts

    Слои, Room и outbox — в doc/ARCHITECTURE.md.

    Технологии

    • Kotlin 1.9.24, AGP 8.5.2, JVM 17.
    • Compose + Material3, ViewModel, Flow.
    • Room 2.6.1total-messenger.db, schema 1, exportSchema = true.
    • WorkManager 2.9.0OutboxWorker.
    • AppContainer — ручной DI, без Hilt/Koin.

    Разрешения

    В манифесте сетевых permission нет. Данные только локально в Room.

    История изменений

    Формат основан на Keep a Changelog.

    [Unreleased]

    Changed

    • README приведён к лицу продукта: заголовок с «·», честно Phase 0 и stub-транспорт; убраны бейджи, плейсхолдеры скриншотов и roadmap.
    • doc/AI_RULES.md: канон AndroidProjects\TotalMessenger, не путать с MeshMessenger.

    [1.0.0] — 2026-05-28

    Added

    • Добавлен одномодульный Android-проект TotalMessenger с модулем :app.
    • Добавлен Compose UI для базового экрана чата и формы контактов.
    • Добавлены доменные модели Message и Contact.
    • Добавлены use case для отправки сообщения и добавления контакта.
    • Добавлено Room-хранилище total-messenger.db с таблицами messages и contacts.
    • Добавлен outbox flow: сообщения сохраняются как PENDING, затем обрабатываются через WorkManager.
    • Добавлен транспортный слой: MessageRouter, TransportEngine, EmailTransportEngine.

    Технические заметки: отправка не выполняет реальную доставку из UI. SendMessageUseCase создаёт pending-запись, OutboxWorkScheduler ставит OutboxWorker.

    Changed

    • Архитектура зафиксирована как слои ui -> domain -> data, пакеты work и di.
    • DI вручную через AppContainer, без Hilt/Koin.
    • Роутинг Phase 0 всегда выбирает TransportType.EMAIL.

    Fixed

    • На момент создания документации отдельные багфиксы не зафиксированы.

    Edit Message

    Attachments:

    AI Assistant

    Enter your instruction to edit the text: