Upstream fork is 6 minor releases behind with no cherry-picks; hotspot files have heavy upstream churn #23

Closed
opened 2026-09-12 02:13:09 -04:00 by jared · 1 comment
Owner

Severity: medium · Type: tech-debt · Confidence: high

Location: fork base v0.20.1 (git merge-base/tag v0.20.1 = 2d74c481); lotus HEAD e36aef8a

Problem

git log --oneline v0.20.1..lotus | grep -vi lotus returns only 2 commits (39377fb6, b1fed782), both CI-infra tweaks — i.e. the fork has cherry-picked zero upstream fixes/features since branching from v0.20.1. Meanwhile git fetch origin --tags shows upstream has released v0.21.0 through v0.26.0-rc.2 — six minor versions of drift. Counting commits touching the brief's designated merge-conflict hot-spots between v0.20.1 and upstream v0.25.0 alone: src/state/CallViewModel/CallViewModel.ts has 34 touching commits (including "Remove MatrixRTC legacy mode", perf work on layout updates, ringing-model rework), src/room/InCallView.tsx has 16 (ringing UI, PiP layout changes), src/widget.ts has 7 (notably "Remove all references to .well-known transport advertisement" and "Request capability to get RTC transports over widget API" — direct widget-transport-negotiation rewrites in the exact file the fork's io.lotus.* action wiring depends on), and src/useAudioContext.tsx has 2. A future rebase/merge onto any recent upstream tag will be a large, high-risk conflict resolution, especially in CallViewModel.ts and widget.ts where upstream has done structural rewrites (removing legacy RTC modes / well-known transport fallback) that the fork's Lotus widget-action layer sits directly on top of.

How to trigger

N/A (structural drift, not a runtime repro). Confirmable by running git log --oneline v0.20.1..v0.26.0-rc.2 -- src/widget.ts src/state/CallViewModel/CallViewModel.ts after fetching upstream tags.

Suggested fix

Plan a deliberate rebase/merge onto a recent upstream tag sooner rather than later (the conflict surface only grows), starting with widget.ts and CallViewModel.ts since upstream removed the .well-known transport fallback and legacy MatrixRTC mode that the Lotus action layer may implicitly assume still exist.


Filed from the September 2026 audit (branch lotus).

**Severity:** medium · **Type:** tech-debt · **Confidence:** high **Location:** fork base `v0.20.1` (`git merge-base`/tag `v0.20.1` = `2d74c481`); `lotus` HEAD `e36aef8a` ### Problem `git log --oneline v0.20.1..lotus | grep -vi lotus` returns only 2 commits (`39377fb6`, `b1fed782`), both CI-infra tweaks — i.e. the fork has cherry-picked **zero** upstream fixes/features since branching from `v0.20.1`. Meanwhile `git fetch origin --tags` shows upstream has released `v0.21.0` through `v0.26.0-rc.2` — six minor versions of drift. Counting commits touching the brief's designated merge-conflict hot-spots between `v0.20.1` and upstream `v0.25.0` alone: `src/state/CallViewModel/CallViewModel.ts` has 34 touching commits (including "Remove MatrixRTC legacy mode", perf work on layout updates, ringing-model rework), `src/room/InCallView.tsx` has 16 (ringing UI, PiP layout changes), `src/widget.ts` has 7 (notably "Remove all references to .well-known transport advertisement" and "Request capability to get RTC transports over widget API" — direct widget-transport-negotiation rewrites in the exact file the fork's `io.lotus.*` action wiring depends on), and `src/useAudioContext.tsx` has 2. A future rebase/merge onto any recent upstream tag will be a large, high-risk conflict resolution, especially in `CallViewModel.ts` and `widget.ts` where upstream has done structural rewrites (removing legacy RTC modes / well-known transport fallback) that the fork's Lotus widget-action layer sits directly on top of. ### How to trigger N/A (structural drift, not a runtime repro). Confirmable by running `git log --oneline v0.20.1..v0.26.0-rc.2 -- src/widget.ts src/state/CallViewModel/CallViewModel.ts` after fetching upstream tags. ### Suggested fix Plan a deliberate rebase/merge onto a recent upstream tag sooner rather than later (the conflict surface only grows), starting with `widget.ts` and `CallViewModel.ts` since upstream removed the `.well-known` transport fallback and legacy MatrixRTC mode that the Lotus action layer may implicitly assume still exist. --- _Filed from the September 2026 audit (branch `lotus`)._
jared added this to the EC fork audit 2026-09 · Medium & Low milestone 2026-09-12 02:13:09 -04:00
jared added the priority: mediumtech-debtarea: upstream-sync labels 2026-09-12 02:13:09 -04:00
jared self-assigned this 2026-09-12 02:13:09 -04:00
Author
Owner

Resolved by the upstream v0.25.0 merge (c6f97278, shipped as 0.25.0-lotus.1). Toolchain consequences (Node 24 / pnpm 11 direct install, oxlint+oxfmt, git-pinned matrix-js-sdk) are documented in cinny LOTUS_TODO.md and handled in .gitea/workflows/ci.yml. Renovate (cinny#94) will surface future upstream drift.

Resolved by the upstream v0.25.0 merge (c6f97278, shipped as 0.25.0-lotus.1). Toolchain consequences (Node 24 / pnpm 11 direct install, oxlint+oxfmt, git-pinned matrix-js-sdk) are documented in cinny LOTUS_TODO.md and handled in .gitea/workflows/ci.yml. Renovate (cinny#94) will surface future upstream drift.
jared closed this issue 2026-09-13 00:59:11 -04:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
2026-11-14
Dependencies

No dependencies set.

Reference: LotusGuild/element-call#23