This commit is contained in:
2026-10-18 04:40:55 +07:00
parent c36d3fd314
commit 41d3e8ac5e
12 changed files with 4105 additions and 157 deletions
+25
View File
@@ -303,3 +303,28 @@ GUI smoke на стенде без внешнего дисплея модели
native fullscreen проверяется при наличии реального второго экрана. Реальное
предотвращение сна, маршрутизацию звука ОС и физическое переподключение оборудования
проверять по [инструкции SCREEN-007](docs/SCREEN-007_ACCEPTANCE.md) на всей матрице.
## Генерация клиента API
Приложение использует HTTP-клиент из канонического
`../evening_detective_server/api/main.proto`; сервер и frontend при генерации не меняются.
Сгенерированные методы и типы находятся в `electron/api/generated` и хранятся в Git.
Обычная сборка использует готовые файлы и не требует соседнего репозитория или генератора.
Для обновления нужны `protoc 36.0`, Go и тот же плагин, что во frontend:
```sh
go install go.einride.tech/protoc-gen-typescript-http@v0.10.0
npm run proto:gen
```
Добавьте каталог Go `bin` в PATH. Команда проверяет версии и пишет только в screen;
повторная генерация при неизменном proto должна давать тот же результат.
Генерируемые файлы не редактировать и не форматировать вручную.
Транспорт остаётся в основном процессе Electron: авторизация, обновление токена,
отмена, таймауты и безопасная диагностика общие для вызовов клиента. Медиа скачиваются
отдельно и воспроизводятся с локального диска. Генератор задаёт методы и TypeScript-типы,
но не проверяет и не преобразует JSON. В частности, его декларация `number` для `int64`
не меняет строковый формат gateway: входящие версии проходят проверку и сравниваются
через `BigInt`; обращения к этим полям напрямую как к числам не допускаются.