docs(v0.3): синхронизация швов power-safe + статус

Двунаправленные швы (спека v0.3 §10) после реализации Плана 7:
- domain B: banner «Реализация (v0.3)» (B01–B07, VM-модель abort/PONR=stop+umount+remount);
  §12 — MCU/supercap (B08/B09) → v0.4.
- ipc.md §3: Power оживлён из FSM (не mock); Sleep/Wake/RequestSleep зарезервированы.
- foundation §5.2: «Power-стаб» → реальный PowerFsm (проекции state/ignition/source из FSM);
  dev-mock кормит входы FSM.
- CLAUDE.md: статус v0.3 ГОТОВО; «Следующее» → v0.5 shell / v0.4 MCU-thermal.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Alexander <akotenev2003@gmail.com>
This commit is contained in:
2026-06-25 00:21:10 +03:00
parent 35cd6b7230
commit b9500356b0
4 changed files with 26 additions and 8 deletions
+7 -5
View File
@@ -242,7 +242,7 @@ shturman/
`dbus-daemon`) — герметично, параллелизуемо, без root (§9).
- Изоляция песочных апов — через прокси (появится с App-Host, v3).
### 5.2 `ru.shturman.Power` — стаб (B04, домен B §9)
### 5.2 `ru.shturman.Power` — стаб v0.1 → **реальный FSM v0.3** (B03/B04, домен B §9)
- **Имя/путь/интерфейс:** `ru.shturman.Power` · `/ru/shturman/Power` · `ru.shturman.Power1`.
- **Методы:**
@@ -258,11 +258,13 @@ shturman/
- `IgnitionState: s``{off, accessory, running}`**канон** (B §1; E зеркалит, не дублирует)
- `Uptime: t` — секунды **монотонных** часов (`CLOCK_MONOTONIC`, B §8)
- `PowerSource: s``{vehicle_12v, holdup_cap, sleep_rail, low_battery}`
- **Стаб-поведение (v0):** старт в `running`/`IgnitionState=running`/`PowerSource=vehicle_12v`;
`Uptime` растёт монотонно. **Никаких** методов записи/actuator (#2). Реальная FSM/секвенсинг — v0.3.
- **Поведение:** старт в `running`/`IgnitionState=running`/`PowerSource=vehicle_12v`; `Uptime` растёт монотонно.
**Никаких** методов записи/actuator (#2). **v0.1 — плоский стаб; v0.3 — реальный `PowerFsm`** (состояния/переходы B03,
graceful shutdown подход A, grace-таймер + durable-barrier `sync` на commit/PONR); `power_state`/`ignition`/`source`
проекции FSM. Реальный источник событий (ACC/voltage/thermal через MCU) → v0.4; в v0.3 события кормит dev-mock.
- **Dev-mock (feature `dev-mocks`):** доп.интерфейс `ru.shturman.dev.PowerMock1` на том же объекте —
«**fake-ACC**» для тестов и будущего v0.3:
- `SetAcc(b on)`меняет state/IgnitionState + эмитит `AccChanged`
«**fake-ACC/voltage/thermal**», **кормит входы FSM** (v0.3) для тестов/E2E:
- `SetAcc(b on)``Event::AccOn`/`AccOff` (FSM) + эмитит `AccChanged`
- `SetIgnition(s state)`
- `TriggerShutdown(u seconds, s reason)` → эмитит `ShutdownImminent`
- `AbortShutdown()` → эмитит `ShutdownAborted`