What is wrong
examples/common — the ladder's shared hand-written GUI and testkit code — has
fallen 5.46 points below the figure its own coverage target was derived from,
and no check said so.
codecov.yml records the measurement the target was set against:
Together these put today's real ceiling at 478/485 = 98.56% lines
and sets target: 95%, with a comment noting the component was measured at
95.85% when rungs 2-4 entered the report.
Measured on master today: 90.39%.
It is below its own target, and the status is informational: true, so the
build is green. That mechanism is morph#402; this ticket is the regression
itself, which needs finding and closing regardless of how the gate is resolved.
Why this component and not another
codecov.yml describes examples/common as carrying the whole of
examples/IMPLEMENTATION.md rule 5's promise:
The ladder's hand-written GUI/testkit code is held to the same 100% bar
examples/IMPLEMENTATION.md rule 5 sets for models (there are no rung models
yet — rung 0 ships no app — so this component is the whole of that promise
today)
It is also the component whose own file documents a 98.56% measured ceiling
with all seven artifact lines enumerated by name — backend_rig.hpp's three
switch-case closing braces, strand_interleaver.hpp's two post-task() braces,
fault_proxy.cpp's null-guard pair. A component with that level of accounting
sitting eight points under its documented ceiling means real code arrived
untested, not that the artifact set grew.
The likely shape of it
examples/common has grown since that measurement — db_busy_fixture.hpp and
backend_rig.hpp's executor-liveness guard are both named in codecov.yml as
post-measurement additions, and rungs 5-7 (ledger, lims, crm) landed after it.
Testkit code added to serve a new rung, and not itself tested, is the most
probable source. This is a hypothesis, not a finding — see below.
Verification status: reproduced (the regression), inferred (its cause)
Reproduced. Codecov API for LASTRADA-Software/morph,
/components/?branch=master: ladder → 90.39, against target: 95% in
codecov.yml on the same ref. The 95.85% and 98.56% figures are quoted from
that file's own comments.
Not verified: which files regressed. That needs a per-file comparison
against the report from the commit codecov.yml's comment was written at, and I
did not run one. The paragraph above is a hypothesis and should be tested rather
than assumed.
What would close this
- The per-file source of the regression is identified — which files in
examples/common are below where they were, with numbers, not a narrative.
examples/common is back at or above 95%, or its documented ceiling is
re-derived with the same enumerate-every-artifact-line discipline the current
comment uses and the target moved deliberately, with both figures recorded.
- The seven known artifact lines are re-confirmed as still being the whole
artifact set. If new ones appeared, they are named individually — a ceiling
that drifts without an audit is how a target stops meaning anything.
Not closable by lowering the target to 90%. That is the move codecov.yml
already argues against for the rungs, and it would convert a regression into a
new baseline.
What is wrong
examples/common— the ladder's shared hand-written GUI and testkit code — hasfallen 5.46 points below the figure its own coverage target was derived from,
and no check said so.
codecov.ymlrecords the measurement the target was set against:and sets
target: 95%, with a comment noting the component was measured at95.85% when rungs 2-4 entered the report.
Measured on
mastertoday: 90.39%.It is below its own target, and the status is
informational: true, so thebuild is green. That mechanism is morph#402; this ticket is the regression
itself, which needs finding and closing regardless of how the gate is resolved.
Why this component and not another
codecov.ymldescribesexamples/commonas carrying the whole ofexamples/IMPLEMENTATION.mdrule 5's promise:It is also the component whose own file documents a 98.56% measured ceiling
with all seven artifact lines enumerated by name —
backend_rig.hpp's threeswitch-case closing braces,
strand_interleaver.hpp's two post-task()braces,fault_proxy.cpp's null-guard pair. A component with that level of accountingsitting eight points under its documented ceiling means real code arrived
untested, not that the artifact set grew.
The likely shape of it
examples/commonhas grown since that measurement —db_busy_fixture.hppandbackend_rig.hpp's executor-liveness guard are both named incodecov.ymlaspost-measurement additions, and rungs 5-7 (ledger, lims, crm) landed after it.
Testkit code added to serve a new rung, and not itself tested, is the most
probable source. This is a hypothesis, not a finding — see below.
Verification status: reproduced (the regression), inferred (its cause)
Reproduced. Codecov API for
LASTRADA-Software/morph,/components/?branch=master:ladder→ 90.39, againsttarget: 95%incodecov.ymlon the same ref. The 95.85% and 98.56% figures are quoted fromthat file's own comments.
Not verified: which files regressed. That needs a per-file comparison
against the report from the commit
codecov.yml's comment was written at, and Idid not run one. The paragraph above is a hypothesis and should be tested rather
than assumed.
What would close this
examples/commonare below where they were, with numbers, not a narrative.examples/commonis back at or above 95%, or its documented ceiling isre-derived with the same enumerate-every-artifact-line discipline the current
comment uses and the target moved deliberately, with both figures recorded.
artifact set. If new ones appeared, they are named individually — a ceiling
that drifts without an audit is how a target stops meaning anything.
Not closable by lowering the target to 90%. That is the move
codecov.ymlalready argues against for the rungs, and it would convert a regression into a
new baseline.