Performance optimizations and scroll and jump fixes#789
Draft
Conversation
i dont think this actually improves performance though :/
doubt these ones make much difference if any
dont tell anyone but i didn't test this
dear god this is a mess, despite that, it is in a workable state that I can hopefully refine further
still gotta fix all the linting i ignored in my desperate attempts to make it work
hopefully the last fix...
stuff broke time for more patches!
Contributor
|
Contributor
Deploying with
|
| Status | Preview URL | Commit | Alias | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! | https://pr-789-sable.raspy-dream-bb1d.workers.dev | 58bc414 | pr-789 |
Mon, 11 May 2026 04:22:08 GMT |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Numerous patches.
The largest change, is yet another timeline rewrite this time aimed at ripping it apart into smaller files, adding some tests for general behavior, and fixing the damn scroll and jump mechanics once and for all.
Secondly, many, many things have been slightly adjusted to just be lazy loaded, including various components that aren't necessary on boot (swipeable chat wrappers, sentry, modals, the monospace font), and some prefetching when you hover over settings buttons/other stuff so that the fact that its being loaded on the fly is barely noticable, and I'll try to do even more before this PR is finished. End result, initial boot is slightly faster, swapping rooms and spaces is substantially faster (also added better placeholders so it feels faster, even when its not).
Finally, fixed a nonfunctional audio embed showing up for some dumb reason when your homeserver fails to fetch image/video previews for a link.
Some issues i’m still working on:
Type of change
Checklist:
AI disclosure:
Tests were fully AI generated, the timeline scroll chaos was quite heavily AI assisted during the development phases, although the final product that remains is mostly me (through picking and choosing pieces and doing heavy testing to ensure its working properly). Getting scroll working smoothly and properly is a pain that I don't have enough experience with to truly fix on my own, so it involved a lot of token spamming.
For the most part, basic scrolling behavior is offloaded to virtua, but with a few specific patches, in particular a patch was added to make sure when you swap rooms you're clamped down to the bottom of the view as embeds load and shift the timeline and the timeline properly clamps around the jumped-to message so that when new content loads it doesn't shift the jumped-to message around, and finally finally the timeline actually remains clamped to that jumped to message instead of jumping back to the bottom when the content isn't yet cached locally.