Finding
src/components/ReferenceArchitectures/index.js line 13 is the guard that
drops the whole provenance line when the architectures source carries no
revision:
11 function SyncStatus() {
12 const architectures = metrics?.sources?.architectures;
13 if (!architectures?.revision) return null;
14 const shortRevision = architectures.revision.slice(0, 7);
No build reaches it, and — unlike the trends fallback in #1170 — no overlay
operation can be added that would. This is the first branch in the repository
that genuinely proves the two-build ceiling the fixture mechanism was
designed around.
Why the existing mechanism cannot reach it
data/metrics.json always carries a revision:
$ python3 -c "import json;print(json.load(open('data/metrics.json'))['sources']['architectures'])"
{'repository': 'https://github.com/cncf/architecture',
'revision': '3ddf917facd0aea9694cc9c12c52e583fd2f86cb',
'sourceUrl': '.../content/en/architectures'}
sources.architectures.revision is a single document-level field on the one
file the one /architectures page reads, so it is a swap, not an addition —
the shape tests/e2e/fixtures/data-variants/ exists for. But the variant build
is already spent on a conflicting state for this very component:
| build |
generatedAt |
revision |
what SyncStatus covers |
| ordinary |
present |
present |
lines 14–33 and the ` on ${syncDate}` arm at 34 |
| variant |
cleared |
present |
lines 14–33 and the '' arm at 34 |
| nothing |
— |
cleared |
the return null at line 13 |
Clearing revision in the variant build would make SyncStatus return at line
13 and take lines 14–34 with it, including the '' arm at 34 that the variant
is currently the only build to reach. It trades one region for another rather
than adding a case — the same swap the variant build was introduced to avoid,
one level up.
Nor does the add operation proposed in #1170 help here. add works for the
trend grid because that collection is keyed, so a fixture record can render
beside the real ones. sources.architectures.revision is a scalar on a
singleton: there is nothing to add it beside.
Evidence and provenance
Recommendation
The mechanism needs to generalise from "the variant build" to "a variant
build", so a second overlay directory compiles a third site under its own base
URL the way build:e2e:coverage:variant compiles the second:
Scoping note: the third and fourth boxes are the coverage this exists for, but
they cannot land without the first two, and the first two are not independently
useful — a named-variant mechanism with no second variant is dead weight. They
are therefore one deliverable and one PR, not four issues.
Coordination — blocked on #1171
This must not start until #1171
(hold-gated, for #1170) lands or closes. That PR rewrites
tests/tools/e2e-data-fixtures.cjs (the add operation),
tests/e2e/fixtures/data-variants/metrics.json and
tests/e2e-data-fixtures.test.mjs — the same three files the first two boxes
above edit. Two PRs over overlayDirs() and the same overlay would conflict on
every merge.
It is disjoint from the other open hold-gated PRs: not
tests/tools/e2e-coverage-report.mjs (#1163), not scripts/audit-gate.mjs
(#1161), not tests/architecture-content-mirror.test.mjs (#1165), not
CONTRIBUTING.md (#1166). No workflow file is involved — build:e2e:coverage
is a package.json script, and the e2e gate is --check-source-regions 91
(.github/workflows/ci.yml:256), which only rises.
Priority
- Impact: medium (one uncovered region, but it is the first proof that the
two-build mechanism has a ceiling; every future branch keyed on a scalar
singleton that conflicts with an existing variant lands in the same place)
- Effort: medium
🐝 Hive Agent: quality | Instance: hosted-available-lke648397-260827-5n31 | SHA: fd1383e
— hive: agent=quality backend=copilot model=claude-opus-5 copilot=1.0.88
Finding
src/components/ReferenceArchitectures/index.jsline 13 is the guard thatdrops the whole provenance line when the architectures source carries no
revision:
No build reaches it, and — unlike the
trendsfallback in #1170 — no overlayoperation can be added that would. This is the first branch in the repository
that genuinely proves the two-build ceiling the fixture mechanism was
designed around.
Why the existing mechanism cannot reach it
data/metrics.jsonalways carries a revision:sources.architectures.revisionis a single document-level field on the onefile the one
/architecturespage reads, so it is a swap, not an addition —the shape
tests/e2e/fixtures/data-variants/exists for. But the variant buildis already spent on a conflicting state for this very component:
generatedAtrevisionSyncStatuscovers` on ${syncDate}`arm at 34''arm at 34return nullat line 13Clearing
revisionin the variant build would makeSyncStatusreturn at line13 and take lines 14–34 with it, including the
''arm at 34 that the variantis currently the only build to reach. It trades one region for another rather
than adding a case — the same swap the variant build was introduced to avoid,
one level up.
Nor does the
addoperation proposed in #1170 help here.addworks for thetrend grid because that collection is keyed, so a fixture record can render
beside the real ones.
sources.architectures.revisionis a scalar on asingleton: there is nothing to add it beside.
Evidence and provenance
Unit — covered.
npm run test:unit:coverage(
TZ=UTC node tests/tools/coverage-report.mjs, node v26.10.0) run locally on2026-10-07 at
03cfcfereportssrc files | 100.00 | 99.92 | 8984/8984 lines | 2545/2547 regions; the only sub-100% files in the run arescripts/lib/architecture-content.mjsandscripts/lib/svg-active-content.mjs.src/components/ReferenceArchitectures/index.jsis at 100% of both.E2E — not covered. CI artifact
e2e-coverage, id11492367935, from run37641752914,
workflow
Validate repository, jobEnd-to-end coverage, head03cfcfeb9ea28e9b1cdb55ef0a9514daccfe747e— the same revision as the unitrun.
report.txt:Region 34 is the
''arm the variant build already takes; it is counteduncovered for the region-attribution reason 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 / [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 and is
not what this issue is about. Region 13 is reached by no build.
No overlay names the field.
grep -rn 'sources' tests/e2e/fixtures/data*/metrics.jsonreturns nothing at
03cfcfe.Covered by unit tests but not end-to-end tests, so priority 2 under the
coverage-evidence rules.
Recommendation
The mechanism needs to generalise from "the variant build" to "a variant
build", so a second overlay directory compiles a third site under its own base
URL the way
build:e2e:coverage:variantcompiles the second:tests/tools/e2e-data-fixtures.cjs'soverlayDirs()resolves a namedvariant (for example
E2E_COVERAGE_VARIANT=no-revisionselectingtests/e2e/fixtures/data-variants/no-revision/), keeping today'sdirectory as the default name so no existing overlay moves
package.jsongains the matching build pass, andtests/e2e-data-fixtures.test.mjspins that each named variant is builtbefore the e2e run and served under its own base URL
sources.architectures.revision, and a spec pairs/architectureswith the new variant route, asserting the provenanceline renders on the first and is absent on the second
src/components/ReferenceArchitectures/index.jsline 13 leaves theend-to-end report's uncovered-region list
Scoping note: the third and fourth boxes are the coverage this exists for, but
they cannot land without the first two, and the first two are not independently
useful — a named-variant mechanism with no second variant is dead weight. They
are therefore one deliverable and one PR, not four issues.
Coordination — blocked on #1171
This must not start until #1171
(hold-gated, for #1170) lands or closes. That PR rewrites
tests/tools/e2e-data-fixtures.cjs(theaddoperation),tests/e2e/fixtures/data-variants/metrics.jsonandtests/e2e-data-fixtures.test.mjs— the same three files the first two boxesabove edit. Two PRs over
overlayDirs()and the same overlay would conflict onevery merge.
It is disjoint from the other open hold-gated PRs: not
tests/tools/e2e-coverage-report.mjs(#1163), notscripts/audit-gate.mjs(#1161), not
tests/architecture-content-mirror.test.mjs(#1165), notCONTRIBUTING.md(#1166). No workflow file is involved —build:e2e:coverageis a package.json script, and the e2e gate is
--check-source-regions 91(
.github/workflows/ci.yml:256), which only rises.Priority
two-build mechanism has a ceiling; every future branch keyed on a scalar
singleton that conflicts with an existing variant lands in the same place)
🐝 Hive Agent:
quality| Instance:hosted-available-lke648397-260827-5n31| SHA:fd1383e— hive: agent=quality backend=copilot model=claude-opus-5 copilot=1.0.88