docs: update plan
This commit is contained in:
+25
-3
@@ -119,11 +119,33 @@ HTML-макеты → PNG: **headless Edge** (`--headless --screenshot`), он
|
||||
атрибуция AboutSlint) — зафиксировать в README и LICENSE
|
||||
- [ ] Скриншоты в README из tools/out
|
||||
|
||||
## Решение по архитектуре запуска (исследование 2026-08-25)
|
||||
|
||||
ОС вызывает пикер так: `CreateProcess("bropicker.exe", "https://...")` — новый процесс
|
||||
на каждый клик, постоянной связи с вызывающим приложением нет. Два режима:
|
||||
|
||||
- **Новый инстанс (выбрано для MVP):** нулевая сложность; если cold start < 100 ms,
|
||||
разница с резидентом невидима
|
||||
- **Резидент + трей (этап G, по показаниям):** spawn-заглушка + IPC + показ готового
|
||||
окна (~5-10ms), но: постоянная память ~30-80MB, named mutex, IPC (named pipe /
|
||||
WM_COPYDATA), крейс `tray-icon` + скрытое winit-окно (в Slint трея нет), автозапуск
|
||||
|
||||
Критерий старта этапа G: замер этапа F показал cold start > 100 ms, либо нужен
|
||||
доступ к настройкам/функциям из трея. Single-instance guard (named mutex + фокус
|
||||
существующего окна) можно добавить отдельно, без полного резидента — если быстрые
|
||||
клики по нескольким ссылкам начнут плодить окна.
|
||||
|
||||
## Этап G — резидент + трей (отложен до результатов этапа F)
|
||||
|
||||
- [ ] Решение по итогам замера cold start (см. блок выше)
|
||||
- [ ] Single-instance guard: named mutex, форвард URL в существующий инстанс (named pipe)
|
||||
- [ ] Иконка в трее (`tray-icon`), меню: Открыть настройки / Выход
|
||||
- [ ] Автозапуск (HKCU Run или Startup-ярлык)
|
||||
|
||||
## Заметки для агента
|
||||
|
||||
- GUI-приложение запускать только через `tools/run-and-shot.ps1`, никогда не блокирующе
|
||||
- После каждого изменения UI: скриншот + сравнение с `tools/out/ref-{dark,light}.png`
|
||||
- Тёмная/светлая тема переключается кнопкой sun/moon (Theme.toggle уже работает);
|
||||
для скриншота светлой темы кликать нельзя — добавить env-флаг `BP_THEME=light`,
|
||||
который в main() выставит `Theme.is-dark = false` перед показом
|
||||
- Тёмная/светлая тема: переключение кнопкой sun/moon (Theme.toggle); для скриншота
|
||||
светлой темы — `tools/run-and-shot.ps1 -Light` (env `BP_THEME=light`)
|
||||
- Cargo.toml правится только через cargo CLI; манифесты руками — только человеком
|
||||
|
||||
Reference in New Issue
Block a user