wip: feat: Implement MSC3030: Jump to date API endpoint #1535

Draft
gamesguru wants to merge 2 commits from gamesguru/continuwuity:guru/feat/impl/msc3030-go-to-time-in-chat into main

2 commits

Author SHA1 Message Date
d83be540ec
Merge branch 'main' into guru/feat/impl/msc3030-go-to-time-in-chat
Some checks are pending
Documentation / Build and Deploy Documentation (pull_request) Blocked by required conditions
Checks / Prek / Pre-commit & Formatting (pull_request) Blocked by required conditions
Checks / Prek / Clippy and Cargo Tests (pull_request) Blocked by required conditions
2026-03-15 07:25:32 +00:00
dcb02d0012
feat: impl msc3030 room endpoint goto-time via index seek algo
Some checks failed
Documentation / Build and Deploy Documentation (pull_request) Has been cancelled
Checks / Prek / Pre-commit & Formatting (pull_request) Has been cancelled
Checks / Prek / Clippy and Cargo Tests (pull_request) Has been cancelled
May cause anachronisms in incoming events due to modifications in timestamp measuring, and consequently the write logic (if a bug exists causing miscalculation of incoming times). Should not impact previous events (relatively safe in that regard, I hope).

Adds a column family (index) to the DB and an admin command to index an individual room's messages by timestamp.
The column can be dropped, but is harmless either way.
You cannot necessarily undo the indexing, however.

Having admins manually request per-room indexing avoids the potentially massive overhead of a one-time startup migration.
The algorithm should be safe enough to not cause CPU spikes, even against non-indexed rooms.

Suggested improvements or additional test cases are always welcome.

----------------------------------------------------

**Commit message log summary:**

```
fix: propagate errors, fix bounds updating

fix for backfilled rooms

fix potential bug of "not found" truncating pdu list, potentially to zero

prevent critical database errors from being swallowed in loop

chore: use simplified ruma syntax via helper method

feat: admin command to index a room's messages by timestamp, command to list outliers
```
2026-03-12 00:32:04 -04:00