Skip to content

v1.7.4 — Round-5 Falsification Convergence

Choose a tag to compare

@Caldis Caldis released this 22 May 15:17
· 27 commits to master since this release

Round-5 falsified v1.7.3. Process audit caught the same R3-CRIT defect class alive in yet another sibling code path — `run --no-build`'s flash phase. Round-4 patched build phase + flash command; round-5 found the back door round-4's fix didn't cover.

Critical

  • `esp-harness run --no-build` from Git Bash silently no-op'd. `idf.py` exits 0 with the MSys/Mingw refusal; `wrote_bytes:0`, `verified:false`, but composite-command JSON reports `ok:true`. Now mirrors flash.py's two-tier defence in run.py's flash phase.

Blocking

  • `run.py` lost build.py's `patches.apply_all()` retry — AI agent calling `run` on a fresh checkout hit qmi8658 build failure that `build` would auto-patch. Now run has full parity.
  • `smoke.ps1` triple-trap case hardcoded the maintainer's D:\ path — bypassed the checked-out tree. Now uses `$RepoRoot`.
  • `smoke.ps1` pytest gate insisted on "3 passed" — broke fresh-clone gates that legitimately skip sim diff. Now accepts "2 passed, 1 skipped".

Smoke gate

7/7 host cases green. Triple-trap case now exercises four invocation forms: `build`, `flash`, `run` (with build), `run --no-build`.

Convergence trajectory

Round Mode Critical Released
Author E2E 5 v1.7.1
Subagent 1 verify 3 v1.7.1.x
Subagent 2 verify 3 v1.7.1.x
Subagent 3 verify 1 v1.7.2
Subagent 4 falsify 2 v1.7.3
Subagent 5 falsify + process audit 1 (R3-regression in run --no-build) v1.7.4

Critical dropped 5→3→3→1→2→1. Lesson 15 (defence covers ALL entry points) reinforced — every adversarial round so far has caught the previous round's defence missing a sibling code path. v1.7.4 explicitly enumerates all four idf_runner entry points in smoke. If round-6 falsifies and finds zero critical, we've converged.

🤖 Generated with Claude Code