C-shell v2:
- GPS-скорость для distraction — домен K (ru.shturman.Location), не E (E это OBD, v2);
E — уточнение OBD-скорости в v2 + быстрый статус машины
- механизм поверхности: Wayland slot-протокол ru.shturman.shell_slot + slot-token,
не «handle по D-Bus»
- fail-safe distraction при потере/устаревании скорости (консервативный дефолт,
гистерезис, арбитраж GPS/OBD)
- контракт статус-бара: network «unknown» до Connectivity; часы — до синка времени
Кросс-док:
- architecture §1 (ELM327-оговорка к «физическому» read-only), §5 (положение/GPS из
Location/K, не Vehicle-Data), §7 (Perm-Broker = грантодатель, статика — прокси+sandbox),
§8 (surface через Wayland slot-протокол)
- ipc Shell.RegisterScreen → slot_token
- dev-environment: cage → smithay/weston в журнале и списке пакетов
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- аудио per-node гейтинг (PipeWire Security Context + WirePlumber), не голый сокет:
audio_out ≠ audio_in; capture только по runtime-гранту
- сеть: строгая гарантия только бинарно on/off; host-allowlist best-effort
(DNS-allowlist обходится прямым IP — нужен forced-proxy по SNI/Host)
- якорь first-party не существует до v4: v0-v3 = trust-by-build/физконтроль
- целостность id при установке (отказ при коллизии; ru.shturman.plugin.* зарезервирован)
- жизненный цикл гранта: while-in-use, авто-снятие на stop/crash; enforce-split
(статически прокси+sandbox/App-Host, рантайм-гранты Perm-Broker)
- НОВОЕ: §1a Модель угроз (адверсарии↔слои + out-of-scope)
- 152-ФЗ: явное отзываемое согласие (не только уведомление), минимизация VIN/локации,
роли оператора/обработчика в BYO, локализация ≠ правовое основание
- audit-log промотирован в нормативный (владелец A §9 + UI домена C)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- enforcement: прокси даёт грубую изоляцию (сервис/метод), тонкую (per-signal,
per-key) делает сам сервис по идентичности sender — прокси не видит payload
- PermBroker: идентичность только из соединения, CheckCapability(cap) sender-scoped
(не принимает app аргументом → нет спуфинга); GrantChanged адресный
- НОВЫЙ сервис ru.shturman.Location (домен K) — GPS/положение; GPS-скорость не через E
- ошибки Stale/Timeout (транзиентно) vs NotAvailable (постоянно); GetSignal с таймаутом
- desired_max_hz = агрегатный hint (не per-subscriber троттл); подписки owner-bound,
авто-снятие по NameOwnerChanged; quality-поле; BatteryVoltage→ModuleVoltage
- RegisterIntents(handler_path) — фразы из манифеста; версии-мажоры сосуществуют
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>