64ef300ef4
- версионирование: shturman_api ↔ набор D-Bus-мажоров; хост экспортирует все поддерживаемые мажоры параллельно; неподдерж. версия → Error.Unsupported (не тихо) - IntentHandler: обязательный dispatch-таймаут; крэш/таймаут/NotAvailable → деградированный ответ (#4), пайплайн не виснет (#11) - vehicle_read: per-vehicle Unavailable (Subscribe ок, SignalChanged молчит, плагин деградирует); install-ревью предупреждает о неподдерживаемых сигналах - авторитет манифеста: extension_points.tiles авторитетны, ui_tiles — квота (len ≤ N) - storage: квота (ENOSPC плагину не системе — бережёт /data), remove чистит, миграция - lifecycle: discover/install только для сторонних; first-party — в base-образе, без install - network host-allowlist приведён к best-effort (синхрон с security-privacy) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Контракты (Tier 1) — соединительная ткань
Сквозные интерфейсы, которыми домены связаны друг с другом. «Связи» проекта живут здесь. Каждый контракт — отдельный документ; создаём по мере наполнения.
Статус: индекс. Документы наполняем после фундамента (architecture + principles).
| Документ | Назначение |
|---|---|
ipc.md |
D-Bus сервисы, интерфейсы, схемы сообщений: кто что публикует/слушает. |
data-model.md |
VSS-подобная таксономия сигналов машины + общие типы данных. |
plugin-sdk.md |
API расширения: манифест, capability-модель, точки расширения (экраны, тайлы, интенты, доступ к данным). Рантайм плагинов — домен F. |
security-privacy.md |
Sandboxing плагинов, модель разрешений, обработка данных, 152-ФЗ. |
hardware.md |
Целевой таргет (RK3588), топология питания, периферия + HAL/board-support API для портирования на другое железо/авто. |
Важный нюанс: plugin-SDK (API, тут) и домен F «Plugin host» (рантайм, sandbox, дистрибуция — в domains/) — разные вещи, ссылаются друг на друга.