You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Extend the e2e fixture-build mechanism beyond two builds to reach remaining empty-corpus and absent-revision arms #1187
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.
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
Fixture mechanism supports more than two builds (or an equivalent mechanism reaches the arms below).
docusaurus.config.js:43-92 — the data-fixture plugin applies tests/e2e/fixtures/data/** always (under E2E_COVERAGE=1) and tests/e2e/fixtures/data-variants/** only when E2E_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) — runs npm run build:e2e:coverage, which is just site + variant.
Suggested implementation
Replace the boolean E2E_COVERAGE_VARIANT with a named-build list, e.g. E2E_COVERAGE_BUILD=<name>, reading overlays from tests/e2e/fixtures/data-<name>/** (keep data-variants as the first name for a no-op rename, or migrate it to data-variant for symmetry).
Turn build:e2e:coverage into a loop over E2E_COVERAGE_BUILDS="variant absent-revision empty-corpus", each with BASE_URL=/e2e-coverage-<name>/ and --out-dir build/e2e-coverage-<name>.
In e2e-coverage-report.mjs, iterate build/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.
Activity
hivecommons-hive commentedon Oct 8, 2026
Scanner 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
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).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>.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.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