fix(k1): restore canonical local connection lifecycle

This commit is contained in:
DCCONSTRUCTIONS
2026-08-06 13:52:46 +03:00
parent 52da9b75b7
commit aff331082f
19 changed files with 2169 additions and 274 deletions
@@ -200,6 +200,21 @@ export function networkProvisionFailureMessage(
const code = operation.error?.code;
if (typeof code !== "string") return null;
if (
code === "host-wifi-helper-build-timeout"
|| code === "host-wifi-helper-build-failed"
) {
const failedBeforeDeviceWrite = operation.error?.side_effect_status === "none"
&& operation.error?.safe_to_retry === true;
const failure = code === "host-wifi-helper-build-timeout"
? "не успел собраться за отведённое время"
: "не удалось собрать";
if (failedBeforeDeviceWrite) {
return `Локальный компонент Wi‑Fi ${failure}. Команда K1 не отправлялась; подготовьте локальный компонент и повторите подключение отдельным действием.`;
}
return `Локальный компонент Wi‑Fi ${failure} уже после начала операции с K1. Состояние устройства нельзя выводить из этой локальной ошибки; автоматического повтора команды не было. Выполните read-only проверку K1 перед новым подключением.`;
}
const messages: Record<string, string> = {
BleakGATTProtocolError:
"Сканер отклонил запись сетевого профиля. Результат изменения сети неизвестен; автоматический повтор запрещён. Проверьте текущее состояние K1 или подхватите существующее подключение без изменения настроек Wi‑Fi.",
@@ -210,7 +225,7 @@ export function networkProvisionFailureMessage(
"credential-invalid":
"Пароль точки доступа K1 имеет недопустимую длину. Получите сохранённый пароль этого K1 в LixelGO/iPhone и повторите подключение.",
"host-wifi-operation-timeout":
"Первичное системное подключение к K1 не было завершено вовремя. BLE-команда автоматически не повторялась; получите пароль сохранённой сети этого K1 и запустите подключение заново.",
"Локальная операция подготовки Wi‑Fi не завершилась вовремя. Это могло произойти до изменения состояния K1; наличие сохранённого пароля этим кодом не подтверждается и не опровергается. Проверьте состояние K1 и повторите подключение отдельным действием.",
"profile-ssid-mismatch":
"Сохранённый профиль относится к другому K1. Подключение остановлено без повторной команды сканеру.",
"corewlan-error":