Полный чистый `just vm-reset && just e2e` (PRE→reboot→POST) впервые прогнан после добавления power-safe-блока — вскрыл два латентных шва харнесса (FSM/сервис-код цел): 1. start-limit-hit: блок намеренно рестартит shturman-power N+ раз за <10s → systemd StartLimitBurst (5/10s) → power в failed, имя ru.shturman.Power теряется, блок abort не доезжает. Фикс: reset-failed перед намеренными рестартами (как при реальном reboot); ждать active power, не только settings. 2. machine-id залипал на нижнем rootfs-значении: цикл/power-cut делает `umount /etc/machine-id`, но `systemctl start shturman.target` НЕ пере-bind-ит — shturman-machineid это oneshot RemainAfterExit (уже active) → ExecStart не перезапускается. POST-чек стабильности machine-id (§9.3.4) падал после reboot. Фикс: `systemctl restart shturman-machineid` после remount (форсит пере-bind). E2E OK ✅ с нуля (vm-reset → PRE → reboot → POST); регресс v0.1/v0.2 цел. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Signed-off-by: Alexander <akotenev2003@gmail.com>
Штурман
Open-source русскоязычный companion-слой («ОС поверх Linux») для авто на RK3588: быстрый Slint-UI + голосовой RU-ассистент, читающий OBD/CAN только на чтение, + расширяемый Plugin API. Лицензия MIT.
Статус: реализация v0 (фундамент — образ-болванка + dev-харнесс + первый Slint-кадр). Дизайн завершён, источник правды —
docs/.
Красные линии (нерушимы)
- Никогда не safety-critical — двигатель/тормоза/ABS/ESP/руль/подушки; в системе нет actuator-путей.
- CAN только на чтение — стандартные OBD-II read (Mode 01/03/07/09/0A); запрещены write/actuator/Mode-04/UDS-write.
Документация
- Точка входа:
CLAUDE.md. - Дизайн (источник правды):
docs/— архитектура, контракты, домены. - План реализации:
docs/roadmap.md; спеки вех —docs/specs/.
Быстрый старт (dev)
Разработка ведётся в ARM64 Lima-VM (нативно к таргету RK3588). Команды — через just:
just vm-up # поднять dev-VM (Lima) — появляется в Плане 5
just run # boot → стаб-сервисы на D-Bus → первый Slint-кадр
just ci # lint + test + deny (локальный гейт)
Сейчас доступно:
just build/just test/just lint/just deny(сборка/тестыshturman-commonна хосте). Lima-VM и сквознойrun/e2e— по мере планов реализации.
Лицензия и контрибьютинг
MIT — см. LICENSE. Контрибьюции — по DCO (git commit -s), см. CONTRIBUTING.md.
Примечание о UI-тулките: Slint для embedded доступен бесплатно под GPL-3.0 → шипимый UI-бинарь прод-образа (v4) будет под GPL-3.0; решение по тулкиту/лицензии осознанно отложено к v4 (см.
docs/specs/). Ядро и остальной код — MIT.