docs(qfd): annotate H7 Publish latency with measured :sync data

Adds a ‡ footnote on H7 (mirroring the H4 boot-latency †): cold :sync ~16 s /
warm ~10 s measured 2026-07-11 — within the ≤30 s v0.1 target, marginal against
the ≤10 s v1.0 target (cold's one-time Wi-Fi+SNTP push it over). Links the
breakdown in notes/sync-latency.md.
This commit is contained in:
Julien Calixte
2026-07-11 17:21:26 +02:00
parent fe544ccdd3
commit 17b6631310

View File

@@ -86,7 +86,7 @@ inside HOW names: **Render** (buffer → e-ink frame, inside Type),
| H4 | Boot latency (cold) | ↓ | ≤ 5 s | ≤ 3 s † |
| H5 | Continuous-typing endurance (no drop, no leak) | ↑ | ≥ 1 h | ≥ 8 h |
| H6 | Publish reliability (network up) | ↑ | ≥ 95 % | ≥ 99 % |
| H7 | Publish latency (one file) | ↓ | ≤ 30 s | ≤ 10 s |
| H7 | Publish latency (one file) | ↓ | ≤ 30 s | ≤ 10 s |
| H8 | Save durability (post-confirm power loss) | → | 100 % | 100 % |
| H9 | PSRAM heap headroom during Publish | ↑ | ≥ 1 MB free at peak | same |
| H10 | Firmware binary size | ↓ | ≤ 2 MB | ≤ 1.5 MB |
@@ -101,6 +101,14 @@ one ~1.9 s full refresh is unavoidable at cold boot (the `0x26` "previous" bank
garbage until the first full paint), an e-ink floor rather than a tuning knob.
Breakdown + levers: [`notes/boot-time-budget.md`](notes/boot-time-budget.md).
**Publish latency, measured 2026-07-11:** a cold `:sync` is **~16 s** (warm
**~10 s**), comfortably inside the ≤ 30 s v0.1 target. The ≤ 10 s v1.0 target is
**marginal** — the warm path meets it, but a cold sync's one-time Wi-Fi assoc
(~3.6 s) + SNTP (~24 s) push it over, and the transport itself (one TLS handshake
+ commit + push) is near its floor. Optimistic-retry (push onto the tip first,
reconcile only on a rejected push) already cut a whole second handshake. Breakdown
+ levers: [`notes/sync-latency.md`](notes/sync-latency.md).
---
## 3. House of Quality — WHATs × HOWs