jared and Claude Opus 5
d929143f7d
fix(gallery): paginate media, activity log and export on detached timeline sets — never the live timeline ( #163 )
...
RoomTimeline renders a numeric index window into the live timeline's
event arrays; SDK back-pagination prepends, so any side panel calling
paginateEventTimeline(room.getLiveTimeline()) shifted the visible
messages into the past on the next render and broke at-bottom tracking.
New utils/detachedTimeline.ts builds a timeline set that mirrors the
already-loaded history and paginates independently: a room-registered
filtered set (server-side contains_url / types filter) when the filter
is usable, else a private EventTimelineSet seeded from the live timeline.
useRoomMediaTimeline wraps it for the gallery (live events + redactions
handled); RoomActivityLog uses a type filter (safe in encrypted rooms);
ExportRoomHistory pages a private set so a full export no longer parks
thousands of events in the live timeline.
Verified with Playwright against a local Synapse in a 400-message plain
room and a 200-message encrypted room: timeline stays at the bottom
through gallery pages, activity load-more and a full export; live
messages keep auto-scrolling; all media found in both rooms.
Also adds scripts/dev-homeserver.sh + scripts/dev-seed.py (local
throwaway Synapse for driving the real UI) and documents them.
Closes #163
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01PPmy3tPq869XDW4njjVaKA
2026-09-18 00:03:54 -04:00
..
2026-05-21 23:30:50 -04:00
2026-02-22 15:14:04 +11:00
2026-07-07 23:24:08 -04:00
2026-05-21 23:30:50 -04:00
2026-07-11 13:52:36 -04:00
2026-05-21 23:30:50 -04:00
2026-09-15 13:07:32 -04:00
2026-07-02 20:20:07 -04:00
2023-06-12 16:45:23 +05:30
2026-06-02 10:34:46 -04:00
2026-05-21 23:30:50 -04:00
2024-01-21 18:20:56 +05:30
2025-07-15 22:40:16 +10:00
2024-01-21 18:20:56 +05:30
2024-01-21 18:20:56 +05:30
2026-09-12 14:48:35 -04:00
2026-09-12 19:46:05 -04:00
2026-09-12 19:46:05 -04:00
2026-05-23 11:26:45 -04:00
2026-07-18 17:00:52 -04:00
2026-09-17 13:39:51 -04:00
2026-09-17 13:39:51 -04:00
2026-06-12 22:20:22 -04:00
2026-06-30 22:34:17 -04:00
2026-09-15 22:43:31 -04:00
2024-06-01 00:19:46 +10:00
2026-05-21 23:30:50 -04:00
2026-05-15 13:37:03 -04:00
2026-07-18 21:23:35 -04:00
2026-05-21 23:30:50 -04:00
2025-02-10 16:49:47 +11:00
2026-05-21 23:30:50 -04:00
2026-05-22 13:24:07 -04:00
2026-06-13 18:52:23 -04:00
2026-05-21 23:30:50 -04:00
2026-06-09 22:56:06 -04:00
2025-08-13 00:12:30 +10:00
2023-10-21 12:44:21 +05:30
2026-05-21 23:30:50 -04:00
2026-05-21 23:30:50 -04:00
2026-06-10 21:31:58 -04:00
2026-07-01 10:40:31 -04:00
2026-05-21 23:30:50 -04:00
2026-05-21 23:30:50 -04:00
2026-05-22 13:24:07 -04:00
2026-05-21 23:30:50 -04:00
2026-09-12 14:48:34 -04:00
2025-02-28 18:47:23 +11:00
2026-05-21 23:30:50 -04:00
2026-05-21 23:30:50 -04:00
2026-05-21 23:30:50 -04:00
2026-05-22 17:17:26 -04:00
2024-06-01 00:19:46 +10:00
2026-05-21 23:30:50 -04:00
2023-06-12 16:45:23 +05:30
2025-08-27 22:25:49 +10:00
2026-03-09 21:39:58 +11:00
2024-06-01 00:19:46 +10:00
2026-06-03 23:15:29 -04:00
2023-06-12 16:45:23 +05:30
2026-05-21 23:30:50 -04:00
2024-09-14 18:54:06 +05:30
2024-06-01 00:19:46 +10:00
2026-07-18 21:10:33 -04:00
2025-01-26 22:53:16 +11:00
2026-05-21 23:30:50 -04:00
2026-05-21 23:30:50 -04:00
2026-05-21 23:30:50 -04:00
2026-05-21 23:30:50 -04:00
2026-05-22 17:17:26 -04:00
2026-05-21 23:30:50 -04:00
2026-05-21 23:30:50 -04:00
2026-05-21 23:30:50 -04:00
2026-09-15 21:32:06 -04:00
2026-06-18 13:34:40 -04:00
2026-05-21 23:30:50 -04:00
2026-05-21 23:30:50 -04:00
2024-06-01 00:19:46 +10:00
2026-06-18 17:56:34 -04:00
2026-09-12 02:05:34 -04:00
2026-09-12 02:05:34 -04:00
2026-09-15 22:43:17 -04:00
2026-09-15 22:43:17 -04:00
2026-05-21 23:30:50 -04:00
2026-05-30 17:13:54 -04:00
2026-07-18 22:24:26 -04:00
2026-06-30 15:51:23 -04:00
2026-06-30 15:51:23 -04:00
2026-05-21 23:30:50 -04:00
2024-01-21 18:20:56 +05:30
2026-06-12 19:53:19 -04:00
2025-02-10 21:02:33 +11:00
2026-05-22 19:52:23 -04:00
2026-05-21 23:30:50 -04:00
2026-07-02 21:40:07 -04:00
2024-07-08 21:27:10 +10:00
2026-05-21 23:30:50 -04:00
2026-09-17 13:31:29 -04:00
2026-07-02 00:19:16 -04:00
2026-07-02 21:40:07 -04:00
2026-05-21 23:30:50 -04:00
2026-05-21 23:30:50 -04:00
2026-09-12 19:46:05 -04:00
2025-05-24 20:07:56 +05:30
2026-05-21 23:30:50 -04:00
2026-05-21 23:30:50 -04:00
2025-03-23 22:09:29 +11:00
2025-03-19 23:14:54 +11:00
2026-07-07 23:32:50 -04:00
2026-09-12 19:46:06 -04:00
2026-05-21 23:30:50 -04:00
2025-08-13 00:12:30 +10:00
2026-05-21 23:30:50 -04:00
2026-05-21 23:30:50 -04:00
2026-05-21 23:30:50 -04:00
2026-07-18 21:05:39 -04:00
2026-09-18 00:03:54 -04:00
2026-07-18 21:10:33 -04:00
2026-07-18 21:10:33 -04:00
2023-06-22 09:14:50 +10:00
2026-09-12 14:48:35 -04:00
2026-09-12 14:48:35 -04:00
2026-05-21 23:30:50 -04:00
2026-05-21 23:30:50 -04:00
2024-12-16 16:25:15 +05:30
2026-09-15 21:32:06 -04:00
2026-09-15 21:32:06 -04:00
2026-07-01 22:53:32 -04:00
2026-05-22 11:16:11 -04:00
2025-03-19 23:14:54 +11:00
2026-09-13 00:56:22 -04:00
2026-07-11 13:52:36 -04:00
2026-05-21 23:30:50 -04:00
2026-07-03 22:30:57 -04:00
2026-05-21 23:30:50 -04:00
2025-02-10 16:49:47 +11:00
2026-09-12 20:28:42 -04:00
2026-09-12 19:46:05 -04:00
2026-09-12 19:46:05 -04:00
2026-09-17 01:56:06 -04:00
2026-05-21 23:30:50 -04:00
2026-07-07 22:29:47 -04:00
2024-06-01 00:19:46 +10:00
2026-05-21 23:30:50 -04:00
2024-01-21 18:20:56 +05:30
2024-07-30 22:18:59 +10:00
2026-05-21 23:30:50 -04:00
2026-05-21 23:30:50 -04:00
2026-07-09 23:30:08 -04:00
2026-05-21 23:30:50 -04:00
2026-07-01 09:07:03 -04:00
2026-09-12 20:28:41 -04:00
2026-07-02 20:56:27 -04:00
2026-07-01 10:01:10 -04:00
2026-07-01 09:07:03 -04:00
2026-07-01 09:07:03 -04:00
2026-07-02 20:56:27 -04:00
2026-07-01 09:07:03 -04:00
2026-07-01 10:40:31 -04:00
2026-09-12 20:28:42 -04:00
2026-09-15 08:47:05 -04:00
2026-07-01 09:07:03 -04:00
2026-05-21 23:30:50 -04:00
2026-05-21 23:30:50 -04:00
2026-06-28 16:47:50 -04:00
2026-07-19 02:47:27 -04:00
2026-07-01 23:43:20 -04:00
2026-05-22 13:24:07 -04:00
2026-05-21 23:30:50 -04:00
2026-05-20 21:26:18 -04:00
2026-05-21 23:30:50 -04:00
2026-07-07 23:24:08 -04:00
2026-07-18 17:09:21 -04:00
2026-05-21 23:30:50 -04:00
2026-05-21 23:30:50 -04:00
2026-05-23 12:19:06 -04:00
2026-05-21 23:30:50 -04:00
2026-05-22 13:24:07 -04:00
2026-09-12 19:46:06 -04:00
2023-10-06 08:14:06 +05:30