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
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.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Severity: medium · Type: tech-debt · Confidence: high
Location: fork base
v0.20.1(git merge-base/tagv0.20.1=2d74c481);lotusHEADe36aef8aProblem
git log --oneline v0.20.1..lotus | grep -vi lotusreturns only 2 commits (39377fb6,b1fed782), both CI-infra tweaks — i.e. the fork has cherry-picked zero upstream fixes/features since branching fromv0.20.1. Meanwhilegit fetch origin --tagsshows upstream has releasedv0.21.0throughv0.26.0-rc.2— six minor versions of drift. Counting commits touching the brief's designated merge-conflict hot-spots betweenv0.20.1and upstreamv0.25.0alone:src/state/CallViewModel/CallViewModel.tshas 34 touching commits (including "Remove MatrixRTC legacy mode", perf work on layout updates, ringing-model rework),src/room/InCallView.tsxhas 16 (ringing UI, PiP layout changes),src/widget.tshas 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'sio.lotus.*action wiring depends on), andsrc/useAudioContext.tsxhas 2. A future rebase/merge onto any recent upstream tag will be a large, high-risk conflict resolution, especially inCallViewModel.tsandwidget.tswhere 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.tsafter 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.tsandCallViewModel.tssince upstream removed the.well-knowntransport fallback and legacy MatrixRTC mode that the Lotus action layer may implicitly assume still exist.Filed from the September 2026 audit (branch
lotus).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.