Files
typewriter/docs/v0.9-robustness.md
Julien Calixte 43d80b518f style: run oxfmt repo-wide
First full pass of the pnpm fmt toolchain: markdown table alignment,
TOML array wrapping, CSS/HTML expansion in the enclosure concept page.
No content changes; mermaid blocks untouched.
2026-07-14 12:40:51 +02:00

1.5 KiB

v0.9 — Robustness

Part of the Typoena macro plan. Requirements and targets: qfd.md. Load-bearing decisions: adr.md.

Status: not started.

  • Crash-safe writes (write to .tmp, fsync, rename) — NB FatFS f_rename refuses to overwrite, so it's unlink-then-rename + *.tmp boot-recovery (found in Spike 3, still open there)
  • Recover from interrupted push (re-attempt on next save) — the splice journal + stranded-commit recovery (2026-07-13) already survive a power-pull mid-push; this item is the retry half
  • Reconnect-on-stale-connection in the libgit2 http/stream layer — the push keep-alive race is avoided, not fixed (repack keeps the marking phase at ~3.5 s ≪ the ~30 s idle window; a multi-pack or cold-cache state could still lose it — see the real-repo-sync kaizen)
  • Eradicate the paint-during-sync DMA allocation failure: persistent internal DMA scratch in Epd (safety net + allocation-free repaints shipped; see the editor-freeze postmortem)
  • SD card removal / reinsert handling
  • Wi-Fi reconnect with backoff
  • On-device provisioning + settings screen: SSID, PAT rotation, default remote, commit author (replaces the v0.1 dev-only NVS-flashing path — first release usable by someone who is not the firmware author)