Skip to content

feat: add m.forum room type and dedicated view with threads as topics#980

Open
smokku wants to merge 4 commits into
SableClient:devfrom
smokku:dev
Open

feat: add m.forum room type and dedicated view with threads as topics#980
smokku wants to merge 4 commits into
SableClient:devfrom
smokku:dev

Conversation

@smokku

@smokku smokku commented Jun 22, 2026

Copy link
Copy Markdown

Description

This change adds m.forum room type support.

Creating room of this type changes the rendering of the main room view, to resemble internet forum post topic, where threaded replies are folded into topic replies.

The room type was chosen (instead room metadata) in order to distinguish the room in the rooms list. Similarly to Voice Rooms.

This feature builds heavily on Lobby and Thread features, combining them to create Forum-like experience. It reuses code where appropriate.

image image

You can use https://matrix.to/#/!790a18Ov9zgAzyaikc:chrome.pl room to test the feature

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

Checklist:

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings

AI disclosure:

  • Partially AI assisted (clarify which code was AI assisted and briefly explain what it does).
  • Fully AI generated (explain what all the generated code does in moderate detail).

AI agent was used to update a cherry-picked smokku/cinny@fa94114 for Sable codebase and resolve conflicts.

@smokku smokku requested review from 7w1 and hazre as code owners June 22, 2026 09:50
@smokku

smokku commented Jun 22, 2026

Copy link
Copy Markdown
Author

@nikiwastaken ☝🏻

nushea added 2 commits June 24, 2026 10:16
Signed-off-by: Shea <nu@she-a.eu>
Signed-off-by: Shea <nu@she-a.eu>
Signed-off-by: Shea <nu@she-a.eu>
Comment thread src/types/matrix/room.ts

// Custom room types not covered by the Matrix SDK's RoomType enum.
export const CustomRoomType = {
Forum: 'm.forum',

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is m.forum part of the matrix spec (search for forum on spec returns nothing at least)?

the m. (i.e. m.xyz) is reserved for stuff which is part of the spec.

Vendor prefixes MUST also be used for:

  • New parameters on existing endpoints
  • New properties in existing JSON objects
  • New values for existing parameters or properties

see: https://spec.matrix.org/proposals/#unstable-endpoints-features-and-vendor-prefixes

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

m.forum is not part of the Matrix spec.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

then it should maybe not use the m. prefix. in other areas moe.sable.xyz is used

see src/unstable/prefixes/sable/state_events.ts for example :3

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.

3 participants