Числа в README приведены к сборке, которая поставляется: холодный старт
773–898 мс (процесс 74–78 мс + страница 696–821 мс), RSS 254 МБ
(обёртка 117 + WebKit 137), в трее 256 МБ, физический след 106 МБ.
Прошлый прогон (708–740 мс, 252 МБ) снят с бинарника до правки выхода из трея —
расхождение в пределах разброса, но в документации должны стоять числа
отгружаемой сборки.
README обёртки приведён в соответствие с кодом:
- раздел «Автообновление»: раскладка каталога `UPDATES_DIR`, публикация релиза
(`make desktop-release`, `make desktop-release-upload HOST=…`), зачем нужен
`latest.json`, проверка через curl и лог обёртки; отдельно отмечено, что
владельцу внешнего прокси добавлять ничего не нужно;
- раздел «Уведомления и переход в канал»: реализованное поведение по активации
приложения и честное ограничение (ОС не сообщает, что активация вызвана
кликом по уведомлению);
- раздел «Ресурсы и холодный старт»: замеры 708–740 мс и 252 МБ RSS, как
повторить (`scripts/desktop-perf.py`);
- «Что осталось оператору»: точные команды для `.dmg`
(`make desktop-build` из обычного терминала), подписи Developer ID и
нотаризации (`APPLE_*`, `stapler validate`, `spctl`), сборки и подписи
Windows/Linux, требования к ключу обновлений; отдельно — поведение на Wayland
(нативная тряска окна не работает, остаётся CSS).
- Makefile: `desktop-check`, `desktop-build` (с ключом подписи обновлений,
без ключа — сборка без артефактов обновления) и `desktop-run`; кэши
cargo и npm держатся в .cache/, как у остальных инструментов проекта.
- desktop/README.md: сборка, запуск, аргументы командной строки, настройки,
deep links и открытые пункты Фазы 6.
- bundle.targets = all: бандлы по умолчанию для текущей ОС (macOS: .app/.dmg).
- Логирование подключается в setup и больше не роняет приложение, если
каталог логов недоступен на запись (песочница, домашний каталог только
для чтения).
- Разбор аргументов вынесен в Cli::from_args и покрыт тестами
(--instance, --minimized, --settings, --autostart on|off).
- cargo fmt по модулям обёртки.