diff --git a/CLAUDE.md b/CLAUDE.md index 98a7221..0894d65 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -52,7 +52,13 @@ vcan + Vehicle Simulator + моки (аудио/BT/камера/GPS/сеть/plu base-бюджеты (journald volatile / zram / oomd / fake-hwclock→/data / eMMC-прокси) → **reboot**: персист Settings + machine-id стабилен. Приёмка §9.4 (v0.1 + v0.6 + шагающий скелет) выполнена. Швы реализации — спека §13. -**Следующее:** `v0.2` boot-конвейер · `v0.3` power-safe · `v0.4` MCU/thermal · `v0.5` полный shell (живой weston-shell). +**v0.2 Boot-конвейер — ГОТОВО (ветка `feat/v0.2-boot-pipeline`):** спека `docs/specs/v0.2-boot-pipeline.md` + план +`docs/specs/plans/06-v0.2-boot-pipeline.md`. `shturman.target` → **зонтик** фаз Stage 0/1/2; `shturman-splash` (Stage 0, +software-render → `/run/shturman/splash.png`, `Before=shell` → до первого кадра) + `shturman-stage2-warmup` (деферред +`After=shell`); общий рендер-хелпер `shturman-render` (shell+splash). `just vm-reset && just e2e` зелёный с нуля: +фазы разделены (splash ≤ frame ≤ stage2), регресс v0.1/v0.6 цел. Приёмка спека v0.2 §9.3 выполнена. + +**Следующее:** `v0.3` power-safe и `v0.5` полный shell (живой weston-shell) — параллельно поверх v0.2 · затем `v0.4` MCU/thermal. > CI: GitHub-Actions-конфиг **удалён** (его ловит Gitea). Гейт — локальный `just ci`. CI на Gitea — решение позже. diff --git a/docs/domains/a-base-system.md b/docs/domains/a-base-system.md index ffc0393..26ae8a0 100644 --- a/docs/domains/a-base-system.md +++ b/docs/domains/a-base-system.md @@ -72,6 +72,10 @@ - **Stage 1 (~3–5 c):** ядро-минимум (шина + Power + Settings + Perm-Broker + App-Host) → **Shell с первым кадром**; - **Stage 2 (фоном):** Vehicle-Data, Assistant, Media, Nav прогреваются после интерактива. - Быстрый boot: минимальный initramfs, параллельный systemd, ленивые сервисы. +- **Dev-VM (v0.2 реализовано):** Stage 0/1/2 = фазовые systemd-таргеты под зонтиком `shturman.target`; splash — + `shturman-splash` (Slint software-render → `/run/shturman/splash.png`, `Before=shell` → до первого кадра); Stage 2 — + warmup-плейсхолдер (`After=shell`, деферред). U-Boot framebuffer-splash + A/B + secure-boot + ранний путь камеры — + HW (VM↔HW-граница, как overlay/A-B в v0.6). Тайминг <10 c — функц. в VM, вердикт на RK3588. - **Secure boot (verified boot, v4):** анкор доверия — **хэш публичного ключа в OTP/eFuse, прожиг НЕОБРАТИМ** (burn-once, без ротации). Приватный ключ — offline/HSM с бэкапом (потеря = кирпич парка). **Dev-ключи ≠ prod**, на dev-платах eFuse НЕ жжём diff --git a/docs/specs/v0.1-v0.6-foundation.md b/docs/specs/v0.1-v0.6-foundation.md index c44e69d..1995420 100644 --- a/docs/specs/v0.1-v0.6-foundation.md +++ b/docs/specs/v0.1-v0.6-foundation.md @@ -691,6 +691,9 @@ SOFTWARE. случай отдельного dev-**имени** на шине. - **E2E reboot (§9.3.4):** двухфазно `just e2e` (pre → guest-reboot Lima → post); персист Settings + machine-id every-boot bind проверяются после реального ребута. `just run` = только pre (без ребута). +- **v0.2 (boot-конвейер):** `shturman.target` стал **зонтиком** фаз; критический набор v0.1 переехал в + `shturman-stage1.target` (тело юнитов без изменений, у shell `RuntimeDirectory` → tmpfiles). Splash (Stage 0) + + warmup (Stage 2) — новые; headless-render плумбинг вынесен в `shturman-render`. Детали — `docs/specs/v0.2-boot-pipeline.md`. ---