Skip to content

fix(teched): cross-link on first-class Devtoberfest session concepts (#2312) - #2420

Merged
jung-thomas merged 2 commits into
DEVfrom
worktree-teched-dtf-crosslink-fix
Sep 18, 2026
Merged

jung-thomas merged 2 commits into
DEVfrom
worktree-teched-dtf-crosslink-fix

Conversation

@jung-thomas

Copy link
Copy Markdown
Contributor

Problem

TechEd ↔ Devtoberfest related-session cross-links render empty on PROD (relatedTechEdSessions: [], relatedDevtoberfestSessions: []) despite both session corpora being enriched into the KG.

Root cause: the crosslink matched TechEd concepts against tutorial concepts reached via Activity.TASKSLUG. On PROD the current-edition Devtoberfest sessions reference activities with no usable TASKSLUG, so that join resolved to null — even though the two session corpora share 83 concepts.

Fix

#2311 made Devtoberfest sessions first-class KG nodes with their own DevtoberfestSessionConceptLinks. Match session↔session on those directly:

  • loadDevtoberfestSessionsWithConcepts reads DevtoberfestSessions + DevtoberfestSessionConceptLinks (owned entities — no cross-container facade, no edition/activity/tutorial walk).
  • Forward direction re-keyed by Devtoberfest session ID (buildRelatedTechEdByDtfSession / computeRelatedTechEdByDtfSession); schedule feed attaches by session.ID.
  • Reverse direction (computeRelatedDevtoberfestByTechEd) shape unchanged, now fed real overlapping concepts.
  • Dropped the unused tutorial-concept loader, DTF facade import, visible-status filter.

Verification

  • Unit: 17/17 pass (teched-devtoberfest-crosslink.test.js rewritten to the session API + build-teched-endpoint.test.js).
  • Against live PROD data (in-process, flag ON): reverse 217 TechEd sessions / 481 links; forward 76 Devtoberfest sessions / 209 links — both were 0 before.

Flag-gated (TECHED_DEVTOBERFEST_CROSSLINK_ENABLED) + fail-open unchanged.

Release 1.27.0 → main (production)
…2312)

The TechEd<->Devtoberfest related-session cross-link matched TechEd concepts
against TUTORIAL concepts reached via Activity.TASKSLUG. On PROD the current-
edition Devtoberfest sessions reference activities without a usable TASKSLUG,
so the join resolved to null and every related array came back empty despite
83 concepts shared between the two session corpora.

#2311 made Devtoberfest sessions first-class KG nodes with their own
DevtoberfestSessionConceptLinks. Match session<->session on those directly:

- loadDevtoberfestSessionsWithConcepts now reads DevtoberfestSessions +
  DevtoberfestSessionConceptLinks (owned entities; no cross-container planner
  facade, no edition/activity/tutorial walk).
- Forward direction re-keyed by Devtoberfest session ID
  (buildRelatedTechEdByDtfSession / computeRelatedTechEdByDtfSession); the
  schedule feed attaches relatedTechEdSessions by session.ID.
- Reverse direction (computeRelatedDevtoberfestByTechEd) unchanged in shape,
  now fed real overlapping concepts.
- Dropped the now-unused tutorial-concept loader, DTF facade import, and
  visible-status filter.

Verified against PROD data: reverse 217 TechEd sessions / 481 links,
forward 76 Devtoberfest sessions / 209 links (both were 0).
@jung-thomas
jung-thomas merged commit 23b94d9 into DEV Sep 18, 2026
5 checks passed
@jung-thomas
jung-thomas deleted the worktree-teched-dtf-crosslink-fix branch September 18, 2026 19:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant