# v0.8 — Power: battery + sleep

> Part of the [Typoena macro plan](macroplan.md). Requirements and targets:
> [qfd.md](qfd.md). Load-bearing decisions: [adr.md](adr.md).

**Status:** not started.

- [ ] Measure idle / typing / push current draw on bench
- [ ] 18650 + IP5306 charge board, soft power switch
- [ ] Per-sync Wi-Fi teardown — refactor `git_sync`'s modem ownership so the
      radio de-inits after each git op. Today it comes up lazily on the first
      op and stays associated for the rest of the session (~15–20 mAh/hr);
      TLS session resumption (v0.7) already makes the fresh-connect path cheap
      (2.4 s vs 4.0 s). Prerequisite for both sleep modes. Analysis:
      [tradeoff-curves/wifi-auto-sync.md](tradeoff-curves/wifi-auto-sync.md).
- [ ] Light sleep on idle > 30 s (keyboard interrupt wakes)
- [ ] Deep sleep on lid close (reed switch); restore cursor + buffer
- [ ] `auto_sync` runtime — the opportunistic, rate-limited push behind the
      v0.5 `.typoena.toml` key (re-homed here 2026-07-14; v0.7 closed with
      manual `:gl`/`:gp` only). Push when already awake + dirty (coalesced
      into the idle-pause, ≤ once per `auto_sync`), push once on the way into
      sleep if dirty, **never wake from deep sleep purely to sync**; min clamp
      ~2 min. A clean tick is radio-free via the dirty journal. Policy + curve:
      [tradeoff-curves/wifi-auto-sync.md](tradeoff-curves/wifi-auto-sync.md).
- [ ] Battery indicator in the side panel
