# task-30 (task-23 closure re-check) verdicts -- image 1d4b6a17, stamp Oct 26 2026 19:43:23 suite=NONE dstr=off
# criterion owner: lead;  verifier: scratch/bench23_verify.py (kept OUTSIDE the repo; repo untouched)
# the verifier anchors BOTH victim lines with ^...$ full-line regexes, so any spliced byte -> FAIL
#
# boot log files (raw daemon lines, byte order preserved, nothing rewritten):
#   R1 gen=264  R2 gen=265  R3 gen=266  R4 gen=267   -- all RESET ONLY via stlink_flash.py reset
#      (= "-c SWD -Rst -Run", zero flash writes); serial clear before each, so gen increments prove
#        each capture window starts fresh and each log is one single boot (anchor count below).
#
# per-boot results (5 boots total incl. the flash boot A):
boot  lines  [ERR]  dropped  prot_seen/exact/len  nand_seen/exact/head/len  anchors  faults  verdict
R1    166      0        0  1/[true]/91px          1/[true]/[true]/56px              1       0  PASS
R2    165      0        0  1/[true]/91px          1/[true]/[true]/56px              1       0  PASS
R3    165      0        0  1/[true]/91px          1/[true]/[true]/56px              1       0  PASS
R4    156      0        0  1/[true]/91px          1/[true]/[true]/56px              1       0  PASS
A     150      0        0    1/[true]/91px          1/[true]/[true]/56px            1       0  PASS  (flash boot)
#
# line order note (recorded, not judged): in ALL 5 boots the [NAND_FTL] line comes one line BEFORE
#   the [PROT] line (index 39 vs 40). In the defective image the [PROT] line came first and the
#   [NAND_FTL] line had lost its head. This is consistent with the fix design: the loser of the
#   whole-line claim is queued verbatim and emitted right after the winner's line.
#
# criterion 3 (no regression), same image measured 4 times:
#   ui      peak 4188/16384 (R1,R2,R4) and 4116/16384 (R3)  -> the SAME image alone swings 72 B
#           previous round (77779d49) measured 4088/16384; the +100 B step is inside that swing,
#           so it is NOT attributable to 1d4b6a17. Heap is byte-identical every boot AND identical
#           to the previous round: heap free=15624 min_ever=8464.
#   protect 492/2048 (identical to previous round), iec104 540/2560, net 1048/3840, ftp 740/4096,
#   timesync 616/2560, adc 920..1000/2560 (previous round 1000), default 2172/5120 (+12 B).
#   comm init anchor present in every boot: comm init: OK (ca=1 port=2404)  -- no comm [ERR].
#   prot set loaded x1, CORRUPT x0 in every boot.
#
# NON-VACUOUSNESS CONTROL (why this PASS means something):
#   the very same verifier, pointed at the pre-fix capture archived as
#   20261026_prod_77779d49_boot_log_reset_only.txt, returns rc=1 / verdict FAIL with
#   nand_head_ok=[false] and the neighbour line reading literally
#     "26-10-26 08:37:07][NAND_FTL] Initializing NAND FTL..."      <- its own "[20" head is gone
#   i.e. the check demonstrably catches the original defect.
#
# final chip state (run AFTER every log capture, since -CmpFile resets the target):
cmp rc=0
CMP: D:\Code\DTU Code\_wt\bench-23-1d4b6a17\MDK-ARM\STM32F407-Demo\STM32F407-Demo.hex vs device flash @ 0x08000000  (NOTE: connecting resets the target)
No difference found.
CMP: OK (No difference found)
