kk0t9
586ba29821
feat(v0.3): lima/E2E блок power-safe (N циклов + abort + power-cut)
...
P7.4: lima/run.sh раскладывают watchdog (system.conf.d) + savetime.service/.timer.
run.sh блок power-safe: N=3 цикла зажигания (ACC-off→ShutdownImminent→stop stage1→
umount/remount /data→restart; маркер+счётчик целы), abort до PONR (re-power→
ShutdownAborted, /data RW), power-cut-сим (SIGKILL до fsync→fsck clean, night present),
watchdog/savetime конфиг. shellcheck чист.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Signed-off-by: Alexander <akotenev2003@gmail.com >
2026-06-24 23:20:33 +03:00
kk0t9
2442f091d2
feat(v0.2): splash-frame + lima/E2E раскладка Stage 0/1/2
...
P6.4: just splash-frame; lima yaml ставит stage0/1/2.target + tmpfiles
(splash/warmup ловит glob *.service). run.sh: install splash-бинаря, раскладка
новых юнитов+tmpfiles, блок «Stage 0/1/2 разделены» (3 таргета reached, splash.png
до frame.png, stage2.ready после, systemd-analyze лог). Убран restart shell
(ломал бы порядок warmup-после-кадра — фазовый старт рендерит всё по порядку).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Signed-off-by: Alexander <akotenev2003@gmail.com >
2026-06-24 20:12:02 +03:00
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
kk0t9
bc2c0b8cfd
feat(harness): systemd-юниты + Lima-конфиг + E2E-харнесс (файлы)
...
systemd/ (target/data.mount/firstboot/machineid/power/settings/shell + dbus-policy + journald/zram/oomd):
ordering data.mount->firstboot->machineid->dbus->power+settings->shell; Requires+After firstboot; OOMScoreAdjust.
lima/shturman.yaml (vz, Ubuntu ARM64, /data loopback, провижининг). tests/e2e/run.sh (каркас приёмки).
justfile: vm-up/down/reset/shell, run, e2e, shell-frame. Валидация — часть 2 (поднятие Lima).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Signed-off-by: Alexander <akotenev2003@gmail.com >
2026-06-24 13:26:45 +03:00