From 93c7dcd7495c55e1fdf8a71bfb14aa115c6f1ffb Mon Sep 17 00:00:00 2001 From: Lotus CI Date: Sat, 24 Oct 2026 02:06:43 -0400 Subject: [PATCH 1/2] chore(deps): Element Call 0.25.0-lotus.29 -> 0.28.0-lotus.1 (#201) The fork synced to upstream v0.28.0 (element-call #61): matrix-js-sdk develop with the SDK 44 MatrixRTC changes, delayed-leave delegation. v0.28 renamed the delayed-leave config keys and its embedded build ships no config.json (defaults: 18 s). Ship the Lotus values with the build (build/element-call/config.json -> public/element-call/config.json) so the desktop app keeps the 60 s grace from element-call lotus #46. The web deploy keeps the server's own config.json (rsync excludes it); that file already carries both the old and new keys. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_017PCb59uY3UKqDqt7B6hzd5 --- build/element-call/config.json | 5 +++++ package-lock.json | 8 ++++---- package.json | 2 +- vite.config.js | 11 +++++++++++ 4 files changed, 21 insertions(+), 5 deletions(-) create mode 100644 build/element-call/config.json diff --git a/build/element-call/config.json b/build/element-call/config.json new file mode 100644 index 000000000..9ad2fe004 --- /dev/null +++ b/build/element-call/config.json @@ -0,0 +1,5 @@ +{ + "matrix_rtc_session": { + "delayed_leave": { "delay_ms": 60000, "restart_ms": 15000 } + } +} diff --git a/package-lock.json b/package-lock.json index 166ae2d33..cc9868e39 100644 --- a/package-lock.json +++ b/package-lock.json @@ -81,7 +81,7 @@ }, "devDependencies": { "@axe-core/playwright": "4.13.0", - "@lotusguild/element-call-embedded": "0.25.0-lotus.29", + "@lotusguild/element-call-embedded": "0.28.0-lotus.1", "@playwright/test": "1.63.0", "@rollup/plugin-inject": "5.0.5", "@rollup/plugin-wasm": "6.2.2", @@ -2695,9 +2695,9 @@ "integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==" }, "node_modules/@lotusguild/element-call-embedded": { - "version": "0.25.0-lotus.29", - "resolved": "https://code.lotusguild.org/api/packages/LotusGuild/npm/%40lotusguild%2Felement-call-embedded/-/0.25.0-lotus.29/element-call-embedded-0.25.0-lotus.29.tgz", - "integrity": "sha512-IAIEyiOFfkfb1k2JfBNOkX4LOVaGF8LzeKVQYCqKoyKDVao6rYEYA71LON8ntTaxkredXOK4CeLFsnkCiJHuGg==", + "version": "0.28.0-lotus.1", + "resolved": "https://code.lotusguild.org/api/packages/LotusGuild/npm/%40lotusguild%2Felement-call-embedded/-/0.28.0-lotus.1/element-call-embedded-0.28.0-lotus.1.tgz", + "integrity": "sha512-MRbrDv4D36q0a37WfPxuTxszcLDflx+ciMJM3W0UTxLApYK0mbMrFfAUo5yNhoQVUbVrcxI43N3M47zU4/ktAQ==", "dev": true }, "node_modules/@matrix-org/matrix-sdk-crypto-wasm": { diff --git a/package.json b/package.json index 1072386f6..4c6514661 100644 --- a/package.json +++ b/package.json @@ -108,7 +108,7 @@ }, "devDependencies": { "@axe-core/playwright": "4.13.0", - "@lotusguild/element-call-embedded": "0.25.0-lotus.29", + "@lotusguild/element-call-embedded": "0.28.0-lotus.1", "@playwright/test": "1.63.0", "@rollup/plugin-inject": "5.0.5", "@rollup/plugin-wasm": "6.2.2", diff --git a/vite.config.js b/vite.config.js index 9557eb18e..209d095b4 100644 --- a/vite.config.js +++ b/vite.config.js @@ -29,6 +29,17 @@ const copyFiles = { dest: 'public/element-call', rename: { stripBase: 4 }, }, + { + // [Gitea #201] Element Call's config. Since v0.28 the embedded package + // ships none (its defaults are an 18 s delayed leave), so ship the Lotus + // values: keep the call membership 60 s through a homeserver stall + // (element-call lotus #46). On the web the deploy never overwrites the + // server's own public/element-call/config.json (rsync excludes it); this + // copy is what the desktop app and fresh installs get. + src: 'build/element-call/config.json', + dest: 'public/element-call', + rename: { stripBase: 2 }, + }, { src: 'config.json', dest: '', -- 2.47.3 From f6bad9eb58441dd1d7bb4173933fef674b4d0cac Mon Sep 17 00:00:00 2001 From: Lotus CI Date: Sat, 24 Oct 2026 02:35:58 -0400 Subject: [PATCH 2/2] test(e2e): #212 waits for the timeline to settle before scrolling up The wheel ran as soon as the composer appeared; when it landed during the room's initial jump-to-bottom it was snapped back and "Jump to Latest" never showed. Seen ~1 in 5 runs since matrix-js-sdk 44 shifted the load timing (failed the post-merge e2e run of #447 on lotus). Wait for the newest message, then retry the scroll until the button appears. 10/10 locally. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_017PCb59uY3UKqDqt7B6hzd5 --- e2e/local-homeserver.spec.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/e2e/local-homeserver.spec.ts b/e2e/local-homeserver.spec.ts index bae50395d..5dda97090 100644 --- a/e2e/local-homeserver.spec.ts +++ b/e2e/local-homeserver.spec.ts @@ -109,9 +109,17 @@ test.describe('local homeserver regression', () => { ); await loginUI(page, alice); await openRoom(page, room); + // Wait for the timeline to settle at the newest message first: a wheel + // during the initial jump-to-bottom gets snapped back (test race, seen + // ~1 in 5 runs once matrix-js-sdk 44 changed the load timing). + await expect(page.getByText('filler 39')).toBeInViewport(); await page.mouse.move(600, 350); - await page.mouse.wheel(0, -600); - await expect(page.getByRole('button', { name: /Jump to Latest/ })).toBeVisible(); + await expect(async () => { + await page.mouse.wheel(0, -600); + await expect(page.getByRole('button', { name: /Jump to Latest/ })).toBeVisible({ + timeout: 2000, + }); + }).toPass({ timeout: 20_000 }); await page.locator('[data-slate-editor]').first().click(); await page.keyboard.type('sent while scrolled up'); await page.keyboard.press('Enter'); -- 2.47.3