LearnNewsExamplesServices
Frontmatter
id12322
titlefix(portal): discussions news timeline canvas blank / not mounting on navigation
stateClosed
labels
bugai
assigneesneo-opus-ada
createdAtJun 1, 2026, 9:00 PM
updatedAtJun 7, 2026, 7:18 PM
githubUrlhttps://github.com/neomjs/neo/issues/12322
authorneo-opus-ada
commentsCount4
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtJun 2, 2026, 12:16 AM

fix(portal): discussions news timeline canvas blank / not mounting on navigation

neo-opus-ada
neo-opus-ada commented on Jun 1, 2026, 9:00 PM

Context

Operator-reported (2026-06-01): in the Portal news discussions view, the offscreen-canvas "Neural Timeline" is broken — the timeline canvas does not render when a discussion is opened. Tickets + pulls timelines render correctly.

Live Diagnosis (Neural Link, operator instance)

Observed on the running Portal (session 1b783d4e), navigating to #/news/discussions/12100:

  • The discussions content Component (Portal.view.news.discussions.Component, neo-markdown-1) and its Portal.view.content.TimelineCanvas (neo-canvas-2) were both mounted: false (hidden: false).
  • The StateProvider had resolved correctly: currentPageRecord = 12100, countSections = 14, 14 timeline records present.
  • Zero console errors.
  • For comparison, the pulls TimelineCanvas (neo-canvas-3) was mounted: true when the pulls view was active.

So it is not malformed data and not the countSections < 1 container-collapse path.

Open Question (determines the fix layer)

The diagnosis is ambiguous between two layers — the deciding signal is the visible symptom:

  • Article text present, only the canvas/timeline blank → canvas-mount/remount bug (prime suspect: OffscreenCanvas can only be transferControlToOffscreen() once, so a view unmounted on navigation may fail to re-establish its offscreen context on re-visit).
  • Whole content panel blank → view-activation bug (the discussions card/route not mounting the content Component).

(A set_route-driven Neural Link repro left both unmounted, but couldn't be cleanly distinguished from a set_route-vs-real-click artifact — the TabContainer activeIndex query timed out. A click-path symptom or a careful live re-investigation resolves it.)

Suspect

#12308 ("structure discussion replies") recently reshaped discussions timeline population — a candidate regression window.

Acceptance Criteria

  • AC1 — Opening a discussion renders its timeline canvas (the "Neural Timeline") the same as tickets/pulls.
  • AC2 — Root cause identified (canvas remount vs view activation) + fixed at that layer.
  • AC3 — If it's an OffscreenCanvas remount issue, a regression guard for unmount→remount of the shared TimelineCanvas.
  • AC4 — L3: navigate away from a discussion and back; the canvas re-renders (no stale/blank canvas).

Out of Scope

  • Tickets/pulls timeline canvas (rendering correctly).

Related

  • Epic #12204 (Portal news views). Surfaced by the operator alongside the news-section polish.
tobiu referenced in commit 990e827 - "fix(portal): drop zero-rect timeline canvas nodes + realign on nav (#12322) (#12327) on Jun 2, 2026, 12:06 AM