[quality] Concluded conference pages still tell readers the schedule may change
Maintainers usually reply within 1 day
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 20/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Stale
- Tech stack
- javascript
- Domain
- frontend
Research direction
Start with the fixed provenance sentence rendered in src/components/EndUserTalkSchedule/index.js, and compare it with isFinal() in scripts/collect-end-user-talks.mjs, which already decides whether a snapshot is final. Each data/end-user-talks/<slug>.json carries the last day and generatedAt, so the component can choose between the two wordings from those values. Done means concluded events show the ended wording, the upcoming KubeCon NA page keeps the existing wording, and tests/end-user-talk-schedule.test.mjs covers both. Pull request #2055 is already open against this issue, so check it before starting.
Written by the indexing model from the issue text.
Description
Finding
Three of the four published event pages tell a reader that a conference which
finished months ago might still move its sessions.
src/components/EndUserTalkSchedule/index.js closes every schedule with a
fixed provenance line:
Times, rooms, and speakers may change; check the live official schedule for
updates.
It is rendered unconditionally, so a concluded conference carries it too.
Verified against a local production build of main (882b433, npm run build
→ SUCCESS), reading the built HTML:
| Page | Last talk day | Rendered line |
|---|---|---|
build/events/2026/kubecon-india/index.html |
2026-06-19 | "Times, rooms, and speakers may change; check the live official schedule for updates." |
build/events/2026/kubecon-japan/index.html |
2026-07-30 | same |
build/events/2026/kubecon-china/index.html |
2026-09-09 | same |
build/events/2026/kubecon-na/index.html |
2026-11-12 | same — correct here, the event is upcoming |
The repository already knows the difference. isFinal() in
scripts/collect-end-user-talks.mjs treats a snapshot whose last day is before
today as final, and running the collector on main today says so out loud:
No End User Talk changes detected for kubecon-na-2026; leaving data/end-user-talks/kubecon-na-2026.json untouched.
Skipping kubecon-china-2026; its schedule is final. Run npm run collect:end-user-talks -- kubecon-china-2026 to refresh it anyway.
Skipping kubecon-japan-2026; its schedule is final. Run npm run collect:end-user-talks -- kubecon-japan-2026 to refresh it anyway.
Skipping kubecon-india-2026; its schedule is final. Run npm run collect:end-user-talks -- kubecon-india-2026 to refresh it anyway.
So the collector deliberately stops refreshing those three snapshots because
they can no longer change, while the page built from them keeps promising the
reader that they can, and points at a "live official schedule" that is now an
archive. For the one page where the sentence is true — KubeCon NA 2026, still
ahead of us — nothing distinguishes it from the three where it is not.
Recommendation
Make the closing sentence depend on whether the snapshot was already final when
it was verified, using only values the snapshot carries:
const isFinal = schedule.days.at(-1).date < schedule.generatedAt.slice(0, 10);
Both operands are in data/end-user-talks/<slug>.json, so the server-rendered
HTML and the hydrated page agree. Deciding it from new Date() at render time
would not: the site is built once and hydrated in the visitor's browser, the
same reason src/components/shared/formatDate.js pins its formatting to UTC.
Suggested wording, maintainers to adjust:
-
upcoming (unchanged):
Times, rooms, and speakers may change; check the
live official schedule for updates. -
concluded:
This conference has ended; the schedule below is the final
record. See the official schedule for the full program. -
Render the concluded wording when the snapshot's last day precedes its
generatedAtdate, and keep the existing wording otherwise. -
Cover both arms in
tests/end-user-talk-schedule.test.mjs, so a past
event's page cannot regress to the "may change" wording.
This is a change in src/, so the hold-gated quality lane files it rather than
opening the PR itself; it needs a human or a merge-capable lane to land.
Priority
- Impact: medium (three published event pages state something about the
schedule that is not true, on the section the events work has just built out) - Effort: low
Filed by quality agent (hold-gated mode).
🐝 Hive Agent: quality | Instance: hosted-available-lke648397-260827-5n31 | SHA: 882b433
— hive: agent=quality backend=copilot model=claude-opus-5 copilot=1.0.88
- Dominant language
- JavaScript
- Stars
- 0
- Forks
- 3
- Avg merge
- 6h 45m
- Merged PRs (30d)
- 555
Getting set up
Starts the project's dev container in your browser, under your own GitHub account.
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from cncf/endusers
-
[quality] /resources/metrics draws the single-point member-companies chart on the left axisPossibly taken @hivecommons-hive claimed this today. Openagent/quality stage/040-covered-by-pr testing
Difficulty 1/5 Under an hour Newbie friendliness 88/100
Maintainers usually reply within 1 day
-
[quality] SECURITY.md misstates the minimatch footprint, and nothing binds the moderate advisory register to the lockfilePossibly taken @hivecommons-hive claimed this 1 day ago. Openagent/quality hive/claimed-by-scanner stage/040-covered-by-pr testing
Difficulty 3/5 Half a day Newbie friendliness 22/100
cncf/endusers#2050 · 4 comments ·
Maintainers usually reply within 1 day
-
🐝 Hive Advisory ReportMay be free again A pull request for this issue was closed without being merged. Openhive/advisory
Difficulty 5/5 Over a week Newbie friendliness 15/100
cncf/endusers#23 · 13 comments ·
Maintainers usually reply within 1 day
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
Maintainers usually reply within 13 days
-
Slack: DM thread replies sent with "Also send to..." never reach the agentPossibly taken @roboeve claimed this today. Openbug channel:slack p2
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
vercel/eve#5774 · 2 comments ·
Maintainers usually reply within 1 day
-
Android: keyboard height remains stale when IME disappears without a closing animationPossibly taken @jaxnnux claimed this today. OpenMissing info Missing repro Platform: Android
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
software-mansion/react-native-reanimated#11106 · 2 comments ·
Maintainers usually reply within 1 day
-
enhancement version-minor
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
cuttle-cards/cuttle#1467 ·
Maintainers usually reply within 1 day
-
2026-11 bug good first issue gsoc-2027 project: mockuper
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
alphaonelabs/website#1147 · 1 comment ·
Maintainers usually reply within 1 day