2eaa561892
Последний домен. Offline-first навигация: OSM-карты (MapLibre GL Native), оффлайн-роутинг (Valhalla), turn-by-turn, поиск/POI, связка с ассистентом. Не safety/ADAS (#1). Фаза v4. Многоагентный adversarial-ревью: 28 находок, 24 подтверждены (default-refute), все применены. Ключевое из ревью: - stale нав-промпт под звонком (проигрался бы ПОСЛЕ поворота) → продюсер I снимает заявку по окну релевантности; H остаётся контент-агностичным. - Нет секции отказ-путей → добавлена (no-route/geocoder-fail/битые-тайлы/ENOSPC, симметрично J/H/L). - Маршрут через границу регионов / назначение в нескачанном регионе → детект покрытия + предложение докачать / маршрут до края. - reroute-шторм в urban-canyon → детект схода с гистерезисом + HDOP/FixQuality-гейт; dead_reckoning трактуется как нет-фикса. - Якорь RDS-TMC G §7 → H §7 (FM-радио живёт в медиа-тракте H, не в сетевом G). - MapLibre Native = BSD-2-Clause (не BSD-3); ODbL-атрибуция (#12); единицы км/мили из локали (data-model §4, #10). - Интент «домой» разведён: D §6 = домашний экран (v1), навигация-домой = Nav-интент (v4). - Добавлены секции Зависимости и last-parked (K §2/L §5 ждали); Boot-Stage 2; speed-limit — пассивный бейдж, не предупреждение (#1). Кросс-док: d-assistant §6 («домой» = домашний экран; навигация-домой → Nav v4). (architecture §3/§6 уже содержат Nav; a-base apps-storage уже покрывает нав-PII.) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Домены (Tier 2)
Детальные спеки подсистем. Каждый домен — отдельный документ по единому шаблону (ниже). Файлы создаём по мере наполнения; здесь — карта и план.
Статус: индекс + шаблон. Содержательные файлы доменов появляются по ходу работы.
Единый шаблон домена
- Назначение и границы — что делает, чего НЕ делает.
- Функции — таблица:
функция | MVP / later | зависит от | фаза. - Данные и интерфейсы — что домен публикует/потребляет на шине (ссылки на
../contracts/). - Зависимости — ссылки на другие домены и контракты (← здесь «связи»).
- Открытые вопросы / решения.
Карта доменов
| # | Домен | Файл | Кратко |
|---|---|---|---|
| A | Базовая система / OS | a-base-system.md |
образ, read-only rootfs, boot, watchdog, OTA, board support |
| B | Питание и жизненный цикл | b-power-lifecycle.md |
ACC, graceful shutdown, sleep, защита eMMC |
| C | Shell / UX / лаунчер | c-shell-ux.md |
тайлы, темы день/ночь, профили, driver-distraction, ввод с мультируля, мультидисплей |
| D | Голосовой ассистент | d-assistant.md |
wake→STT→LLM→TTS, vehicle-context, память о водителе (.md), офлайн-фолбэк, провайдер-агностик |
| E | Vehicle Data (OBD/CAN, read-only) | e-vehicle-data.md |
PIDs, DTC + расшифровка, поездки, расход, VSS-модель |
| F | Plugin host & экосистема | f-plugin-host.md |
загрузка/sandbox/lifecycle плагинов, дистрибуция, dev-tools (API — в ../contracts/plugin-sdk.md) |
| G | Связь / телефон | g-connectivity-phone.md |
BT HFP, модем/LTE, WiFi/hotspot, проекция телефона |
| H | Медиа / аудио | h-media-audio.md |
вся стандартная мультимедиа (локальное/BT A2DP/AVRCP/радио/стриминг) + арбитр аудио (политика фокуса/ducking поверх PipeWire) |
| I | Навигация | i-navigation.md |
офлайн-карты OSM, роутинг, POI, связка с ассистентом |
| J | Камеры / видео | j-cameras-video.md |
задняя камера, парктроник-оверлей, dashcam |
| K | Датчики / периферия | k-sensors-peripherals.md |
GPS/Location, IMU; кнопки руля — резистивная ADC-лесенка (CAN-кнопки/TPMS/климат/парктроник на CAN — у E); выделенные не-CAN датчики |
| L | Облако / компаньон | l-cloud-companion.md |
мобильное приложение, синхронизация, бэкап, OTA-канал, телеметрия (opt-in) |
Порядок наполнения определим в roadmap.md; технически — после контрактов.
Заделы (сиды для будущих доменов)
Идеи на будущее, пойманные по ходу проектирования; раскрываются при наполнении домена.
- J (Камеры). Камеры — динамический набор 0..N источников видео, не одна задняя. Задел: подключение доп. камер — фронтальная для видеорегистратора (dashcam), камеры кругового обзора (360°/surround) и т.п. Набор источников и «виды» (например surround-композит) — расширяемые, плагин может добавить источник/вид.
- K (Датчики). Парктроники и подобные датчики ближнего действия — как источник данных (чтение с CAN через Vehicle-Data или отдельный датчик) для оверлеев/ предупреждений поверх видео-вида.
- Архитектурная связь: видео-источники идут через data-plane (PipeWire/V4L2); задняя/парктроник-вид требуют низколатентного раннего пути (см. Решение №3 и lifecycle).