Skip to content

v1.7.1 — Quality Convergence

Choose a tag to compare

@Caldis Caldis released this 21 May 18:02
· 58 commits to master since this release

Quality convergence wave. Hardware verification of v1.7.0 surfaced eight separate defects across audio / wifi / build infrastructure. Fixing them was straightforward; the more important deliverable is the framework that catches the next instance of each defect class.

Defects fixed (anchored to lessons)

Defect Where Lesson
`audio tone` reported `bytes:0` despite playing audio.c L1 — `esp_codec_dev_write` returns `esp_err_t`, not POSIX bytes
`audio mic peak_dbfs:0.0` in silent rooms audio.c × 3 sites L2 — first DMA buffer is stale; needs throwaway read
Peak just above 0 dBFS on one-sample dropouts audio.c × 3 sites L3 — `abs(INT16_MIN) = 32768` overflows
`wifi disconnect` immediately reconnected wifi.c L4 — event handler needed user-intent flag
Console couldn't parse `ssid="…"` console_protocol.c — — tokenizer didn't honour quotes
`MBEDTLS_CRYPTO=n` ignored sdkconfig L6 — kconfig `select` trap
`wifi_init ESP_ERR_NO_MEM` with 39 KB free sdkconfig L7 — `STATIC_TX_BUFFER_NUM=16` is huge
`tap_hit` EVT unobservable from host L9 — async EVT framework gap (v1.8 backlog)

Quality infrastructure

  • `docs/lessons-v1.7.md` — ten lessons in the format What broke / Root cause / Why we missed it / Process change. Reference for every future release.
  • `tools/smoke.ps1` — pre-release gate. 13 cases, all regression-anchored: 4 host (`doctor 8/8`, `pytest 3/3`, `sim diff 13/13`, `manifest ≥17`) + 9 device (`?ping`, `?stat` fps/scene_count, `?sys`, audio tone bytes > 0, audio mic peak in [-90,-10], `?ota info`, scene switch). Each device case that traces back to a lesson carries an `(L regression)` tag — failures surface both symptom and root-cause doc reference.

Verification

Smoke gate: 13 / 13 green on hardware. Sim diff regression: 13 / 13 identical.

🤖 Generated with Claude Code