Skip to content

MSC4460: Extensible Events - Alternative unstable support#4460

Open
turt2live wants to merge 1 commit into
mainfrom
travis/msc/extev/unblock
Open

MSC4460: Extensible Events - Alternative unstable support#4460
turt2live wants to merge 1 commit into
mainfrom
travis/msc/extev/unblock

Conversation

@turt2live
Copy link
Copy Markdown
Member

@turt2live turt2live changed the title MSC: Extensible Events - Alternative unstable support MSC4460: Extensible Events - Alternative unstable support May 1, 2026
@github-project-automation github-project-automation Bot moved this to Tracking for review in Spec Core Team Workflow May 1, 2026
@turt2live turt2live added proposal A matrix spec change proposal kind:core MSC which is critical to the protocol's success needs-implementation This MSC does not have a qualifying implementation for the SCT to review. The MSC cannot enter FCP. labels May 1, 2026
@turt2live turt2live marked this pull request as ready for review May 1, 2026 02:01
@turt2live turt2live moved this from Backlog to Next in Extensible Events May 4, 2026
Comment on lines +79 to +81
All content blocks MUST additionally match their non-content block form. Events MUST have all
allowed and required content blocks if they use any content blocks. For example, an `m.image`
message type using the `m.text` content block *must* also have `m.file` and `m.image_details`.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

all allowed and required content blocks

maybe i'm misunderstanding, but wouldn't that mean that a msgtype of m.image would also require an m.thumbnail? i don't think that's the idea though; it seems more sensible to require events to have all required content blocks plus any optional ones that have equivalents of the old format present. e.g. if there is a thumbnail_url and thumbnail_info, then there MUST also be a m.thumbnail content block with matching values.

The original proposal gates using extensible events (meaning "content blocks") behind a room version
to ensure that clients are not exposed to events they might not be able to render. A previous draft
of the proposal tried to allow `m.room.message` and similar event types to use content blocks, though
that was later removed to discourage long-term use of `m.room.message`.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

so just to be clear, the idea is to retract and this issue and accept the risk?

For all other event types, only unstable content block types are permitted. A room version is still
required to use stable content block types, as per MSC1767. Clients SHOULD NOT render `m.text`,
MSC3551 (files), MSC3552 (images), MSC3553 (videos), MSC3955 (notices), and MSC3927 (audio) content
blocks on non-`m.room.message` event types outside of an extensible events-supporting room version.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

that is not what I can read from https://github.com/matrix-org/matrix-spec-proposals/blob/main/proposals/1767-extensible-events.md#unstable-prefix.

I understand MSC1767 as "you can use unstable ID types in any room, or stable ID types in unstable rooms". Was this modified by another MSC? I also don't really see why this is necessary.

This also seems to decrease the value of this MSC for "extensible events forward compatibility"?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

kind:core MSC which is critical to the protocol's success needs-implementation This MSC does not have a qualifying implementation for the SCT to review. The MSC cannot enter FCP. proposal A matrix spec change proposal

Projects

Status: Next
Status: Tracking for review

Development

Successfully merging this pull request may close these issues.

2 participants