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
[strategist] DNS cutover complete but no launch announcement tracked (cncf.io blog, TAB mention, KubeCon) #1837
The DNS cutover to endusers.cncf.io completed on 2026-10-22 (#1433). The launch plan that used to live in ROADMAP.md left two items open before that file was removed in #1841 (the planning documents are no longer kept in the repository), so this issue is now the only place they are tracked:
Announcement channels: a cncf.io blog post, a mention at an End User TAB meeting, and a KubeCon + CloudNativeCon mention or session are the minimum bar; amplify further via the End User community Slack.
90-day check-in: re-run npm run collect:launch-metrics 90 days after the post-cutover baseline in data/launch-metrics.json (fix(launch): refresh post-cutover metrics baseline #1842) and compare against the targets it records.
The 90-day check-in is not due yet by definition. The announcement-channels bullet, however, is now unblocked and has no open tracking issue: #90 (the original launch/promotion strategy finding) is closed-completed, and no successor issue names the concrete channels, owners, or timing for publishing. CI on main is green and the Phase 1 content pillars were all complete when the plan was retired, so there is no remaining content blocker — only the announcement execution itself.
Rationale
Per #90's own rationale: "content completeness without a launch plan risks a 'silent launch' — Phase 1 finishes and nobody notices." That risk has now fully materialized: the technical gate (DNS) is clear, but 24+ hours later there is no tracked next step toward an actual announcement. A cncf.io blog post, TAB meeting mention, and KubeCon mention are each irreversible, public-facing actions owned by people outside this repository (CNCF marketing / TAB chairs) — this repo's agents cannot draft-and-publish a cncf.io blog post or schedule a TAB agenda item, only prepare the supporting material.
Proposed Next Step
A maintainer confirms: (a) who owns drafting/publishing the cncf.io blog post, (b) which upcoming TAB meeting agenda to request a mention on, and (c) whether a KubeCon + CloudNativeCon session/mention is already in motion for the next event.
Once channels and owners are confirmed, this repository can supply ready-to-use material (e.g. a short announcement draft referencing data/launch-metrics.json's baseline) the way adr/inbound-link-requests-for-0004.md did for the cross-linking deliverable.
Close this issue only once the announcement has actually gone out, not when material is merely drafted.
/hive decision <your instructions>: go ahead, following your instructions
/hive help: show these again
If what this issue waited on has been done (a merged fix, or an action taken outside this repository), a maintainer can reply /fixed to close it as completed; Hive clears its park labels.
Folded finding. This was filed as a separate issue, but 1 open agent-filed issue (plus 6 closed as completed in the last 14 days) already cite ci.yml, so it was folded into the oldest of them instead of opening another. Treat this issue as the tracker for that component: prefer one structural fix that covers every folded variant over a PR per variant.
[quality] tests/tools/flaky-reporter.mjs scores 86.36% under mutation: the flaky-run summary explanation is unasserted
Finding
tests/tools/flaky-reporter.mjs is the Playwright reporter that tells a reader
of a green end-to-end job which specs flaked, and that the failure behind
the retry was real. Its unit line coverage is 100%, and the harness floor in npm run test:unit:coverage:check (harness files 100.00 lines / 99.78 regions)
keeps it there — but no assertion pins what the summary actually says.
Mutation evidence, cncf/endusersmain @ 8abcb3f, run locally on
2026-10-23 (Node 26.12.0, StrykerJS tap runner, concurrency: 4):
86.36 is below the repository's own break: 90 in stryker.config.mjs.
The six survivors:
line
mutator
what survives
115
StringLiteral
the blank line after the ## Flaky end-to-end specs heading
116
StringLiteral
'These specs failed and then passed on retry, so the job is green and the' → ""
117
StringLiteral
'failure is real. The trace of each failed first attempt is in the' → ""
118
StringLiteral
'`playwright-traces` artifact.' → ""
119
StringLiteral
the blank line before the spec list
148
StringLiteral
this.rootDir = '' in the FlakyReporter constructor
tests/flaky-reporter.test.mjs asserts the heading and each generated list
row, so the list is pinned. The explanation block between them is not: the
whole reason a reader should care about a green job can be deleted or reworded
and every test still passes.
The line 148 survivor is a different case — onBegin assigns both rootDir
and this.tests, and onEnd reads rootDir only when this.tests is
non-empty, so the seed value is never read. It is an equivalent mutant.
Recommendation
Assert the whole rendering of summaryMarkdown() for a single record,
rather than a phrase of it, so the explanation and the blank lines that
separate it from the heading and the list are all pinned.
Annotate the line 148 seed with // Stryker disable next-line StringLiteral: <reason>, per the
equivalent-mutant guidance in CONTRIBUTING.md.
Both land in tests/flaky-reporter.test.mjs and tests/tools/flaky-reporter.mjs; one pull request closes this.
Evidence limitation
No claim is made about end-to-end coverage of this file. The repository's e2e
coverage mechanism (tests/tools/e2e-coverage-report.mjs, the "End-to-end
coverage" job in ci.yml) maps V8 coverage of the built site back to src/, and does not report on tests/tools/. The gap above is a unit-test
gap, evidenced by unit mutation only.
Priority
Impact: medium — the file is test infrastructure, but it is the only thing
that surfaces a real e2e failure hidden by a green job.
Folded finding. This was filed as a separate issue, but 1 open agent-filed issue (plus 6 closed as completed in the last 14 days) already cite ci.yml, so it was folded into the oldest of them instead of opening another. Treat this issue as the tracker for that component: prefer one structural fix that covers every folded variant over a PR per variant.
tests/tools/flaky-reporter.mjs is the Playwright reporter that tells a reader
of a green end-to-end job which specs flaked, and that the failure behind
the retry was real. Its unit line coverage is 100%, and the harness floor in npm run test:unit:coverage:check (harness files 100.00 lines / 99.78 regions)
keeps it there — but no assertion pins what the summary actually says.
Mutation evidence, cncf/endusersmain @ 8abcb3f, run locally on
2026-10-23 (Node 26.12.0, StrykerJS tap runner, concurrency: 4):
86.36 is below the repository's own break: 90 in stryker.config.mjs.
The six survivors:
line
mutator
what survives
115
StringLiteral
the blank line after the ## Flaky end-to-end specs heading
116
StringLiteral
'These specs failed and then passed on retry, so the job is green and the' → ""
117
StringLiteral
'failure is real. The trace of each failed first attempt is in the' → ""
118
StringLiteral
'`playwright-traces` artifact.' → ""
119
StringLiteral
the blank line before the spec list
148
StringLiteral
this.rootDir = '' in the FlakyReporter constructor
tests/flaky-reporter.test.mjs asserts the heading and each generated list
row, so the list is pinned. The explanation block between them is not: the
whole reason a reader should care about a green job can be deleted or reworded
and every test still passes.
The line 148 survivor is a different case — onBegin assigns both rootDir
and this.tests, and onEnd reads rootDir only when this.tests is
non-empty, so the seed value is never read. It is an equivalent mutant.
Recommendation
Assert the whole rendering of summaryMarkdown() for a single record,
rather than a phrase of it, so the explanation and the blank lines that
separate it from the heading and the list are all pinned.
Annotate the line 148 seed with // Stryker disable next-line StringLiteral: <reason>, per the
equivalent-mutant guidance in CONTRIBUTING.md.
Both land in tests/flaky-reporter.test.mjs and tests/tools/flaky-reporter.mjs; one pull request closes this.
Evidence limitation
No claim is made about end-to-end coverage of this file. The repository's e2e
coverage mechanism (tests/tools/e2e-coverage-report.mjs, the "End-to-end
coverage" job in ci.yml) maps V8 coverage of the built site back to src/, and does not report on tests/tools/. The gap above is a unit-test
gap, evidenced by unit mutation only.
Priority
Impact: medium — the file is test infrastructure, but it is the only thing
that surfaces a real e2e failure hidden by a green job.
Refreshed the description: ROADMAP.md was removed in #1841, so the launch-plan bullets it quoted no longer exist and this issue is now the sole tracker for the announcement channels and the 90-day check-in (baseline: data/launch-metrics.json via #1842). The decision requested in "Proposed Next Step" is unchanged.
The folded flaky-reporter finding below is unrelated to the announcement; it is addressed by #1846 (consolidating #1838).
Closing under ADR 0008 rule 6: launch and planning trackers are not kept in this repository. Announcement coordination (cncf.io blog, TAB agenda, KubeCon) is owned by CNCF staff and tracked in CNCF's own channels. The 90-day metrics check-in is withdrawn along with the launch-metrics collector it depended on. The folded flaky-reporter finding was fixed by #1846.
Activity
hivecommons-hive commentedon Oct 23, 2026
What to reply
/hive approve: go with the recommendation/hive decision <your instructions>: go ahead, following your instructions/hive help: show these againIf what this issue waited on has been done (a merged fix, or an action taken outside this repository), a maintainer can reply
/fixedto close it as completed; Hive clears its park labels.Only a maintainer with write access can un-park; everything else is ignored. Full command reference: https://github.com/hivecommons/hive/blob/v5/src/docs/maintainer-commands.md.
hivecommons-hive commentedon Oct 23, 2026
Folded finding. This was filed as a separate issue, but 1 open agent-filed issue (plus 6 closed as completed in the last 14 days) already cite
ci.yml, so it was folded into the oldest of them instead of opening another. Treat this issue as the tracker for that component: prefer one structural fix that covers every folded variant over a PR per variant.[quality] tests/tools/flaky-reporter.mjs scores 86.36% under mutation: the flaky-run summary explanation is unasserted
Finding
tests/tools/flaky-reporter.mjsis the Playwright reporter that tells a readerof a green end-to-end job which specs flaked, and that the failure behind
the retry was real. Its unit line coverage is 100%, and the harness floor in
npm run test:unit:coverage:check(harness files 100.00 lines / 99.78 regions)keeps it there — but no assertion pins what the summary actually says.
Mutation evidence,
cncf/endusersmain@8abcb3f, run locally on2026-10-23 (Node 26.12.0, StrykerJS tap runner,
concurrency: 4):86.36 is below the repository's own
break: 90instryker.config.mjs.The six survivors:
## Flaky end-to-end specsheading'These specs failed and then passed on retry, so the job is green and the'→""'failure is real. The trace of each failed first attempt is in the'→""'`playwright-traces` artifact.'→""this.rootDir = ''in theFlakyReporterconstructortests/flaky-reporter.test.mjsasserts the heading and each generated listrow, so the list is pinned. The explanation block between them is not: the
whole reason a reader should care about a green job can be deleted or reworded
and every test still passes.
The line 148 survivor is a different case —
onBeginassigns bothrootDirand
this.tests, andonEndreadsrootDironly whenthis.testsisnon-empty, so the seed value is never read. It is an equivalent mutant.
Recommendation
summaryMarkdown()for a single record,rather than a phrase of it, so the explanation and the blank lines that
separate it from the heading and the list are all pinned.
// Stryker disable next-line StringLiteral: <reason>, per theequivalent-mutant guidance in CONTRIBUTING.md.
Both land in
tests/flaky-reporter.test.mjsandtests/tools/flaky-reporter.mjs; one pull request closes this.Evidence limitation
No claim is made about end-to-end coverage of this file. The repository's e2e
coverage mechanism (
tests/tools/e2e-coverage-report.mjs, the "End-to-endcoverage" job in
ci.yml) maps V8 coverage of the built site back tosrc/, and does not report ontests/tools/. The gap above is a unit-testgap, evidenced by unit mutation only.
Priority
that surfaces a real e2e failure hidden by a green job.
🐝 Hive Agent:
quality| Instance:hosted-available-lke648397-260827-5n31| SHA:8abcb3f— hive: agent=quality backend=copilot model=claude-opus-5 copilot=1.0.88
Folded finding. This was filed as a separate issue, but 1 open agent-filed issue (plus 6 closed as completed in the last 14 days) already cite
ci.yml, so it was folded into the oldest of them instead of opening another. Treat this issue as the tracker for that component: prefer one structural fix that covers every folded variant over a PR per variant.[quality] Mutation: 6 surviving mutants in tests/tools/flaky-reporter.mjs (86.36%, below break: 90)
Finding
tests/tools/flaky-reporter.mjsis the Playwright reporter that tells a readerof a green end-to-end job which specs flaked, and that the failure behind
the retry was real. Its unit line coverage is 100%, and the harness floor in
npm run test:unit:coverage:check(harness files 100.00 lines / 99.78 regions)keeps it there — but no assertion pins what the summary actually says.
Mutation evidence,
cncf/endusersmain@8abcb3f, run locally on2026-10-23 (Node 26.12.0, StrykerJS tap runner,
concurrency: 4):86.36 is below the repository's own
break: 90instryker.config.mjs.The six survivors:
## Flaky end-to-end specsheading'These specs failed and then passed on retry, so the job is green and the'→""'failure is real. The trace of each failed first attempt is in the'→""'`playwright-traces` artifact.'→""this.rootDir = ''in theFlakyReporterconstructortests/flaky-reporter.test.mjsasserts the heading and each generated listrow, so the list is pinned. The explanation block between them is not: the
whole reason a reader should care about a green job can be deleted or reworded
and every test still passes.
The line 148 survivor is a different case —
onBeginassigns bothrootDirand
this.tests, andonEndreadsrootDironly whenthis.testsisnon-empty, so the seed value is never read. It is an equivalent mutant.
Recommendation
summaryMarkdown()for a single record,rather than a phrase of it, so the explanation and the blank lines that
separate it from the heading and the list are all pinned.
// Stryker disable next-line StringLiteral: <reason>, per theequivalent-mutant guidance in CONTRIBUTING.md.
Both land in
tests/flaky-reporter.test.mjsandtests/tools/flaky-reporter.mjs; one pull request closes this.Evidence limitation
No claim is made about end-to-end coverage of this file. The repository's e2e
coverage mechanism (
tests/tools/e2e-coverage-report.mjs, the "End-to-endcoverage" job in
ci.yml) maps V8 coverage of the built site back tosrc/, and does not report ontests/tools/. The gap above is a unit-testgap, evidenced by unit mutation only.
Priority
that surfaces a real e2e failure hidden by a green job.
🐝 Hive Agent:
quality| Instance:hosted-available-lke648397-260827-5n31| SHA:8abcb3f— hive: agent=quality backend=copilot model=claude-opus-5 copilot=1.0.88
mrbobbytables commentedon Oct 23, 2026
Refreshed the description: ROADMAP.md was removed in #1841, so the launch-plan bullets it quoted no longer exist and this issue is now the sole tracker for the announcement channels and the 90-day check-in (baseline:
data/launch-metrics.jsonvia #1842). The decision requested in "Proposed Next Step" is unchanged.The folded flaky-reporter finding below is unrelated to the announcement; it is addressed by #1846 (consolidating #1838).
mrbobbytables commentedon Oct 23, 2026
Closing under ADR 0008 rule 6: launch and planning trackers are not kept in this repository. Announcement coordination (cncf.io blog, TAB agenda, KubeCon) is owned by CNCF staff and tracked in CNCF's own channels. The 90-day metrics check-in is withdrawn along with the launch-metrics collector it depended on. The folded flaky-reporter finding was fixed by #1846.
Remove the launch success-metrics collector and its 90-day check-in (c…