diff --git a/PLAN.md b/PLAN.md index 80fe686..7bf8b6c 100644 --- a/PLAN.md +++ b/PLAN.md @@ -748,7 +748,7 @@ all in `modules/app_obd.py` / `modules/app_events.py`: `active`, `/` returned HTTP 200, and the log showed four autonomous reconnect attempts with the correct "ELM327 handshake succeeded, but the car ECU did not respond" diagnosis and no traceback. -### Phase 14: Power-loss resilience & watchdog — 🚧 PLANNED +### Phase 14: Power-loss resilience & watchdog — 🟡 PARTIAL (watchdog done; filesystem/shutdown deferred) **New phase, not code-dependent on anything else — OS/hardware-level, can be done anytime, ideally before the Pi lives in the car full-time.** A car cuts power abruptly at every key-off; nothing in the project currently protects against that, and repeated unclean power loss is a @@ -767,6 +767,19 @@ classic cause of SD card corruption on embedded Pi projects. Two complementary a `RuntimeWatchdogSec`/`watchdog-device` support) so a fully hung app or kernel gets a hard reboot automatically instead of sitting dead in the car until someone notices. +**Implemented 2026-08-09**: +- Added `deploy/yaris-watchdog.conf` with systemd's hardware watchdog set to 10 seconds and + `deploy/install_watchdog.sh` to install, activate, and verify it. Deployed to the Pi; confirmed + `/dev/watchdog0` is the Broadcom BCM2835 watchdog and systemd reports + `RuntimeWatchdogUSec=10s`. +- Rebooted the Pi and verified the watchdog setting persisted, systemd returned to `running`, + `yaris-obd.service` returned to `active`, and `/` returned HTTP 200 after startup. +- **Explicitly deferred by user decision**: read-only root/filesystem hardening and clean-shutdown + hardware. The current 59GB root partition fills the SD card and contains 28GB of dashcam data, + so overlay root needs a separate persistent writable storage decision first; shrinking the live + mounted root filesystem is not safe. Clean shutdown likewise needs delayed-power or + ignition-sense hardware before software can implement it. + ### Phase 15: UI design-system foundation — 🚧 PLANNED **New phase, pulled forward from the old "do the whole redesign at the end" plan.** Building the Phase 16/17 file browsers (and later the trip-history/Pi-health/settings pages) against the