Skip to content

check_ont_ratchet.sh probes a BARE pv (pvbin="$(command -v pv)") — on a fleet-clobbered runner (pv 0.65.2, no census) it reads 'no consumer' and REDs an honest anchored rise; check_apr_bin_pinned.sh is blind to the form #3679

Description

@noahgift

What happened (measured 2026-09-21, #3669 guard-tree job 106269529439, head 55b123f2f)

check_ont_ratchet.sh FAILed: contracts_anchored rose 3 -> 6 while consumer_present=false. The consumer probe (scripts/check_ont_ratchet.sh:45-57) is:

pvbin="$(command -v pv 2>/dev/null || true)"
help_out="$("$pvbin" --help 2>&1 || true)"
grep -qE '^[[:space:]]+census[[:space:]]' <<<"$help_out" || return 1

That's a bare pv from PATH. On intel the fleet pin is being clobbered to 0.65.2 (paiml-implement#315), and 0.65.2 has no census. So the probe answers "no consumer" about the runner, not about the tree. In-tree pv has census (ONT-1 landed: contracts/census.json is produced by it). It's the same class as #3567 (the shapes gate on an unpinned pv), and it's the sibling that #3567's repair didn't touch.

The pinned-binary guard is blind to this form. check_apr_bin_pinned.sh:503 must-match table: 'PV=$(command -v pv)' 'require_tool pv "x"' 'which pv'. It has no row for <anyvar>="$(command -v pv …)", so a lowercase variable name and a redirect walk past it.

done_when

Found by the cop while triaging #3669's reds. #3669 takes the restamp (make ont-ratchet with a census-capable pv); this row is the root cause. Refs #3567, paiml-implement#315.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P0Critical prioritybugSomething isn't workingont-0.70Ontology spec work that must finish in 0.70 (operator 2026-09-23)

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions