From the round-1 review of #212 (issues #148, #113).
Where: scripts/fleet/check_cards.py classify() and GROWTH_TOLERANCE, and _fleet/README.md:189.
Problem 1: the tolerance doesn't cover a refresh interval. CellStructureMech adds about 2 records an hour, roughly 9% a day against its 542 card. The 10% figure came from a single lead measured 17 hours after the pins (6.5%), not from growth over the time between refreshes.
Problem 2: a mistyped card inside 10% only warns. Say HabitatMech's card is typed 3,026 instead of 3,206. The live page is byte-identical to the pin (site_html_sha256 == site_html_sha256_at_pin), so the site can't have grown. The check still prints "grew ... +5.9%" and exits 0. site_audit.json already holds the pinned page hashes, and the check doesn't read them.
Fix: base the verdict on the audit, not on a fixed percentage:
- Wrong card: fail when the live source is byte-identical to its pinned copy but states a different figure.
- Growth: a warning for a bounded time after
pinned_at_utc, and a failure after that.
From the round-1 review of #212 (issues #148, #113).
Where:
scripts/fleet/check_cards.pyclassify()andGROWTH_TOLERANCE, and_fleet/README.md:189.Problem 1: the tolerance doesn't cover a refresh interval. CellStructureMech adds about 2 records an hour, roughly 9% a day against its 542 card. The 10% figure came from a single lead measured 17 hours after the pins (6.5%), not from growth over the time between refreshes.
classify(542, 596)returns grew andclassify(542, 597)returns STALE.Problem 2: a mistyped card inside 10% only warns. Say HabitatMech's card is typed 3,026 instead of 3,206. The live page is byte-identical to the pin (
site_html_sha256 == site_html_sha256_at_pin), so the site can't have grown. The check still prints "grew ... +5.9%" and exits 0.site_audit.jsonalready holds the pinned page hashes, and the check doesn't read them.Fix: base the verdict on the audit, not on a fixed percentage:
pinned_at_utc, and a failure after that.