kk0t9 9b87751ab8 feat(v0.6): Lima E2E зелёный с нуля + shell software-render screenshot
План 5 ч.2: поднял Lima-VM и довёл сквозной E2E до зелёного из чистого yaml
(just vm-reset && just e2e — exit 0). Приёмка §9.4 (v0.1 + v0.6 + шагающий скелет).

Shell (lib+bin split):
- режим --screenshot <path>: headless software-render первого кадра в PNG
  (Slint software-renderer, без дисплея/композитора, §6); TDD-тест «кадр не
  пустой + тема отражена», зелёный и на dev-Mac, и в VM (Linux).
- shturman-shell.service → oneshot software-render → /run/shturman/frame.png
  (RemainAfterExit → is-active детерминированно, без хрупкого weston;
  живой weston-shell — v0.5). just shell-frame — инспекция кадра.

E2E (tests/e2e/run.sh, двухфазно pre→reboot→post):
- /data+power-safe опции, volatile-tmpfs, first-boot идемпотентность, per-unit
  active, имена на шине + GetPowerState, fake-ACC SetAcc→AccChanged, первый кадр
  PNG, base-бюджеты (journald volatile / zram / oomd / fake-hwclock→/data /
  eMMC-прокси), персист Settings + machine-id every-boot bind после reboot.

Провижининг (lima/shturman.yaml) — правки по реальным ошибкам Lima:
- build-deps Slint/winit на Linux (libfontconfig1-dev/libxkbcommon-dev/libwayland-dev);
- linux-modules-extra (zram/vcan не в vz-ядре); systemd-oomd; rm стокового
  /etc/fake-hwclock.data (A11); VM-локальный CARGO_TARGET_DIR.

Док-синхронизация (спека §13/§8.1/§7.5 + CLAUDE.md): швы реализации, eMMC-порог
T=4096 сект, fake-hwclock masked-в-Lima, dev-mock policy не нужен.

Перф-вердикт — на RK3588 (в VM — функционально, performance §2). just ci зелёный.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Alexander <akotenev2003@gmail.com>
2026-06-24 17:14:31 +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%