docs: tech-stack + контракты ipc/data-model (+ ревью-фиксы)

- tech-stack: Rust-first (один прод-рантайм; Python — dev-only), полный стек, крейты
- architecture: ассистент Python→Rust для консистентности; boot-порядок
  (Broker+App-Host до Shell); потолок частоты сигналов ~10–20 Гц
- contracts/ipc: реестр D-Bus (сервисы ядра/апов, соглашения, портал-брокеринг)
  + открытые вопросы из self-review
- contracts/data-model: VSS-aligned каталог сигналов, OBD-PID маппинг, DTC-модель;
  добавлен MIL-статус (PID 0x01) для killer-фичи, состояние машины, расход-estimate

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-20 20:01:36 +03:00
parent 9e685edd02
commit 3d13bb5827
5 changed files with 373 additions and 5 deletions
+6 -5
View File
@@ -34,9 +34,9 @@ LINUX BASE read-only rootfs + overlay · Wayland · systemd · hardware watc
TRUSTED CORE Power/Lifecycle · Vehicle-Data (CAN read-only) · Settings/State
(привилегии) Security/Perm-Broker · Plugin/App-Host · Connectivity
│ ──────────────── control plane: D-Bus ────────────────
SDK единый API: D-Bus + биндинги (Rust, Python…) + манифест/capabilities
SDK единый API: D-Bus + Rust SDK (биндинги др. языков — для плагинов) + манифест
FIRST-PARTY Shell/UX-host · Assistant (Py) · Media · Nav · Phone ← расш. права
FIRST-PARTY Shell/UX-host · Assistant · Media · Nav · Phone ← расш. права
APPS (на SDK)
PLUGINS (3rd) плагин · плагин · … ← узкие права
@@ -68,7 +68,7 @@ data-plane — см. §4.
| Ап | Кратко | Особое |
|----|--------|--------|
| **Shell/UX-host** | лаунчер, экраны, тема, driver-distraction | ещё и Wayland-**хост** UI остальных (§8) |
| **Assistant** | wake→STT→LLM→TTS, контекст машины, память о водителе (`.md`) | на Python; провайдер-агностик LLM |
| **Assistant** | wake→STT→LLM→TTS, контекст машины, память о водителе (`.md`) | Rust (ONNX Runtime + биндинги); провайдер-агностик LLM |
| **Media** | аудио, BT A2DP/AVRCP, радио, стриминг | владеет аудио-политикой (с PipeWire) |
| **Nav** | офлайн-карты, роутинг | богатые поверхности (карта) |
| **Phone** | BT HFP, контакты, звонки | аудио через PipeWire |
@@ -93,7 +93,8 @@ data-plane — см. §4.
| **Camera** | **PipeWire / V4L2 (DMABUF)** | видео-источники; самые латентные (задняя камера) — почти прямой путь |
Нюанс: Vehicle-Data перемалывает сырой высокочастотный CAN **внутри себя** и
публикует на шину уже digested-сигналы в разумном темпе — шина остаётся лёгкой.
публикует на шину уже digested-сигналы с потолком частоты (~10–20 Гц) — шина
остаётся лёгкой. Детали — [contracts/ipc.md](contracts/ipc.md).
Камеры спроектированы как **динамический набор 0..N источников** (задняя,
dashcam-фронтальная, surround), расширяемый плагинами — см. задел в
@@ -153,7 +154,7 @@ graph TD
**Быстрый boot фазами (цель — < 10 c до интерактива):**
- **Stage 0 (мгновенно):** загрузчик → splash. Низколатентный путь задней камеры/парктроника, если включена задняя.
- **Stage 1 (~35 c):** ядро-минимум (шина + Power + Settings) → **Shell с первым кадром** (home-тайлы кликабельны).
- **Stage 1 (~35 c):** ядро-минимум (шина + Power + Settings + **Perm-Broker + App-Host**) → **Shell с первым кадром** (home-тайлы кликабельны). Broker/App-Host нужны раньше Shell: Shell — тоже ап и поднимается/цепляется к шине через них.
- **Stage 2 (фоном):** Vehicle-Data, Assistant, Media, Nav прогреваются после того, как UI интерактивен.
**Завершение:** ACC-off → Power/Lifecycle инициирует graceful shutdown (systemd-таргет): апам сигнал «сохранись», Settings флашится в `/data`, размонтирование, снятие питания через supercap/MCU-копилот. Вместе с read-only rootfs это защита от corruption.