Запись 18. Синхронизация для гиков: E2EE-сервер на VPS с нулевым разглашением
⏱️ Время: 18 сентября 2026, 19:30 — 20:30 (~60 минут)В коммерческих продуктах вас загоняют в закрытое корпоративное облако: ваши списки серверов и метаданные лежат на чужих серверах. Мы выбрали бескомпромиссный принцип Zero-Knowledge:
- Разработан легковесный сервер синхронизации
shellit-sync-server(разворачивается в Docker за 2 минуты). - Сквозное шифрование (E2EE): Все данные (хосты, сниппеты, теги) шифруются на клиенте алгоритмом AES-256-GCM. Ключ деривируется из секретного пароля синхронизации через Argon2id.
- Релейный сервер на VPS видит исключительно зашифрованные бинарные блобы. Даже если сервер взломают — злоумышленник получит только случайный белый шум.
- Автоматическое разрешение конфликтов версий по векторным часам (Vector Clocks).
Записи 21–25. Исправление смены мастер-пароля (BUG-018) и ловушка GlobalKey
⏱️ Время: 18 сентября 2026, 21:00 — 23:30 (~150 минут)При глубоком тестировании защищенного хранилища вскрылись две серьезные проблемы:
- BUG-018: Фиктивная смена мастер-пароля.
В прототипе диалог смены мастер-пароля выдавал красивый снэкбар «Пароль успешно изменен», но на самом деле база данных Drift/SQLCipher оставалась зашифрована старым ключом! Мы реализовали честную процедуру ротации: чтение сырых данных через транзакцию памяти, перешифрование всех записей новым ключом Argon2id и безопасный сброс ключа в Keychain. - BUG-021: Ловушка GlobalKey в IndexedStack.
При переключении между вкладками терминала и SFTP консоль внезапно заливалась красным экраном ошибки Flutter:Duplicate GlobalKey detected in widget tree. Оказалось, контейнерIndexedStackудерживал в памяти дерево виджетов фоновых табов, где использовались одинаковые сгенерированные ключи. Заменили глобальные ключи на локальныеValueKey(sessionId).
Записи 26–28. Мобильный ренессанс: Shellit на Android с тач-панелью
⏱️ Время: 19 сентября 2026, 01:00 — 03:40 (~160 минут)Мобильный терминал часто превращается в мучение из-за отсутствия клавиш Ctrl, Esc и стрелок на экранной клавиатуре смартфона.
Мы адаптировали Shellit под Android:
- Выдвижная сенсорная панель: Прямо над стандартной клавиатурой Android монтируется эргономичный ряд спецклавиш (
Esc,Tab,Ctrl,Alt, стрелки вверх/вниз для листания истории bash, пайп|и тильда~). - Тактильный виброотклик (Haptic Feedback): Каждое касание спецклавиши подтверждается мягким вибро-импульсом, создавая ощущение физической клавиатуры.
- Изоляция десктопного легаси: Все компоненты WebView2 и FFI-плагинов жестко отсечены через условные экспорты — APK-пакет получился ультракомпактным и летает даже на бюджетных устройствах.