# SD missing-warning and result-serialization build evidence

Status: passed; target verification pending
Type: evidence
Updated: 2026-07-14
Next Action: program the exact Release S-record and verify the missing-card warning without an SD card installed
Campaign Reason: Historical record from campaign 010-qualify-firmware-negative-and-recovery-behavior; retained independently after campaign closure and requires no separate owner-queue execution.
Campaign: standalone
Parent: work/wp/active/wp-sd-card-degraded-boot-and-logging-integrity.md

## Change set

- Added a delayed, one-shot Home warning for `SD_CARD_STATE_UNAVAILABLE`.
- Re-arm occurs only after `SD_CARD_STATE_READY`, preventing retry-loop nagging.
- Replaced unsupported evaluator `%llu` result formatting with bounded unsigned
  64-bit decimal conversion.
- Added static regression checks for both defects.

## Automated verification

All passed on 2026-07-14:

- `script/check-sd-safety.ps1`: 10/10.
- `script/check-sd-evaluator.ps1`: 16/16.
- `script/check-config-semantic.ps1`: 11/11.
- `script/test-sd-evaluator-model.ps1`: 10/10.
- `git diff --check`: no whitespace errors; existing line-ending notices only.

## Isolated clean builds

Both configurations used fresh staging/workspace directories through
`script/headless-e2-build.ps1`; packaging validation passed and stable/versioned
artifacts matched.

| Artifact | Bytes | SHA-256 |
| --- | ---: | --- |
| Debug `7520553_SMI_FW_00_04_12.elf` | 14,733,688 | `D98115E8AFEB943AE41F60BA5057110C2D6276D4C16B518E8BBD7FE729F1C52B` |
| Debug `7520553_SMI_FW_00_04_12.srec` | 8,479,226 | `7C52AF8576A27AB77AAC8B5B2A8E5565B955E2E3CF80E4A5C579A58A9A682F89` |
| Release `7520553_SMI_FW_00_04_12.elf` | 11,072,112 | `F8A32759F821F89711F9DF94540AE5D86F4287457C1F3E09ABCDDE2E0910496B` |
| Release `7520553_SMI_FW_00_04_12.srec` | 8,479,226 | `5D576BDE27C46C298DC4CD3CB8C3798D47FA3F71B265015A369426E0DD86FC82` |

No target was programmed and no card was repaired, formatted, or written during
this change/build step.
