kk0t9 35cd6b7230 fix(v0.3): E2E power-safe — пере-bind machine-id + reset-failed (start-limit)
Полный чистый `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>
2026-06-25 00:17:23 +03:00

Штурман

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.

S
Description
No description provided
Readme MIT 578 KiB
Languages
Rust 76.1%
Shell 19.6%
Just 4.3%