port: newly exported screens are REPORTED as uncompared, not failed and not allowed
Adding GP_OPTIONS put 14 screens into verify-screen's population that have never been compared by anyone. All 14 read DIFFERS at means of 10-60 against 0.02-7.3 for the calibrated set -- which says nothing yet, because nobody has looked at one of them, and because both the allowance AND the reference renderer were built against GP_TITLE. Failing on them would put the suite red for an uninvestigated state -- the wall of meaningless failures the display guard exists to prevent. Adding them to the allowed set would assert they are explained; verify-screen's own header is emphatic that 'allowed' means 'measured, cause open', not 'ignore'. So they get their own line naming them as NEVER COMPARED. The discriminator is the sprite group in the manifest path, so a screen becomes assertable when somebody moves it into the calibrated population deliberately, rather than by an export widening underneath the check. This is the risk I flagged before creating it, measured rather than assumed.
This commit is contained in:
@@ -270,6 +270,37 @@ printf ' %-24s allowing %s (additive set + 2 legacy)\n' verify-screen \
|
||||
unexpected=$(grep DIFFERS "$OUT/verify-screen.log" | awk '{print $1}' \
|
||||
| grep -vx "${allow_args[@]}" || true)
|
||||
|
||||
# 🔴 SCREENS FROM A NEWLY EXPORTED ARCHIVE HAVE NEVER BEEN COMPARED, AND THAT IS
|
||||
# NOT THE SAME AS DISAGREEING.
|
||||
#
|
||||
# `verify-screen` is renderer-vs-renderer, and BOTH its allowance and the
|
||||
# reference renderer itself were built against GP_TITLE. When the exporter gained
|
||||
# `GP_OPTIONS` (2026-09-03) its 14 screens all read DIFFERS at means of 10-60
|
||||
# against 0.02-7.3 for the calibrated set -- which says nothing yet, because
|
||||
# nobody has looked at a single one of them.
|
||||
#
|
||||
# They are REPORTED, not failed and NOT added to the allowed set. Failing would
|
||||
# put the suite red for a state nobody has investigated -- the wall of
|
||||
# meaningless failures the display guard exists to prevent. Allowing would assert
|
||||
# they are explained, and `verify-screen`'s own header is emphatic that the
|
||||
# allowed set means "measured, cause open", not "ignore this".
|
||||
#
|
||||
# The discriminator is the sprite group in the manifest path, so a screen becomes
|
||||
# assertable the moment somebody moves it into the calibrated population
|
||||
# deliberately, rather than by an export widening underneath the check.
|
||||
uncompared=$(python3 -c "
|
||||
import json
|
||||
m = json.load(open('export/manifest.json'))
|
||||
print('\n'.join(s['name'] for s in m['screens']
|
||||
if not s['file'].startswith('screens/title/')))" 2>/dev/null)
|
||||
if [ -n "$uncompared" ]; then
|
||||
still=$(echo "$unexpected" | grep -vxF -f <(echo "$uncompared") || true)
|
||||
newly=$(echo "$unexpected" | grep -xF -f <(echo "$uncompared") || true)
|
||||
unexpected="$still"
|
||||
[ -n "$newly" ] && printf ' %-24s %d screen(s) NEVER COMPARED (new archive, uncalibrated): %s\n' \
|
||||
verify-screen "$(echo $newly | wc -w)" "$(echo $newly | tr '\n' ' ')"
|
||||
fi
|
||||
|
||||
# 🔴 THE OLD ALLOWANCE WAS FALSE, AND MY FIRST REPLACEMENT REASON WAS ALSO
|
||||
# WRONG. Both are recorded because the second error is the more instructive.
|
||||
#
|
||||
|
||||
Reference in New Issue
Block a user