From the round-2 review of #212.
Where: scripts/fleet/check_cards.py check(), the datetime.fromisoformat(pinned_at) subtraction.
- No offset:
"2026-10-10T02:00:00" makes a naive datetime, and subtracting it from an aware now raises TypeError.
- Not ISO:
"2026-10-10 02:00 UTC" raises ValueError.
Either escapes main() before anything prints: a traceback, exit 1, no rows. That is the whole-report loss #220 fixed for fetches. Nothing constrains the field's format, and its name (_utc) invites leaving the offset off.
Fix: treat a time with no offset as UTC. Report an unreadable time as its own failing row instead of raising. Add a provenance test that the committed value parses.
From the round-2 review of #212.
Where:
scripts/fleet/check_cards.pycheck(), thedatetime.fromisoformat(pinned_at)subtraction."2026-10-10T02:00:00"makes a naive datetime, and subtracting it from an awarenowraises TypeError."2026-10-10 02:00 UTC"raises ValueError.Either escapes
main()before anything prints: a traceback, exit 1, no rows. That is the whole-report loss #220 fixed for fetches. Nothing constrains the field's format, and its name (_utc) invites leaving the offset off.Fix: treat a time with no offset as UTC. Report an unreadable time as its own failing row instead of raising. Add a provenance test that the committed value parses.