docs(domain K): v2 после adversarial-ревью (18 находок) + кросс-док

- GPS-скорость: zero-clamp <~2-3 км/ч (на стоянке Doppler-шум, не ноль) — distraction v1
  получал бы ложный on; FixQuality многоуровневый (no_fix/2d/3d/augmented/dead_reckoning
  + HDOP/sats); dead_reckoning не валиден для distraction/Nav; валидность времени ≠ позиции
- приватность локации: эфемерна (без трека в v1), audit-log, исключена из LLM-промпта,
  while-in-use грант, on-device
- антенна (внешняя/активная), TTFF cold/warm-start, окно без GPS на старте поездки;
  питание GPS в sleep/battery-cutoff (обесточивание+cold-start по умолчанию)
- резистивная ADC-лесенка руля: контракт window-table + кондиционирование + collision-drop
  + темп-дрейф; транспорт ввода = uinput/evdev (не Shell-D-Bus, иначе surface-апы не покрыты);
  гейтинг руль-действий в distraction
- IMU опционален/не гарантирован → dashcam (J) = непрерывный ring-buffer, не на g-sensor
- точность времени SHM (~десятки-сотни мс), PPS опц./hardware-gated; Nav «фаза 2»→v4
- кросс-док: a-base §7/§14 (SHM, split time-row + K-dep), hardware §4 (антенна/1PPS),
  domains/README (K-cell без TPMS/климата), ipc Location (enum), c-shell §7/§9/§11
  (clamped speed, uinput-ввод, закрыт Location-вопрос)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-22 15:30:08 +03:00
parent 7a30ed7a7d
commit 5ba19cde46
6 changed files with 177 additions and 11 deletions
+7 -4
View File
@@ -86,7 +86,8 @@ Shell** (его пробрасывает bubblewrap при `ui_*`, security-priv
- Выше порога скорости → **упрощённый UI**, приоритет голосу, блокировка сложных взаимодействий.
- **Источник скорости:** **GPS (домен K, `ru.shturman.Location`) уже в v1** (раньше OBD),
уточняется OBD-скоростью (E) в v2.
уточняется OBD-скоростью (E) в v2. C потребляет **занулённую/quality-флагнутую `Speed`** от K §2
(не сырой Doppler-шум на стоянке) — это source-level фикс, ортогональный гистерезису ниже.
- **Fail-safe при неизвестной/устаревшей скорости** (тоннель/нет фикса GPS, stale OBD — #3):
гейт по умолчанию в **консервативное состояние** (к безопасности), таймаут staleness +
видимая пометка «скорость неизвестна».
@@ -101,8 +102,9 @@ Shell** (его пробрасывает bubblewrap при `ui_*`, security-priv
## 9. Ввод
- Тач + **мультируль** (кнопки руля, чтение из K/E) → навигация по UI без касания
(важно для distraction).
- Тач + **мультируль**: K нормализует кнопки (ADC-лесенка / проксированные CAN из E) в **uinput**
композитор Shell маршрутизирует их фокусом (штатный Wayland-input), не «Shell сам потребляет».
Навигация по UI без касания; часть руль-действий сама гейтится distraction-режимом (K §3).
## 10. Зависимости
@@ -119,7 +121,8 @@ Shell** (его пробрасывает bubblewrap при `ui_*`, security-priv
- ◻️ **UI управления разрешениями** (review/revoke) — из security-privacy. → этот домен + Settings.
- ◻️ **Источник день/ночь** (v0 время; **GPS-восход v1**; датчик освещённости / сигнал машины — later). → реализация + домен K.
- ◻️ **Мультидисплей, профили** — later.
- ◻️ **Контракт Location/GPS (домен K)** — distraction v1 и день/ночь-восход гейтятся им; до K — мок-стаб (ipc `Location`).
- **Контракт Location/GPS** — в [k-sensors §2](k-sensors-peripherals.md) (QoS, FixQuality, zero-clamp скорости у нуля; C потребляет занулённую `Speed`). Арбитраж GPS-vs-OBD (v2) — открыт.
- ◻️ **Какие руль-действия гейтятся в distraction** — парный с K §10.
- 🟡 **Slot-протокол поверхностей** (`ru.shturman.shell_slot`: surface→слот, slot-token, peer-creds) — спроектировать (§4).
---