Files
shturman/docs/domains/README.md
kk0t9 77d9a5a0ee docs(domain H): v2 — медиа/аудио + арбитр ducking, после adversarial-ревью (20 находок) + кросс-док
Новый домен H (медиа/аудио). Ядро — сквозной арбитр аудио (политика
фокуса/ducking поверх PipeWire, role-based), плюс медиаплеер (локальное/BT
A2DP/AVRCP/радио/стриминг). Многоагентный adversarial-ревью: 24 находки,
20 подтверждено (default-refute), все применены.

Ключевое из ревью:
- symphonia НЕ декодирует Opus → отдельный audiopus (libopus, BSD).
- AEC: module-echo-cancel (≠ filter-chain) в audio-plane, не в ассистенте — резолв D §147.
- media.role (арбитраж) vs media.category (Playback/Capture) разведены.
- Кнопки громкости мультируля — uinput→Wayland-input (C/K), не интенты ассистента.
- Crash-safe по двум осям (source: жизнь ноды + проактивный cork по NameOwnerChanged/watchdog; sink: пересчёт при возврате output).
- intra-role media-фокус (один media-продюсер), гистерезис фокуса (анти-pumping), duck = относит. аттенюатор.
- boot аудио-плоскости на Stage 1; отказ-пути плеера (битый файл/обрыв A2DP/ENOSPC/underrun); resume без авто-старта.

Кросс-док: D §147 AEC→; tech-stack (symphonia/audiopus/module-echo-cancel);
hardware §4 (amp-mute-GPIO + FM-тюнер + откр. вопросы); B §4 (amp-mute перед
cut); architecture §9 (аудио-арбитр → H); domains/README (строка H).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 18:08:36 +03:00

48 lines
4.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Домены (Tier 2)
> Детальные спеки подсистем. Каждый домен — отдельный документ по **единому
> шаблону** (ниже). Файлы создаём по мере наполнения; здесь — карта и план.
Статус: **индекс + шаблон**. Содержательные файлы доменов появляются по ходу работы.
## Единый шаблон домена
1. **Назначение и границы** — что делает, чего НЕ делает.
2. **Функции** — таблица: `функция | MVP / later | зависит от | фаза`.
3. **Данные и интерфейсы** — что домен публикует/потребляет на шине (ссылки на `../contracts/`).
4. **Зависимости** — ссылки на другие домены и контракты (← здесь «связи»).
5. **Открытые вопросы / решения.**
## Карта доменов
| # | Домен | Файл | Кратко |
|---|-------|------|--------|
| 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](../roadmap.md); технически — после контрактов.
## Заделы (сиды для будущих доменов)
Идеи на будущее, пойманные по ходу проектирования; раскрываются при наполнении домена.
- **J (Камеры).** Камеры — **динамический набор 0..N источников видео**, не одна задняя.
Задел: подключение доп. камер — фронтальная для **видеорегистратора (dashcam)**,
камеры **кругового обзора (360°/surround)** и т.п. Набор источников и «виды»
(например surround-композит) — расширяемые, плагин может добавить источник/вид.
- **K (Датчики).** **Парктроники** и подобные датчики ближнего действия — как источник
*данных* (чтение с CAN через Vehicle-Data или отдельный датчик) для оверлеев/
предупреждений поверх видео-вида.
- **Архитектурная связь:** видео-источники идут через data-plane (PipeWire/V4L2);
задняя/парктроник-вид требуют низколатентного раннего пути (см. Решение №3 и lifecycle).