Implement QR pairing window and mDNS announcements; update documentation and tests
This commit is contained in:
@@ -69,10 +69,12 @@ Windows Core Audio → системная громкость устройств
|
||||
- [x] Постоянные доверенные устройства, безопасное хранение хешей токенов, отзыв доступа.
|
||||
- [x] Постоянный сертификат, защищённое хранилище Windows DPAPI, блокировка второго агента.
|
||||
- [ ] Обновление истекающего сертификата с явным повторным сопряжением.
|
||||
- [ ] QR-сопряжение с адресом и отпечатком сертификата.
|
||||
- [x] Локальный QR с адресом, кодом и отпечатком; Windows-окно по клавише I.
|
||||
- [x] Обновление QR при смене адреса/кода; очистка при закрытии сопряжения.
|
||||
- [x] Заготовки: payload для QR, проверка адреса/срока, клавиша I.
|
||||
- [x] Заготовки: DNS-SD descriptor и авторизованный /v1/info; без multicast.
|
||||
- [ ] Bonjour/mDNS для поиска из нативного приложения.
|
||||
- [x] Объявление Bonjour/mDNS: PTR/SRV/TXT/A, повторные объявления и goodbye.
|
||||
- [ ] Полноценное разрешение конфликтов имён mDNS (сейчас имя по хешу сертификата).
|
||||
- [ ] Проверить подключение со второго устройства в домашней сети.
|
||||
- [ ] Проверить смену плеера/аудиоустройства, отсутствие плеера, сон/пробуждение,
|
||||
отключение Wi-Fi и несколько клиентов.
|
||||
@@ -106,6 +108,14 @@ Windows Core Audio → системная громкость устройств
|
||||
|
||||
2026-09-09:
|
||||
|
||||
- Последний этап — работающие QR и mDNS: **95 проверок прошло**, Release-сборка
|
||||
без ошибок и предупреждений. Прогон: `dotnet run --project tests/MusicBridge.Agent.Tests.csproj -c Release --no-build -- --qr-window-smoke --mdns-smoke --live-read`.
|
||||
Проверены декодирование QR независимой библиотекой, скрытое окно и очистка
|
||||
просроченного QR, реальные объявления/goodbye mDNS отдельным слушателем на
|
||||
этом же ПК. Снимок окна просмотрен. Реальная обложка: JPEG, 12068 байт.
|
||||
Второе физическое устройство и сканирование телефоном пока не проверялись.
|
||||
Далее — исторические результаты предыдущих этапов.
|
||||
|
||||
- Последний этап — заготовки подключения: Release-сборка без ошибок/предупреждений,
|
||||
**82 автоматические проверки прошли** (`dotnet run --project tests/MusicBridge.Agent.Tests.csproj -c Release --no-build`).
|
||||
Проверены payload, адреса, истёкший код, descriptor и авторизация /v1/info.
|
||||
@@ -154,11 +164,13 @@ Windows Core Audio → системная громкость устройств
|
||||
При повреждении/недоступности хранилища или истечении сертификата агент завершается
|
||||
с ошибкой и не создаёт молча новую идентичность. Восстановление описано в PROTOCOL.md.
|
||||
- По умолчанию только loopback. `--lan` включает IPv4-сеть; брандмауэр не меняется.
|
||||
- QR, mDNS, iPhone UI и интеграции iOS ещё не реализованы.
|
||||
- QR и mDNS реализованы на Windows. iPhone UI и интеграции iOS ещё не реализованы.
|
||||
- Адреса обновляются примерно раз в секунду; mDNS пересоздаётся при смене списка,
|
||||
объявляется на домашних IPv4-адаптерах с multicast. Автоизменения брандмауэра нет.
|
||||
|
||||
Следующий шаг: этап 3 — QR-сопряжение (адрес, код, закрепляемый отпечаток),
|
||||
затем Bonjour/mDNS и проверка с другого устройства. iPhone-клиент пока не начинать.
|
||||
Заготовки готовы; точные границы и следующие шаги — в `CONNECTION-ROADMAP.md`.
|
||||
Следующий шаг: проверка с другого устройства и устойчивости при смене сети,
|
||||
затем tray/автозапуск/упаковка. iPhone-клиент пока не начинать.
|
||||
Точные границы реализации и следующие шаги — в `CONNECTION-ROADMAP.md`.
|
||||
Начать разработку iOS только после новой команды пользователя.
|
||||
|
||||
## Карта файлов
|
||||
@@ -176,6 +188,10 @@ Windows Core Audio → системная громкость устройств
|
||||
- `Network/AgentCertificate.cs`: создание сертификата TLS для первого запуска.
|
||||
- `PROTOCOL.md`: команды запуска и точный контракт будущего iPhone-клиента.
|
||||
- `CONNECTION-ROADMAP.md`: заготовки QR/DNS-SD и шаги будущего подключения.
|
||||
- `Network/ConnectionInvitation.cs`: данные для QR, без генерации картинки.
|
||||
- `Network/DiscoveryDescriptor.cs`: описание DNS-SD, без сетевой рассылки.
|
||||
- `Network/ConnectionInvitation.cs`: проверка и формат данных QR.
|
||||
- `Network/PairingQr.cs`: локальная генерация PNG (QRCoder).
|
||||
- `PairingWindowHost.cs`: окно QR на отдельном STA-потоке, выбор адреса и обновления.
|
||||
- `Network/LocalAddresses.cs`: подходящие домашние IPv4-адреса.
|
||||
- `Network/DiscoveryDescriptor.cs`: публичные поля DNS-SD.
|
||||
- `Network/MdnsPublisher.cs`: объявления mDNS, обновления адресов и goodbye.
|
||||
- `tests/`: исполняемые проверки без дополнительных тестовых NuGet-пакетов.
|
||||
|
||||
Reference in New Issue
Block a user