Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

[quality] e2e coverage gate's recorded measurement is stale at 1ae3403: 651/671 and 20 zeros against a measured 655/676 and 21

Open
#1,497 4 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

@hivecommons-hive is already working on this.

Since Oct 14, 2026.

  • #1498 by @hivecommons-hive — open

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
25/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Stale
Tech stack
javascript, nodejs
Domain
testing

Research direction

The work is in tests/e2e-coverage-gate.test.mjs: the ceiling comment and the Node-major table hold the stale 651/671 figures, and the staleness guards are MEASURED_ON_NODE_MAJOR and MEASURED_AT_SPEC_COUNT. Check open PR #1498 first, since it may already cover this. Reuse enumerateSourceFiles() from tests/tools/coverage-report.mjs for a new guard keyed on the src/** module set. Done means the comments match run 38635988670 (655/676, 21 at zero, MirrorSyncStatus.js:22 twice) and the new guard fails when the module set changes.

Written by the indexing model from the issue text.

Description

agent/quality hive/covered-by-pr hive/hosted-available-lke648397-260827-5n31 quality testing

Finding

tests/e2e-coverage-gate.test.mjs carries the recorded measurement the e2e
region floors rest on. At main 1ae3403 that record no longer describes the
tree it says it was measured on.

The file states:

// Ceiling, measured on the current tree (651/671, 97.02%): 20 regions at
// zero.

and, in the Node-major comparison table:

//   src files (aggregate)                    651/671 97.02% 650/667 97.45%

The End-to-end coverage job on that same commit reports something else.

Provenance. Workflow .github/workflows/ci.yml, job e2e-coverage,
command npm run report:e2e:coverage — run
https://github.com/cncf/endusers/actions/runs/38635988670 (job
116099178223, conclusion success), artifact e2e-coverage,
report.json runId 38635988670-1, head SHA
1ae340352d8708a8a1e05c5ad3f400fe7e892b21. Checked against
gh api repos/cncf/endusers/commits/1ae3403.../check-runs, which names that
run for this commit.

Measured there:

recorded in the file run 38635988670
src files (aggregate) regions 651/671 (97.02%) 655/676 (96.89%)
regions at zero 20 21
files at the --check-source-file-regions 66 floor PeopleFreshness only PeopleFreshness 2/3 and shared/MirrorSyncStatus.js 6/9

Per-file zeros from that run:

src/components/CaseStudies/index.js                      67/68  98.53  [48]
src/components/CommunityPeople/index.js                  51/52  98.08  [134]
src/components/GroupLinkStatus/index.js                  14/17  82.35  [14, 24, 24]
src/components/hooks/useFocusTrap.js                     22/23  95.65  [35]
src/components/MemberDirectory/DirectoryFreshness.js     11/15  73.33  [19, 30, 44, 49]
src/components/MetricsDashboard/index.js                 69/71  97.18  [65, 85]
src/components/PeopleFreshness/index.js                   2/3   66.67  [13]
src/components/RadarReports/index.js                     10/11  90.91  [8]
src/components/ReferenceArchitectures/index.js           42/44  95.45  [15, 29]
src/components/shared/MirrorSyncStatus.js                 6/9   66.67  [20, 22, 22]
src/lib/profile-links.mjs                                13/15  86.67  [68, 68]

Three discrepancies, all in the same note:

  1. The aggregate is 655/676 (96.89%), not 651/671 (97.02%). The prose
    reasons from the recorded figure about how much slack
    --check-source-regions 96 has; the real headroom is 0.89 points, not
    1.02.
  2. The zero list enumerates src/components/shared/MirrorSyncStatus.js:22
    once. The run records it twice, which is why the totals read 20 against an
    actual 21 — the same (x2) the note already uses for
    GroupLinkStatus/index.js:24 and src/lib/profile-links.mjs:68.
  3. --check-source-file-regions 66 is no longer bound by one file. The note
    says "(PeopleFreshness, 2/3, whose one zero is in that residual)";
    src/components/shared/MirrorSyncStatus.js is 6/9 = 66.67% as well, so two
    files now sit exactly on that floor, and the Node-major table lists neither
    it nor the new src/components/shared/initials.js.

This is not lost coverage. Unit coverage at the same commit is
src files 100.00% lines (9771/9771), 100.00% regions (2811/2811)
(npm run test:unit:coverage). The e2e denominators moved because #1439
extracted src/components/shared/MirrorSyncStatus.js and
src/components/shared/initials.js, and #1469/#1487 changed which arms a
fixture build reaches. Every zero above is already classified in the note's
own residual taxonomy.

Why nothing went red. The file guards its own staleness with
MEASURED_ON_NODE_MAJOR (still 22, correct) and MEASURED_AT_SPEC_COUNT
(40; tests/e2e/*.spec.js is still 40). Neither moves when the measured
src/** module set changes, which is exactly what #1439 did — the note itself
says so: "#1439 moved every one of them with nothing going red."

Recommendation

One change to one file, tests/e2e-coverage-gate.test.mjs:

  • Correct the ceiling line to 655/676, 96.89% and 21 regions at zero,
    and record src/components/shared/MirrorSyncStatus.js:22 (x2).
  • Correct the Node-major table's aggregate row to the measured
    655/676 96.89%, and note that --check-source-file-regions 66 is now
    bound by two files rather than one.
  • Add a third staleness guard beside MEASURED_AT_SPEC_COUNT keyed on the
    measured src/** module set — the other input that re-measures the lane
    — so the next extraction fails here instead of silently invalidating the
    record. It can reuse enumerateSourceFiles() from
    tests/tools/coverage-report.mjs, which the e2e reporter already uses
    for --require-source-files, so it needs no browser, build or coverage
    run, exactly like the spec-count proxy.

The floors themselves (--check-source 100, --check-source-regions 96,
--check-source-file-regions 66) all still clear on the measured run and are
not proposed for change here.

Priority

  • Impact: medium — the record is the stated input for every future ratchet of
    the e2e region floors, and it currently overstates the aggregate headroom.
  • Effort: low — comments plus one guard in a single file.

🐝 Hive Agent: quality | Instance: hosted-available-lke648397-260827-5n31 | SHA: 1ae3403

— hive: agent=quality backend=copilot model=claude-opus-5 copilot=1.0.88

Dominant language
JavaScript
Stars
0
Forks
2
Avg merge
16h 38m
Merged PRs (30d)
608

Getting set up

Open in Codespaces

Starts the project's dev container in your browser, under your own GitHub account.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from cncf/endusers

All issues in cncf/endusers

Similar issues

More JavaScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.