Repository navigation
Extend the e2e fixture-build mechanism beyond two builds to reach remaining empty-corpus and absent-revision arms #1187
Copy link
Copy link
Closed
Labels
hive/covered-by-prHive verified that an open PR references or claims this issue; still actionable until confirmedHive verified that an open PR references or claims this issue; still actionable until confirmedqualityApproved by a Hive merger/owner for auto-merge on green CIApproved by a Hive merger/owner for auto-merge on green CItestingApproved by a Hive merger/owner for auto-merge on green CIApproved by a Hive merger/owner for auto-merge on green CI
Description
Activity
- addedqualityApproved by a Hive merger/owner for auto-merge on green CIApproved by a Hive merger/owner for auto-merge on green CItestingApproved by a Hive merger/owner for auto-merge on green CIApproved by a Hive merger/owner for auto-merge on green CI
on Oct 8, 2026 hivecommons-hive commented
on Oct 8, 2026 ContributorMore actionsScanner analysis (main @ e13f506) — touchpoints mapped, generalization sketched
The two-build limit is hardcoded in exactly four places; nothing else knows the build count:
package.json:77—build:e2e:coverage:varianthardcodesE2E_COVERAGE_VARIANT=1,BASE_URL=/e2e-coverage-variant/,--out-dir build/e2e-coverage-variant.docusaurus.config.js:43-92— the data-fixture plugin appliestests/e2e/fixtures/data/**always (underE2E_COVERAGE=1) andtests/e2e/fixtures/data-variants/**only whenE2E_COVERAGE_VARIANT=1; fixture-docs route likewise gated.tests/tools/e2e-coverage-report.mjs:399,608— merge logic assumes "the real build and the data-variant build" (two artifacts)..github/workflows/ci.yml:234(e2e-coverage job) — runsnpm run build:e2e:coverage, which is just site + variant.
Suggested implementation
- Replace the boolean
E2E_COVERAGE_VARIANTwith a named-build list, e.g.E2E_COVERAGE_BUILD=<name>, reading overlays fromtests/e2e/fixtures/data-<name>/**(keepdata-variantsas the first name for a no-op rename, or migrate it todata-variantfor symmetry). - Turn
build:e2e:coverageinto a loop overE2E_COVERAGE_BUILDS="variant absent-revision empty-corpus", each withBASE_URL=/e2e-coverage-<name>/and--out-dir build/e2e-coverage-<name>. - In
e2e-coverage-report.mjs, iteratebuild/e2e-coverage-*/directories instead of the two hardcoded paths — the containment-fold merge (fix(coverage): fold e2e regions whose spans cross across artifacts #1163) is already build-count-agnostic, so the change is enumeration, not new fold logic. - Then add the two consumers as overlays: an absent-revision shape for ReferenceArchitectures ([quality] ReferenceArchitectures' absent-revision guard needs a third build; the two-build fixture mechanism has no room left #1172) and an empty-corpus shape for RadarReports ([quality] RadarReports' empty-corpus arms have no end-to-end coverage, and a variant build alone cannot fold them #1097). Each new build adds ~one Docusaurus compile to the e2e-coverage job, so CI time grows linearly — worth stating in the PR.
The overlay engine itself (add/replace/remove ops, fail-loud on shape drift) needs no changes — only the build enumeration around it.
— scanner agent (analysis of human-filed issue)
🐝 Hive Agent:
scanner| Instance:hosted-available-lke648397-260827-5n31| SHA:e13f506— hive: agent=scanner backend=copilot model=kimi-k3 copilot=1.0.88
- addedhive/covered-by-prHive verified that an open PR references or claims this issue; still actionable until confirmedHive verified that an open PR references or claims this issue; still actionable until confirmed
on Oct 8, 2026
Metadata
Metadata
Assignees
Labels
hive/covered-by-prHive verified that an open PR references or claims this issue; still actionable until confirmedHive verified that an open PR references or claims this issue; still actionable until confirmedqualityApproved by a Hive merger/owner for auto-merge on green CIApproved by a Hive merger/owner for auto-merge on green CItestingApproved by a Hive merger/owner for auto-merge on green CIApproved by a Hive merger/owner for auto-merge on green CI
Consolidates #1172 and #1097 — both are blocked on the same structural limit: the e2e data-fixture mechanism supports exactly two builds (base + variant overlay), and the remaining uncovered arms each need data shapes the two existing builds cannot express simultaneously.
Scope
Suggested approach
Rather than solving each case with one-off fixtures, extend
tests/tools/e2e-data-fixtures.cjs(and the coverage-merge tooling) to support N named fixture builds, then add the two data shapes above as the first consumers. PR #1171 (metrics trends fallback) shows how far the overlay engine can be stretched — these two are the cases it provably cannot reach.Completion criteria