# Дорожная карта I2PChat **Версия репозитория:** `1.3.0` (см. [`VERSION`](../VERSION)). Разделы ниже — **исходный продуктовый план** (0.6.x → `1.0.0`). По факту эта линейка **в основном реализована** в релизах до **1.3.x**; детали — в [`releases/README.md`](releases/README.md). **`SessionManager`** (жизненный цикл транспорта на peer) появился в **v1.2.6**. **Текстовые группы** оформлены релизом **v1.3.0** ([RELEASE_1.3.0.md](releases/RELEASE_1.3.0.md)); код — `i2pchat/groups/`, `i2pchat/storage/group_store.py`; поведение — в [MANUAL_EN.md](MANUAL_EN.md) / [MANUAL_RU.md](MANUAL_RU.md). ## Снимок (1.2.x) | Область | Комментарий | |--------|-------------| | UX диалогов | Сохранённые peer’ы, черновики, непрочитанное, статусы доставки, контакты, поиск | | Trust / офлайн | TOFU, смена ключа, BlindBox, диагностика, политики retry | | Переносимость | PyInstaller zip, опциональный bundled `i2pd`, шаблоны `.deb` / Homebrew / winget / AUR | | Ядро | `I2PChatCore` + **`SessionManager`** (исходящая политика, телеметрия, переподключение) | | Группы | Текстовые группы (**v1.3.0**): live + парный BlindBox; см. **PROTOCOL.md** § Text groups, **RELEASE_1.3.0.md** | ## Основные принципы - Менять протокол и транспорт только там, где это даёт явную пользовательскую ценность. - Сначала раскрывать уже существующие возможности через UX, а затем добавлять новую сложность. - Сохранять privacy-first характер проекта. - **Синхронизация нескольких устройств в реальном времени**, **плагины** и **широкая автоматизация** — отдельный, более рискованный горизонт. ## Исходные вехи (справочно) Подразделы сохраняют **формулировки плана**; ожидаемые результаты в целом соответствуют текущему приложению, если в [`ISSUE_BACKLOG_RU.md`](ISSUE_BACKLOG_RU.md) нет открытого пункта. ## 0.6.5 - Полировка UX Цель: сделать приложение заметно удобнее в повседневном использовании без крупных архитектурных изменений. Планируемые направления: - Черновики сообщений по контактам - Счётчики непрочитанных и индикаторы в окне/трее - Упрощённые статусы подключения и доставки - Контекстные действия над сообщениями (`Copy`, `Reply`, действия для вложений) - Настройки уведомлений (звук, тихий режим, скрытие текста сообщения) - Более понятная обратная связь при отправке вложений и ошибках transfer Ожидаемый результат релиза: - пользователь не теряет текст при переключении контекста; - видно, какие диалоги требуют внимания; - поведение сети и доставки становится понятнее; - базовые действия с сообщениями ощущаются естественно. ## 0.7.0 - Контакты и диалоги Цель: развить приложение из клиента одной peer-сессии в мессенджер с диалоговой моделью. Планируемые направления: - Боковая панель контактов / список диалогов - Локальные имена и заметки для контактов - Восстановление последнего активного диалога - Превью диалогов (последнее сообщение, время, непрочитанное) - Поиск по истории текущего диалога - Базовая карточка контакта / trust card Ожидаемый результат релиза: - пользователь быстро переключается между сохранёнными контактами; - история переписки становится частью обычной навигации; - идентичность контакта удобнее управляется без потери реального I2P-адреса. ## 0.8.0 - Доверие, доставка, понятный офлайн-режим Цель: сделать сильные отличия продукта понятными прямо в интерфейсе. Планируемые направления: - UI очереди исходящих сообщений - Статусы доставки на каждом сообщении (`sending`, `queued`, `delivered`, `failed`) - Явный сценарий предупреждения о смене ключа - Более понятный UX вокруг pinning и lock-to-peer - Экран диагностики BlindBox - Retry для неуспешных отправок там, где это безопасно и предсказуемо Ожидаемый результат релиза: - пользователь понимает, было ли сообщение отправлено live или поставлено в офлайн-очередь; - изменения trust-состояния видны явно, а не спрятаны во внутренней логике; - проблемы офлайн-доставки можно диагностировать. ## 0.9.0 - Переносимость, приватность, укрепление надёжности Цель: сделать приложение пригодным для более долгого реального использования. Планируемые направления: - Зашифрованный экспорт профиля - Импорт / восстановление профиля - Зашифрованный экспорт и импорт истории - Настройки retention истории - Privacy mode (скрытие уведомлений, опциональный локальный lock) - Drag-and-drop вложений - Улучшение retry для transfer и медиа - Усиление тестов и диагностики протокола и передач Ожидаемый результат релиза: - backup/restore состояния через зашифрованные бандлы; - сильнее локальные privacy-контроли; - выше предсказуемость перед `1.0.0`. ## 1.0.0 - Стабильный нишевый релиз Цель: выпустить стабильный privacy-focused релиз с понятной диалоговой моделью и предсказуемым UX доставки и trust. Минимально ожидаемое состояние: - удобный сценарий диалогов и контактов; - поиск по локальной истории; - понятные статусы доставки; - явный UX смены ключа и trust; - диагностика BlindBox; - практичные пути backup/restore; - лучшее покрытие надёжности для протокола и transfer. Ожидаемый результат релиза: - зашифрованные backup/export/import для профиля и истории доступны из меню **⋯**; - retention истории настраивается по количеству сообщений и возрасту; - privacy mode доступен как быстрый локальный переключатель; - drag-and-drop файлов и изображений поддерживается через поле ввода; - тестовое покрытие усилено для истории, backup/restore и регрессий. ## После 1.2.x / будущие кандидаты **Выпущено в v1.3.0:** текстовые группы, входящие по Saved peers, несколько live-сессий — см. [RELEASE_1.3.0.md](releases/RELEASE_1.3.0.md). Долгий горизонт (без фиксированных сроков): - **синхронизация между несколькими устройствами в реальном времени** (одна личность, несколько онлайн-клиентов); - **плагины или система скриптов**; - **более широкие поверхности автоматизации** помимо локальных предпочтений. ## Связанные документы Детализированный backlog: [`ISSUE_BACKLOG_RU.md`](ISSUE_BACKLOG_RU.md). Заметки к релизам: [`releases/README.md`](releases/README.md).