diff --git a/.gitignore b/.gitignore index daef51d7..1742b2a4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ /api/node_modules /assets /assets.tar.gz +/env /scripts/gen /scripts/continuserv/continuserv /scripts/speculator/speculator diff --git a/changelogs/client_server.rst b/changelogs/client_server.rst index eccab7c6..a7ffd3ef 100644 --- a/changelogs/client_server.rst +++ b/changelogs/client_server.rst @@ -48,6 +48,8 @@ (`#751 `_). - Add key distribution APIs, for use with end-to-end encryption. (`#894 `_). + - Add ``m.room.pinned_events`` state event for rooms. + (`#1007 `_). - New endpoints: diff --git a/event-schemas/examples/m.room.pinned_events b/event-schemas/examples/m.room.pinned_events new file mode 100644 index 00000000..6f41e97d --- /dev/null +++ b/event-schemas/examples/m.room.pinned_events @@ -0,0 +1,12 @@ +{ + "age": 242352, + "content": { + "pinned": ["$someevent:localhost"] + }, + "state_key": "", + "origin_server_ts": 1431961217939, + "event_id": "$WLGTSEFSEF:localhost", + "type": "m.room.pinned_events", + "room_id": "!Cuyf34gef24t:localhost", + "sender": "@example:localhost" +} diff --git a/event-schemas/schema/m.room.pinned_events b/event-schemas/schema/m.room.pinned_events new file mode 100644 index 00000000..7b4a0d61 --- /dev/null +++ b/event-schemas/schema/m.room.pinned_events @@ -0,0 +1,25 @@ +--- +allOf: + - $ref: core-event-schema/state_event.yaml +description: This event is used to "pin" particular events in a room for other participants to review later. The order of the pinned events is guaranteed and based upon the order supplied in the event. Clients should be aware that the current user may not be able to see some of the events pinned due to visibility settings in the room. Clients are responsible for determining if a particular event in the pinned list is displayable, and have the option to not display it if it cannot be pinned in the client. +properties: + content: + properties: + pinned: + description: An ordered list of event IDs to pin. + items: + type: string + type: array + required: + - pinned + type: object + state_key: + description: A zero-length string. + pattern: '^$' + type: string + type: + enum: + - m.room.pinned_events + type: string +title: Pinned events in a room +type: object diff --git a/specification/modules/instant_messaging.rst b/specification/modules/instant_messaging.rst index 342050a7..ff87f74b 100644 --- a/specification/modules/instant_messaging.rst +++ b/specification/modules/instant_messaging.rst @@ -46,6 +46,8 @@ Usage of this event is discouraged for several reasons: {{m_room_avatar_event}} +{{m_room_pinned_events_event}} + m.room.message msgtypes ~~~~~~~~~~~~~~~~~~~~~~~