Commit Graph

6332 Commits (matthew/msc4016)
 

Author SHA1 Message Date
Matthew Hodgson c06cdcbe70 update to use tus for resumable uploads 5 months ago
Matthew Hodgson 903d42afd1 add more alts & limitations 5 months ago
Matthew Hodgson 84d0ebfcee notes about thumbnailing and blurhashing 5 months ago
Matthew Hodgson e671945a3e warn about seqnum discontinuities 5 months ago
Matthew Hodgson abca46f699 unentangle resumable uploads from streamable transfers 5 months ago
Matthew Hodgson 16efd7f88b typo 5 months ago
Matthew Hodgson 97f72f79f5 some TODOs 5 months ago
Matthew Hodgson 3d9d788583 line wrap and de-WIP 5 months ago
Matthew Hodgson d25b7e000a flesh out MSC4016 with a detailed proposal 5 months ago
Matthew Hodgson dc613544de
clarify that MSC4016 is not needed to stream decryption/encryption 1 year ago
Matthew Hodgson 65f20d0cdd
Update proposals/4016-streaming-e2ee-file-transfer.md
Co-authored-by: opusforlife2 <53176348+opusforlife2@users.noreply.github.com>
1 year ago
Matthew Hodgson 68d5d140f3
add torrent note from anoa 1 year ago
Matthew Hodgson 6dc6f94d4e spell out security consideration on partial xfers 1 year ago
Matthew Hodgson 0b135b7bf0 tweaks 1 year ago
Matthew Hodgson 6e845a7089
Update 4016-streaming-e2ee-file-transfer.md
add use cases
1 year ago
Matthew Hodgson bce7730fab note RAM 1 year ago
Matthew Hodgson e7c2395509 tweaks 1 year ago
Matthew Hodgson 937deaa79c MSC4016: Streaming E2EE file transfers with random access 1 year ago
Nick Mills-Barrett a3778b3f82
MSC3860: Media Download Redirects (#3860)
* Add media download redirect proposal

* Add urls

* Rename

* Wrap content

* Add note about MSC proposal and implementation work

* Add missing sections to MSC

* Rework to be opt-in via query param

* Fix typos

Signed-off-by: Sumner Evans <sumner@beeper.com>

* Clarify security considerations

Signed-off-by: Sumner Evans <sumner@beeper.com>

* Clarify that unstable prefix should be used

Signed-off-by: Sumner Evans <sumner@beeper.com>

* Add 308 status code for redirects

Co-authored-by: Travis Ralston <travpc@gmail.com>

* Add clarification about no/false redirect param

* Add link to current spec media endpoints

* Add note about additional benefit of not proxying untrusted homeserver media

* Expand issues section to cover possible homeserver abuse

* fix a typo

---------

Signed-off-by: Sumner Evans <sumner@beeper.com>
Co-authored-by: Sumner Evans <sumner@beeper.com>
Co-authored-by: Travis Ralston <travpc@gmail.com>
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
1 year ago
Tulir Asokan 3fb2a604e4
MSC2659: Application service ping endpoint (#2659)
* Proposal for an application service ping endpoint

Signed-off-by: Tulir Asokan <tulir@maunium.net>

* Apply suggestions from code review

Co-authored-by: Travis Ralston <travpc@gmail.com>

* Change unstable prefix and add appserviceId parameter to path

Signed-off-by: Tulir Asokan <tulir@maunium.net>

* Redo MSC to use dedicated endpoint

Signed-off-by: Tulir Asokan <tulir@maunium.net>

* Re-add appservice ID path parameter and txn ID body field

* Add some alternatives

* Fix path in unstable prefix

* Add some optional extra behavior to endpoints

* Specify transaction_id type and mention it in both endpoints

* Add note about homeservers not calling ping randomly

* Make it more explicit which request duration is being measured

* Add example of full ping flow

* Fix markdown list

* Add /versions endpoint under alternatives

* Add MSC number to title

Co-authored-by: Travis Ralston <travpc@gmail.com>

* Rename duration field

* Document unstable_features flags

---------

Signed-off-by: Tulir Asokan <tulir@maunium.net>
Co-authored-by: Travis Ralston <travpc@gmail.com>
1 year ago
Will Hunt 126ca8589b MSC2249: Require users to have visibility on an event when submitting reports (#2249)
* Add MSC2247

* 2247 -> 2249

* Fill out MSC some more

* Remove proposal

* add "with"

Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>

* Update MSC to M_NOT_FOUND

---------

Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
Co-authored-by: Travis Ralston <travisr@matrix.org>
1 year ago
Hugh Nimmo-Smith ff99748dc2
MSC3882: Allow an existing session to sign in a new session (#3882)
* Allow an existing session to sign in a new session

* MSC3882

* Line length

* Resolve TODOs

* Document unstable prefixes

* Add docs on data returned by request

* Reference to MSC3906

* Incorporate review feedback

* Apply suggestions from code review

Co-authored-by: Travis Ralston <travisr@matrix.org>

* Add note on rate limiting

* Revision 1 of proposal

- /_matrix/client/v3/login/token => /_matrix/client/v1/login/get_token
- expires_in => expires_in_ms
- Security clarifications

* Update proposals/3882-login-token-request.md

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Refer to spec about not requiring auth

* Expose availability via capabilities

* Update proposals/3882-login-token-request.md

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Use GET /login when unauthenticated

* Apply suggestions from code review

Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>

---------

Co-authored-by: Travis Ralston <travisr@matrix.org>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
1 year ago
Andrew Morgan 2c4de1a169
Update max line width for proposals to 120 characters (#4008) 1 year ago
David Baker adb11d6e1d
Fix typos in MSC2746. (#4007)
This was causing the spell checker to fail on every other proposal.
1 year ago
Andrew Morgan aa06d461fb Fix typos in MSC2746 to appease spellcheck ci 1 year ago
David Baker ea715b7a3f MSC2746: Improved VoIP Signalling (#2746) 1 year ago
Patrick Cloke 564638f4cf
MSC3987: Push actions clean-up (#3987) 1 year ago
Patrick Cloke 8b6e2afcea
MSC3952: Intentional Mentions (#3952) 1 year ago
Richard van der Hoff 0907871400
fix spelling error 1 year ago
Tulir Asokan 8962f0a383 MSC2246: Asynchronous media uploads (#2246)
* Proposal for asynchronous media uploads

Signed-off-by: Tulir Asokan <tulir@maunium.net>

* Add security consideration and mention possible /create request body

Signed-off-by: Tulir Asokan <tulir@maunium.net>

* Expand on security consideration

* Change error code for existing media PUT

Co-Authored-By: Travis Ralston <travpc@gmail.com>

* Add spam prevention error, example response and auth requirements

* Add query parameters to control downloading

* Rename max_stall to max_stall_ms

* Specify /create request body content

* Update links, versions and prefixes

* Add recommended maximum delay for starting upload

* Explicitly deny uploading to other users' media IDs

* Prevent spam by ratelimiting instead of limiting number of IDs

* Remove streaming requirement

It's complicated

* Add unstable prefixes for new error codes

* Add missing words

* Change /create endpoint to use v1

Signed-off-by: Sumner Evans <sumner@beeper.com>

* Reorganize /upload spec and integrate feedback

* Explicitly specify that M_NOT_FOUND should be used for expired media
* Explicitly specify that M_FORBIDDEN should be used when a user other
  than the one who created the media ID tries to upload to it
* Remove content-length failure note

Signed-off-by: Sumner Evans <sumner@beeper.com>

* Rename max_stall_ms -> timeout_ms

Signed-off-by: Sumner Evans <sumner@beeper.com>

* Mention that maximum value for timeout_ms should be imposed by the server

Signed-off-by: Sumner Evans <sumner@beeper.com>

* Mention that the timeout_ms can be ignored if the media exists already

Signed-off-by: Sumner Evans <sumner@beeper.com>

* Change M_NOT_YET_UPLOADED to use 504 status code

Signed-off-by: Sumner Evans <sumner@beeper.com>

* Remove retry_after_ms optional field

Signed-off-by: Sumner Evans <sumner@beeper.com>

* Make unused_expires_at the deadline for the upload to complete rather than start

Signed-off-by: Sumner Evans <sumner@beeper.com>

* Add notes about suggested rate-limiting techniques

Namely, allowing a limited number of concurrent uploads

Signed-off-by: Sumner Evans <sumner@beeper.com>

* Recommend 24 hours instead of 1 minute

Signed-off-by: Sumner Evans <sumner@beeper.com>

* Clarify that rate limiting can apply on /create and /upload

Signed-off-by: Sumner Evans <sumner@beeper.com>

* Clarify that unused_expires_at is a POSIX millisecond timestamp

Signed-off-by: Sumner Evans <sumner@beeper.com>

---------

Signed-off-by: Tulir Asokan <tulir@maunium.net>
Signed-off-by: Sumner Evans <sumner@beeper.com>
Co-authored-by: Travis Ralston <travpc@gmail.com>
Co-authored-by: Sumner Evans <sumner@beeper.com>
1 year ago
Hugh Nimmo-Smith 7975ae8634
MSC3970: Scope transaction IDs to devices (#3970)
* MSC3970: Scope transaction IDs to devices

* Line length

* Correction to claims from Synapse

* Apply suggestions from code review

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Update proposals/3970-device-scope-txnid.md

Co-authored-by: Hubert Chathi <hubertc@matrix.org>

* Make section on recommended transaction ID format make sense

* Make it clearer in the intro section what the problem is

---------

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Co-authored-by: Hubert Chathi <hubertc@matrix.org>
1 year ago
Patrick Cloke bf8a50c93e
MSC3980: Dotted Field Consistency (#3980)
* MSC for consistency between push rules and filters.

* Update proposals/3980-dotted-fields-consistency.md

Co-authored-by: Travis Ralston <travisr@matrix.org>

---------

Co-authored-by: Travis Ralston <travisr@matrix.org>
1 year ago
Travis Ralston 71cd257460 Spelling 1 year ago
Hubert Chathi e51a61a2eb MSC2677: Annotations and reactions (#2677)
* initial version of reactions proposal

* fix MSC numbers

* add security consideration

* remove event type from aggregation grouping criteria because of e2ee

* Apply suggestions from code review

Co-authored-by: David Baker <dbkr@users.noreply.github.com>

* Update intro and add background

* Corrections and clarifications to the main text

In particular: we *do* aggregate based on event `type` as well as key.

* Clarify counting rules and interactions with edits

* Error code for deduplicating annotations

* Clarify eligible target events

* Notes on encryption

* Clarify variation-16

* Update 2677-reactions.md

* No server-side aggregation for reactions

---------

Co-authored-by: Bruno Windels <bruno@windels.cloud>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Co-authored-by: David Baker <dbkr@users.noreply.github.com>
Co-authored-by: Richard van der Hoff <richard@matrix.org>
1 year ago
Travis Ralston 5a310fbf1a
MSC3923: Bringing Matrix into the IETF process (#3923)
* First cut of an MSC+IETF spec process

* Rewrite for process considerations

* Update links

* Don't forget affected MSCs

* Apply suggestions from code review

Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>

* Clarify what kind of server-specific behaviour is trapped in the CS API

---------

Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
1 year ago
Travis Ralston 4881ab5410
Add mention of private sign off to contributing guidelines (#3976)
also fix headings because I can never remember what the next symbol is when using the underline syntax
1 year ago
Travis Ralston c8688eccd9
Fix typo in example of MSC3758 (#3974) 1 year ago
Patrick Cloke d0b48b9ec9
MSC3966: `event_property_contains` push rule condition (#3966)
* Add proposal for exact_event_property_contains push condition.

* Fix incorrect word.

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Fix broken link.

* Fix typo.

Co-authored-by: Hubert Chathi <hubertc@matrix.org>

* Update condition name.

---------

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Co-authored-by: Hubert Chathi <hubertc@matrix.org>
1 year ago
Johannes Marbach 618d34b793
MSC3873: event_match dotted keys (#3873)
* Add proposal

* Insert MSC number

* Fix spelling

* Clarifications & remove backwards compatibility.

* Mention how this blocks features.

* Fix typos.

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Clarify tense.

Co-authored-by: Alexey Rusakov <Kitsune-Ral@users.sf.net>

---------

Co-authored-by: Patrick Cloke <patrickc@matrix.org>
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Co-authored-by: Alexey Rusakov <Kitsune-Ral@users.sf.net>
1 year ago
Nick Mills-Barrett cde17d4548
MSC3758: Add `event_property_is` push rule condition kind (#3758)
* Create xxxx-expand-push-rule-conditions.md

* Rename to proper MSC number

* Add PR number to title & wrap

* Remove list matching part of MSC3758, will propose in a new MSC

* Link through to the spec for current match type

* Switch to `value` instead of `pattern` for match key

* Expand missing sections

* Fix typo.

* Clarifications from review.

* Update title in MSC to match PR.

Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>

* Update the name of the push rule condition.

---------

Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
1 year ago
Travis Ralston 6b2e763f5b spelling 1 year ago
Matthew Hodgson 01654eb2de MSC1767: Extensible event types & fallback in Matrix (v2) (#1767)
* first cut of MSC1767 for extensible events (replaces MSC1225)

* tabs->spaces

* fix markdown

* fix markdown

* GFM needs two spaces after ##?

* delta from msc1225

* 2021 refresh

* Refactor to be just text messaging + schema

* Update MSC numbers

* Touchups for FCP

* *ahem*

* Rewrite MSC to be understandable?

* Update proposals/1767-extensible-events.md

* Rewrite MSC, again

* Clarify Andy's blog state

* Relax m.markup's requirements

* Misc clarifications

* Revert "Relax m.markup's requirements"

This reverts commit 5f15b9f552.

* Clarify push rules handling

* Fix example

* Update extensible events MSCs list

* Update Andy's blog post reference

* Update per review feedback

* Move emotes, notices, and encryption out to dedicated MSCs
* Clarify text throughout

* Cover all the bases

* Clarify mixins are exactly what they're assumed to be

* Clarify fallback and number of datums per event

* Fix description of plain text baseline

* Clarify SCT's role in feature scope & cut "mixed" events (not mixins)

* Fix description of mixins

* Update proposals/1767-extensible-events.md

Co-authored-by: David Baker <dbkr@users.noreply.github.com>

* Expand on how unknown events are handled

* Apply suggestions from code review

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Trim line length post-suggestions

* Mention that extensible events might appear in other room versions early

* Remove duplicated unknown parse order being an implementation detail

* Note difference between optional content blocks and mixins

* Apply suggestions from code review

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Update proposals/1767-extensible-events.md

Co-authored-by: Alexey Rusakov <Kitsune-Ral@users.sf.net>

* Clarify that clients are still strongly encouraged to validate HTML

* Fix mention of mixing legacy event types

* Update proposals/1767-extensible-events.md

Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>

* Link to MSC3765

* Rename `m.markup` to `m.text`

---------

Co-authored-by: Travis Ralston <travpc@gmail.com>
Co-authored-by: Travis Ralston <travisr@matrix.org>
Co-authored-by: David Baker <dbkr@users.noreply.github.com>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Co-authored-by: Alexey Rusakov <Kitsune-Ral@users.sf.net>
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
1 year ago
benkuly 13935ec33b
MSC3925: m.replace aggregation with full event (#3925)
* init m.replace aggregation with full event

Signed-off-by: benkuly <kontakt@folivo.net>

* Rename tmp.md to 3925-replace-aggregation-with-full-event.md

Signed-off-by: benkuly <kontakt@folivo.net>

* Update 3925-replace-aggregation-with-full-event.md

typos

Signed-off-by: benkuly <kontakt@folivo.net>

* Update 3925-replace-aggregation-with-full-event.md

added MSC number

Signed-off-by: benkuly <kontakt@folivo.net>

* Update proposals/3925-replace-aggregation-with-full-event.md

Co-authored-by: Jonas Platte <jplatte+git@posteo.de>
Signed-off-by: benkuly <kontakt@folivo.net>

* Update proposals/3925-replace-aggregation-with-full-event.md

Co-authored-by: Jonas Platte <jplatte+git@posteo.de>
Signed-off-by: benkuly <kontakt@folivo.net>

* Update proposals/3925-replace-aggregation-with-full-event.md

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* redact instead of delete

* Update proposals/3925-replace-aggregation-with-full-event.md

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Update proposals/3925-replace-aggregation-with-full-event.md

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* word wrap 80

* remove immutable argument

* add alternative from https://github.com/matrix-org/matrix-spec/issues/1299#issuecomment-1290332433

* add json example

* shorter version of the actual proposal

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* describe the actual reason, why encrypted events cannot be replaced

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* mention discussion

* typo

* Update proposals/3925-replace-aggregation-with-full-event.md

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Update proposals/3925-replace-aggregation-with-full-event.md

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Update proposals/3925-replace-aggregation-with-full-event.md

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Update proposals/3925-replace-aggregation-with-full-event.md

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Update proposals/3925-replace-aggregation-with-full-event.md

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Update proposals/3925-replace-aggregation-with-full-event.md

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Update proposals/3925-replace-aggregation-with-full-event.md

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* clarify inconsistent behavior with replaced contents

* Update proposals/3925-replace-aggregation-with-full-event.md

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Update proposals/3925-replace-aggregation-with-full-event.md

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Update proposals/3925-replace-aggregation-with-full-event.md

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Update proposals/3925-replace-aggregation-with-full-event.md

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* clarify inconsistent behavior and put it into introduction

* remove superfluous event content field

* add some details to potential issues
suggested by @richvdh

---------

Signed-off-by: benkuly <kontakt@folivo.net>
Co-authored-by: Jonas Platte <jplatte+git@posteo.de>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
1 year ago
David Robertson 26f5effe45
MSC3943: Partial joins to nameless rooms should include heroes' memberships (#3943)
* Draft

* Assign MSC number

* Fix underscores inside backticks

* typo fix

Co-authored-by: Erik Johnston <erikj@jki.re>

Co-authored-by: Erik Johnston <erikj@jki.re>
1 year ago
Hubert Chathi 9b3f01b019
MSC3783: Fixed base64 for SAS verification (#3783)
* proposal for using fixed base64 encoding

* use MSC number

* add missing word

* add links to spec and clarifications
1 year ago
Catalan Lover b5bf09ea1c
MSC3904: Room version 10 as the default room version (#3904)
* Initial Commit for Room version 10 as default

* fix filename

* Give file and filename its MSC number

* Add update progress information

* Update 3904-room-version-10-as-a-default.md
1 year ago
Richard van der Hoff 006ca6a95a
remove keyId from /keys endpoints (#3938) 1 year ago
Richard van der Hoff 9a80bcffb6
MSC3706: Extensions to `/_matrix/federation/v2/send_join/{roomId}/{eventId}` for partial state (#3706) 1 year ago
Travis Ralston 4093b15124 Spelling 2 years ago
Eric Eastwood 8e46b7c5c8 MSC3030: Jump to date API endpoint (#3030)
* Initial MSC draft for jump to date

* Update with alternate /timestamp_to_event endpoint

* Add origin_server_ts for quick remote to local comparison

As discussed at https://github.com/matrix-org/synapse/pull/9445#discussion_r757098009

* Add origin_server_ts to client endpoint

* Wrap lines

* Use stable when discussing MSC and document unstable

* Describe the direction parameter

* Add server support detection

* Fix typos

* Explain what happens when an event can't be found

Fix https://github.com/matrix-org/matrix-doc/pull/3030#discussion_r787002549

* Add context behind why we chose /timestamp_to_event vs alternatives

Fix https://github.com/matrix-org/matrix-doc/pull/3030#discussion_r785425438

* Add comments about authentication and rate-limiting

Fix https://github.com/matrix-org/matrix-doc/pull/3030#discussion_r786351083

* Return pagination token directly in future iteration

See https://github.com/matrix-org/matrix-spec-proposals/pull/3030#discussion_r787297190

* Abuse /timestamp_to_event to get create event

As suggested by @turt2live,
https://github.com/matrix-org/matrix-spec-proposals/pull/3030#discussion_r846444317

* Unrenderable events

As proposed by @turt2live,
https://github.com/matrix-org/matrix-spec-proposals/pull/3030#discussion_r846447351

* Add some complication thoughts around alternatives

Context: https://github.com/matrix-org/matrix-spec-proposals/pull/3030#discussion_r846449709

* Backfill event so we can get pagination token

See https://github.com/matrix-org/matrix-spec-proposals/pull/3030#discussion_r846578171

* Heuristic for which server to try first

See https://github.com/matrix-org/matrix-spec-proposals/pull/3030#discussion_r967574944

* Give a suggestion on where to backfill from

See https://github.com/matrix-org/matrix-spec-proposals/pull/3030#discussion_r967574843

* Add alternative suggestion from @alphapapa

See https://github.com/matrix-org/matrix-spec-proposals/pull/3030#discussion_r868478333

* Better wording and fix typo

Co-authored-by: Travis Ralston <travisr@matrix.org>

* No difference in homeservers

See https://github.com/matrix-org/matrix-spec-proposals/pull/3030#discussion_r992858188

* Fix typos

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Fix extra word typo

* Summarizing discussion around why `dir` instead of closest

See https://github.com/matrix-org/matrix-spec-proposals/pull/3030#discussion_r849310414

* Adjust to just suggest the right way

See https://github.com/matrix-org/matrix-spec-proposals/pull/3030#discussion_r999099294

* Great simplification with the same meaning 🌟

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Perfect is the enemy of good

See https://github.com/matrix-org/matrix-spec-proposals/pull/3030#discussion_r1004651959

Co-authored-by: Travis Ralston <travisr@matrix.org>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2 years ago