gated-caller --stability: does the verdict depend on the stub? It does — and it hid a fourth undercount (dedicated self-tests are 8, not 4) - #556
Conversation
it does, and it hid a fourth undercount
This figure has been published as a count three times today and was a
property of the stub each time:
1 of 36 the stub died on AttributeError
2 of 36 it died on TypeError
4 of 36 it survives both
Chasing fidelity is unbounded and gives no signal for when to stop.
Running the SAME probe at TWO fidelities does: if the answer moves, the
answer depends on the instrument rather than on the repository.
Run once, it immediately found a fourth undercount in a field I had not
revisited since this morning:
SELFTEST MOVED rich=8 poor=5
only-rich: estate-provenance.py, pane-binding.py, pretooluse-guard.py
SWEPT MOVED rich=4 poor=2
CALLED / REACHED stable at 25
So "4 of 34 have a DEDICATED suite running --self-test" — the first line
this tool ever printed — was also low. It is 8.
This is the error term the exit-code line could not supply. Truncation
risk sat at 28 of 51 across a stub change that revealed two more real
callers, because an exit code says a suite ended badly and never says
WHERE. Two fidelities disagreeing is a fact about what went unseen.
STUB_POOR is kept deliberately: it is not dead code, it is the second
fidelity.
STABLE means only that these two stubs agree, never that the count is
right — a third fidelity may disagree with both, and the output says so.
Costs 2x, so it is opt-in and never the default.
Controls assert BOTH directions: the fixture hidden at one fidelity must
report MOVED, and a tree where both agree must report STABLE — otherwise
it is an alarm that always fires.
Measured at b20df2d.
DEV1
|
Warning Review limit reached
Next review available in: 22 minutes Limit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?Wait for the limit to reset, then comment An organization admin can change what happens after included review limits in Billing. How do review limits work?CodeRabbit enforces per-developer PR review limits within each organization. For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
⇒ Closing my own caveat: a THIRD fidelity does NOT move it. I expected it wouldDEV1. ⚠ This PR said "NOT established: whether a third, richer fidelity would move it again. I expect it would, and nothing here rules it out." ⇒ Built one and measured. My expectation was wrong. ⇒ ★ Three fields, no movement. That is evidence the sequence ⚠ An artefact I nearly reported as a findingThe variant also showed ⛔ And a structural limit I got wrong while reasoning about itI was about to write that no single sentinel can satisfy both ⇒ ⇒ |
This figure has been published as a count three times today and was a property of the stub each time:
⛔ Chasing stub fidelity is unbounded and gives no signal for when to stop. ⇒ Running the SAME probe at TWO fidelities does: if the answer moves, the answer depends on the instrument rather than on the repository.
⇒ Run once, it found a FOURTH undercount — in a field I had not revisited since this morning
⇒ ★ "4 of 34 have a DEDICATED suite running
--self-test" — the first line this tool ever printed — was also low. It is 8.★ This is the error term the exit-code line could not supply
⚠ #554 established that truncation risk sat at 28 of 51 across a stub change that revealed two more real callers — because an exit code says a suite ended badly and never says WHERE.
⇒ Two fidelities disagreeing is a fact about what went unseen. ⛔ It is not a bound either — the sets are what this tool can PROVE it was missing at the poorer fidelity, not the whole of it, because a third fidelity may move it again. The output says exactly that.
⇒ Design notes
STUB_POORis kept deliberately. It is not dead code, it is the second fidelity.STABLEmeans only that these two stubs agree, never that the count is right. The output refuses the stronger reading in words.Controls
Both directions, because an alarm that always fires is not a check: the
late.pyfixture — hidden at the poor fidelity, visible at the rich one — must report MOVED; a tree where both fidelities agree must report STABLE.⚠ NOT established: whether a third, richer fidelity would move it again. ⛔ I expect it would, and nothing here rules it out.
Measured at
b20df2d. — DEV1