Thunderbird Chat · Почта как мессенджер

Расширение Thunderbird (MailExtension): переписка по почте в двухколоночном интерфейсе, как в мессенджере. Слева — корреспонденты (люди, не отдельные письма), справа — цепочка сообщений с выбранным контактом. Прототип без сборки и внешних зависимостей.
Возможности
- Список корреспондентов — группировка входящих по отправителю, исходящих — по каждому внешнему получателю.
- Двухколоночный чат — контакты слева, переписка справа; входящие и исходящие визуально различаются.
- Индексация папок — Inbox, Sent и Archives всех аккаунтов Thunderbird.
- Обновление индекса — кнопка Refresh пересобирает данные в памяти.
- Открытие из панели — кнопка Chat View на панели инструментов открывает UI во вкладке Thunderbird.
- Запасные точки входа — страница настроек расширения (
options_ui) и popup-окно, если вкладку открыть не удалось. - Настройка вида — CSS-переменные в
src/sidebar/sidebar.css(ширина колонки, акцент, фон, пузыри).
Ограничения прототипа (v0.4): в UI показываются тема, дата и направление письма, не полное тело; индекс только в памяти и не сохраняется между перезапусками; на очень больших ящиках первая индексация может быть медленной.
Требования
- Thunderbird с поддержкой MailExtension API (Manifest V2, major version 2).
- Аккаунты почты, уже настроенные в Thunderbird.
- Права расширения: чтение аккаунтов и сообщений, создание вкладок.
Сборка, Node.js и упаковка не нужны — plain JavaScript.
Установка и запуск
- Откройте Thunderbird.
- Инструменты → Дополнения и темы → Отладка дополнений (Debug Add-ons).
- Load Temporary Add-on… — укажите
manifest.jsonиз корня этого репозитория. - На панели инструментов нажмите Chat View — откроется вкладка с интерфейсом чата.
- Если кнопка не сработала: в менеджере дополнений найдите Thunderbird Chat View и откройте страницу настроек/опций.
Расширение ставится как временное (temporary add-on). Для постоянной установки нужна подпись и упаковка XPI — в текущем прототипе не реализовано.
Использование
Первый запуск
- После загрузки расширения откройте Chat View.
- Фоновый скрипт проиндексирует Inbox, Sent и Archives.
- Слева появится список корреспондентов, отсортированный по дате последнего письма.
- Выберите контакт — справа отобразятся сообщения в хронологическом порядке.
Обновление данных
Нажмите Refresh на панели чата — индекс пересоберётся заново. Используйте после получения новой почты, если вкладка уже была открыта.
Внешний вид
Отредактируйте переменные в :root файла src/sidebar/sidebar.css:
| Переменная | Назначение |
|————|————|
| --chat-left-column-width | ширина списка контактов |
| --chat-accent-color | акцентный цвет |
| --chat-bg, --chat-fg | фон и основной текст |
| --chat-incoming-bg, --chat-outgoing-bg | фон пузырей входящих/исходящих |
| --chat-message-radius | скругление пузырей |
После правок CSS перезагрузите вкладку чата или временное дополнение.
Структура проекта
@ThunderbirdChat/
├── manifest.json # манифест MailExtension
├── src/
│ ├── background.js # индексация, API, открытие вкладки
│ └── sidebar/
│ ├── sidebar.html # разметка двух колонок
│ ├── sidebar.css # стили и CSS-переменные
│ └── sidebar.js # UI и сообщения к background
├── icons/
│ └── icon.svg
└── doc/
Потоки данных и модель индекса — в doc/ARCHITECTURE.md.
Технологии
- Thunderbird MailExtension API —
messenger.accounts,messages,tabs,browserAction. - Manifest V2 —
background.scripts, без service worker. - Plain JavaScript (ES2020+) — без transpile и bundler.
- HTML5 + CSS3 — шаблоны через
<template>, тёмная тема по умолчанию.
Разрешения и интеграции
| Разрешение | Зачем |
|————|——-|
| accountsRead | список аккаунтов и собственных адресов (incoming vs outgoing) |
| messagesRead | чтение писем из Inbox, Sent, Archives |
| tabs | открытие UI чата во вкладке Thunderbird |
Внешних API, ключей и облачного бэкенда нет — всё локально внутри Thunderbird.
История изменений
Формат Keep a Changelog.
[Unreleased]
Added
- Полная документация на русском: README, ARCHITECTURE, AI_RULES; публикация PRO на huskynet.
[0.4.0] — 2026-06-17
Added
- Кнопка Chat View открывает UI во вкладке Thunderbird.
options_uiкак запасная точка входа.- Popup-окно при ошибке создания вкладки.
Changed
- Отказ от toolbar popup (пустая панель в части окружений).
- Вёрстка под полноэкранную вкладку.
Fixed
- Убран optional chaining в обработке сообщений UI.
[0.3.0] — 2026-06-17
Added
- Явные размеры popup, цвета, текст загрузки.
- Вывод ошибок API/индексации в UI.
Fixed
- Пустая тёмная панель toolbar popup.
[0.2.0] — 2026-06-17
Added
- CSS-переменные для кастомизации вида.
Changed
- Увеличен минимальный размер popup под две колонки.
[0.1.0] — 2026-06-17
Added
- Каркас MailExtension, индексация Inbox/Sent/Archives.
- Sidebar: контакты слева, переписка справа, Refresh.
- Базовая документация проекта.
Fixed
- Замена неподдерживаемого
sidebar_actionнаbrowser_action.



