---
id: 12211
title: Portal Discussion view — Portal.view.news.discussions (thin subclass)
state: CLOSED
labels:
  - enhancement
  - ai
assignees:
  - neo-gpt
createdAt: '2026-05-30T17:26:11Z'
updatedAt: '2026-06-07T17:17:20Z'
githubUrl: 'https://github.com/neomjs/neo/issues/12211'
author: neo-opus-ada
commentsCount: 0
parentIssue: 12204
subIssues: []
subIssuesCompleted: 0
subIssuesTotal: 0
blockedBy:
  - '[x] 12210 Portal index generators for Pull Requests + Discussions (chunked output)'
  - '[x] 12209 Make portal content cross-link URLs per-content-type config'
blocking: []
closedAt: '2026-06-01T07:54:55Z'
---
# Portal Discussion view — Portal.view.news.discussions (thin subclass)

## Context
Part of epic #12207. Discussions are synced but unshown; this is the lowest-risk second content type (ships for all ~128 discussions immediately, zero syncer dependency) — the **MVP** view.

## The Fix
Clone the tickets quintet (MainContainer / Controller / StateProvider / shared-CanvasWrapper / PageContainer). The Component subclasses the shared/tickets Component, overriding ONLY:
- the comment tokenizer — `` ### `@user` commented on <ts> `` grammar, split on `---`, **drop** the event/`

## Timeline

- 2026-05-30T17:26:13Z @neo-opus-ada added the `enhancement` label
- 2026-05-30T17:26:13Z @neo-opus-ada added the `ai` label
- 2026-05-30T17:30:16Z @neo-opus-ada added parent issue #12207
- 2026-05-30T17:31:31Z @neo-opus-ada marked this issue as being blocked by #12209
- 2026-05-30T17:31:32Z @neo-opus-ada marked this issue as being blocked by #12210
- 2026-05-30T17:34:57Z @neo-opus-ada removed parent issue #12207
- 2026-05-30T17:34:59Z @neo-opus-ada added parent issue #12204
- 2026-05-30T19:31:22Z @neo-opus-ada cross-referenced by PR #12223
- 2026-05-30T21:49:07Z @neo-opus-ada cross-referenced by PR #12233
- 2026-05-31T18:28:40Z @neo-gpt cross-referenced by #12204
- 2026-05-31T18:51:48Z @neo-opus-ada cross-referenced by PR #12266
- 2026-05-31T19:05:04Z @neo-gpt cross-referenced by PR #12268
- 2026-05-31T20:39:35Z @neo-opus-ada cross-referenced by PR #12269
- 2026-05-31T21:04:28Z @neo-opus-ada cross-referenced by #12209
- 2026-06-01T04:26:38Z @neo-gpt assigned to @neo-gpt
- 2026-06-01T04:46:45Z @neo-opus-ada cross-referenced by PR #12287
- 2026-06-01T05:12:44Z @neo-gpt referenced in commit `27ad872` - "feat(portal): add discussion news view (#12211)"
- 2026-06-01T05:13:35Z @neo-gpt cross-referenced by PR #12288
- 2026-06-01T06:42:18Z @neo-gpt referenced in commit `0dad934` - "test(portal): cover discussion parser (#12211)"
- 2026-06-01T07:06:37Z @neo-gpt referenced in commit `6dd0f0a` - "fix(portal): declare discussion issue links (#12211)"
- 2026-06-01T07:54:55Z @tobiu referenced in commit `7848145` - "feat(portal): add discussion news view (#12211) (#12288)

* feat(portal): add discussion news view (#12211)

* test(portal): cover discussion parser (#12211)

* fix(portal): declare discussion issue links (#12211)

---------

Co-authored-by: tobiu <tobiasuhlig78@gmail.com>"
- 2026-06-01T07:54:55Z @tobiu closed this issue
- 2026-06-01T09:29:40Z @neo-opus-ada cross-referenced by #12300
- 2026-06-01T17:58:12Z @neo-opus-ada cross-referenced by #12319
- 2026-06-01T18:42:19Z @tobiu referenced in commit `efa0d51` - "fix(portal): correct news tab order + document inverted layout (#12319) (#12320)

* fix(portal): correct news tab order + document inverted layout (#12319)

The news tab header renders the `items` list inverted (the LAST array entry shows as
the FIRST/leftmost tab). New views (#12211 discussions, #12305 pulls) were appended to
the bottom of the array, so they surfaced at the top — the wrong order.

Reorder `items` so the inverted display matches the operator's intended left-to-right
order by content value: Release Notes, Tickets, Discussions, Blog, Medium, Pull Requests
(array is the reverse: pulls, medium, blog, discussions, tickets, release). Add a comment
documenting the inverted-render footgun so future tabs are placed correctly.

Co-Authored-By: neo-opus-4-7 <neo-opus-4-7@neomjs.com>

* fix(portal): cite tab inversion mechanism + fix top-vs-leftmost in items comment (#12319)

* fix(portal): resolve news tab route to activeIndex by header.route, not hardcoded index (#12319)

* fix(portal): resolve tab route via getTabBar buttons (survive createItems) + lifecycle-faithful test (#12319)

---------

Co-authored-by: tobiu <tobiasuhlig78@gmail.com>"

