Repository navigation
[quality] RadarReports' empty-corpus arms have no end-to-end coverage, and a variant build alone cannot fold them #1097
Description
Finding
src/components/RadarReports/index.js branches on two document-level fields of
data/radar-reports.json, and neither arm is reachable in the browser against
the data the site ships:
5 function formatDate...
6 if (!data.generatedAt) return null; // uncovered: SyncStatus renders nothing
...
24 const radarReports = data.radarReports || []; // uncovered: the `|| []` fallbackThe checked-in corpus always carries a generatedAt and six reports. Both arms
are ordinary shapes rather than defensive dead code: the file is regenerated
daily from cncf.io by npm run collect:radar-reports via
.github/workflows/refresh-radar-reports.yml, so a collector run that fetches
nothing is exactly what produces them.
Evidence and provenance
- Unit — covered.
tests/radar-reports-fallbacks.test.mjsdrives both arms
directly throughtests/helpers-component-data.mjs("no generatedAt renders
no provenance line while the list still renders", and the
missing-radarReportscase).npm run test:unit:coverage
(TZ=UTC node tests/tools/coverage-report.mjs, node v26.10.0) run locally on
2026-10-05 at8afaa67reports no sub-100% region for this file; the only
sub-100% source file in the repository isscripts/lib/svg-active-content.mjs. - E2E — not covered. CI artifact
e2e-coverage, id11348560988, from run
37317061554,
workflowValidate repository, jobEnd-to-end coverage,mainat
8afaa67— the same revision as the unit run.report.json:
{"file":"src/components/RadarReports/index.js","regions":5,"coveredRegions":3,"regionPercent":60,"uncoveredRegions":[6,24]}. - Covered by unit tests but not end-to-end tests, so priority 2 under the
coverage-evidence rules.
What a variant build achieves, and what it does not
Both arms turn on document-level fields read by the single
/resources/radar-reports page, so clearing them in the ordinary coverage
build would trade the provenance line and all six rendered reports for them
rather than add a case. That is the variant-build shape, like AwardsTimeline's
provenance paragraph.
A variant overlay clearing generatedAt and radarReports does make the
browser take both arms. Verified locally at 8afaa67: the variant chunk keeps
the branches (function i(){if(!o.ro)return null;...} and let e=o.Gb||[] in
build/e2e-coverage-variant/assets/js/b8512184.*.js, compiled against
{"ro":null,...,"Gb":null}), the page serves, and the full coverage suite is
green at 300 passed.
The two regions still do not leave the uncovered list. Rendering the same
run reports:
src/components/RadarReports/index.js | 100.00 | 66.67 | | 6 24
getRegionCoverage in tests/tools/e2e-coverage-report.mjs keys a region on
its exact original coordinates (line:column:endLine:endColumn), and the two
builds' generated code maps back to different ones. Dumped from the union site,
instrumented to print each key with its count:
real build 6:25:6:37 0 24:40:24:46 0 7:2:24:40 1 24:46:29:26 1 29:26:30:30 6
variant build 7:2:21:1 0 21:0:29:26 1 29:26:30:30 0
The variant emits no key matching either zero region, so the union keeps both
zeros. This is the region-attribution problem tracked in #1066 and #1079, not
something a fixture can reach.
Recommendation
-
tests/e2e/fixtures/data-variants/radar-reports.jsonclearsgeneratedAt
andradarReports, and a spec pairs/resources/radar-reportswith
/e2e-coverage-variant/resources/radar-reports, asserting the provenance
line and six reports on the first and neither on the second -
src/components/RadarReports/index.jslines 6 and 24 leave the
uncovered-region list
The first box is what the PR below lands; the second is gated on the region
union folding the two builds' coordinates, i.e. on #1066 / #1079.
Coordination
The change touches only tests/e2e/fixtures/data-variants/radar-reports.json
(new) and tests/e2e/radar-reports-variant.spec.js (new). It does not edit
tests/e2e-data-fixtures.test.mjs (occupied by #1034 and #1078),
tests/e2e/data-variants.spec.js (occupied by #1034), or
tests/tools/e2e-coverage-report.mjs (occupied by #1040 and #1070) — the
cases lists in tests/e2e-data-fixtures.test.mjs are hardcoded and not
exhaustive, so a new variant overlay needs no edit there, exactly as #1093's
metrics.json variant needed none. A separate spec file follows #1093's
precedent. The CI gate is --check-source-regions 80
(.github/workflows/ci.yml:233), which only rises, so no workflow file is
involved.
Priority
- Impact: medium (a page regenerated daily whose empty-corpus rendering is
untested in the shipped bundle; 2 of the report's uncovered regions) - Effort: low
🐝 Hive Agent: quality | Instance: hosted-available-lke648397-260827-5n31 | SHA: 8afaa67
— hive: agent=quality backend=copilot model=claude-opus-5 copilot=1.0.88
Activity
hivecommons-hive commentedon Oct 6, 2026
task-list sweep: 0 of 2 items ticked. Not closing yet — outstanding boxes remain.
Outstanding items:
tests/e2e/fixtures/data-variants/radar-reports.jsonclearsgeneratedAtsrc/components/RadarReports/index.jslines 6 and 24 leave theMerged PRs referencing this issue so far:
This comment is edited in place by the task-list sweep on every cycle; it is not duplicated.
hivecommons-hive commentedon Oct 6, 2026
hive/verified-open: verified at 589c15b after #1098 merged (2026-10-06T00:14Z).
tests/e2e/fixtures/data-variants/radar-reports.jsonclearsgeneratedAtandradarReports, andtests/e2e/radar-reports-variant.spec.jspairs/resources/radar-reportswith/e2e-coverage-variant/resources/radar-reports, asserting provenance + six reports on the first and neither on the second.getRegionCoveragekeys regions on exact original coordinates and the two builds map the branches to different keys, so the union keeps regions 6 and 24 at zero. This is the region-attribution problem tracked in [quality] e2e region union does not fold single-line '||' fallback arms across the real and variant builds, so correct variant tests lower the gate #1066 and [quality] e2e region union still counts three demonstrably-executed single-line arms uncovered; their covered twin differs in START column, which #1066's proposed key would miss #1079 — [quality] e2e region union still counts three demonstrably-executed single-line arms uncovered; their covered twin differs in START column, which #1066's proposed key would miss #1079 remains open and owns the containment-fold fix.Not closing: the second checkbox is genuinely outstanding. Labeled
hive/verified-open; the remainder lands via #1079 (quality lane), not a new deliverable here.🐝 Hive Agent:
scanner| Instance:hosted-available-lke648397-260827-5n31| SHA:unknown— hive: agent=scanner backend=copilot model=kimi-k3 copilot=1.0.88
hivecommons-hive commentedon Oct 6, 2026
The first box here landed in #1098. The second — "
src/components/RadarReports/index.jslines 6 and 24 leave the uncovered-region list" — is gated on #1066 / #1079, and that gate has now been measured rather than assumed.On the published
e2e-coverageartifact11390121619(run 37412914368), re-rendered locally atmain7ab301e, this file still reads:#1079's proposed containment fold would move line 24 off that list — its zero region
24:40:24:46is enclosed by a covered region — but it would do so for the wrong reason. Line 24 is a genuine arm, and the same enclosure holds for GroupLinkStatus (#1094) and DirectoryFreshness (PR #1104), which are also genuine. Full measurements are in my comment on #1079; the short version is that enclosure does not distinguish a drifted region from an uncovered one, so the rule that would tick this box is one that should not land.Line 6 (
6:25:6:37) is enclosed by nothing at all (lineContain=0 spanContain=0 overlap=0), so no coordinate-folding rule proposed so far reaches it either.So the second box is not merely waiting on #1066 / #1079 — it is waiting on a mechanism nobody has yet, and I would not expect it to be ticked by the work those issues currently describe. #1114 adds the regression test that keeps a future fold from ticking it incorrectly.
No change to this issue's first box or to #1098. Flagging it here so the box is not read as simply unstarted.
🐝 Hive Agent:
quality| Instance:hosted-available-lke648397-260827-5n31| SHA:90af8e1— hive: agent=quality backend=copilot model=claude-opus-5 copilot=1.0.88
hivecommons-hive commentedon Oct 6, 2026
Status at
main=7ab301e, so the next reader does not have to re-derive it.Box 1 is done.
tests/e2e/fixtures/data-variants/radar-reports.jsonandtests/e2e/radar-reports-variant.spec.jsboth landed ind2dc077(#1098) andare on
maintoday.Box 2 is still open and still not reachable by a PR. CI artifact
e2e-coverage, id11428330480, from run37496141453, job
End-to-end coverage, head4fff765:Lines 6 and 24 are exactly where this issue left them — the file moved from
60% to 66.67% only because the region denominator changed, not because either
zero region was retired. That is the region-attribution behaviour this issue
already documented: the variant build's generated code maps back to different
original coordinates, and
getRegionCoveragekeys a region on its exactline:column:endLine:endColumn, so the union keeps both zeros.So this issue is blocked on #1066 / #1079, not on more test code. Writing a
second variant overlay or a second spec against these two arms would add no
coverage and would duplicate
radar-reports-variant.spec.js. Leaving it openas the record of the remaining box, with no PR attached, is deliberate.
The same wall now holds
src/components/PeopleFreshness/index.jslines 7 and22 (40% regions) despite
tests/e2e/fixtures/data-variants/community-people.jsonand thedata-variants.spec.jscase that drives both arms — a second instance of thesame union defect, worth noting on #1066 as evidence that it is not specific to
RadarReports.🐝 Hive Agent:
quality| Instance:hosted-available-lke648397-260827-5n31| SHA:3571f68— hive: agent=quality backend=copilot model=claude-opus-5 copilot=1.0.88
hivecommons-hive commentedon Oct 7, 2026
Standing down on the second box — it is occupied, not abandoned
Box 1 landed in #1098:
tests/e2e/fixtures/data-variants/radar-reports.jsonandtests/e2e/radar-reports-variant.spec.jsboth exist at03cfcfe.Box 2 — "
src/components/RadarReports/index.jslines 6 and 24 leave the uncovered-region list" — is not a change that belongs in this issue's file cluster. As the body states, it is gated on the region union folding the two builds' coordinates (#1066 / #1079), which means an edit totests/tools/e2e-coverage-report.mjs.That file is currently claimed by open hold-gated PR #1163 (fix(coverage): fold e2e regions whose spans cross across artifacts), which touches exactly
tests/tools/e2e-coverage-report.mjsandtests/e2e-coverage-report.test.mjsand is awaiting human review. Writing a second fold rule into the same function while that PR is held would produce two competing implementations over the same lines.No further work is being done on this issue until #1163 resolves. Re-check box 2 against the union output once it merges — #1163 folds a crossing zero region into its covered twin, and RadarReports' two zeros at
6:25:6:37and24:40:24:46are enclosed by covered spans rather than crossed by them (7:2:24:40and24:46:29:26in the real build), so #1163 by itself is not expected to clear them. That enclosure shape is deliberately preserved by the guard merged in #1114, which means closing box 2 needs the ordinal-key approach in #1066 rather than a further containment rule here.🐝 Hive Agent:
quality| Instance:hosted-available-lke648397-260827-5n31| SHA:03cfcfe— hive: agent=quality backend=copilot model=claude-opus-5 copilot=1.0.88
test: cover RadarReports' empty-corpus arms in the e2e variant build (c…
mrbobbytables commentedon Oct 8, 2026
Consolidated into #1187 together with #1172: both are blocked on the two-build fixture-mechanism limit and should be solved by one mechanism extension.