From 27be0301c5140f709bf6aef1fd9fa8f43a3f0487 Mon Sep 17 00:00:00 2001 From: thePR0M3TH3AN <53631862+PR0M3TH3AN@users.noreply.github.com> Date: Fri, 3 Jul 2026 21:04:29 -0400 Subject: [PATCH] =?UTF-8?q?todo:=20#10=20bounded=20investigation=20?= =?UTF-8?q?=E2=80=94=20null.fill=20is=20a=20streamx/fast-fifo=20use-after-?= =?UTF-8?q?destroy;=20fix=20is=20a=20vendored=203.0.16=20update=20as=20its?= =?UTF-8?q?=20own=20soaked=20task?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 --- todo/TODO_2026-06-20_pre-launch.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/todo/TODO_2026-06-20_pre-launch.md b/todo/TODO_2026-06-20_pre-launch.md index 91dfedbb..62682d9d 100644 --- a/todo/TODO_2026-06-20_pre-launch.md +++ b/todo/TODO_2026-06-20_pre-launch.md @@ -1167,6 +1167,22 @@ Reported 2026-06-25. Relates to #17 (NIP-71 interop) / the bitvid→NIP-71 mirro ### 10. WebTorrent `null.fill` seeding crash - [ ] Investigate the vendored `webtorrent.min.js` `null.fill` error on wire handshake; may require a bundle update or patch. +- [x] **Bounded investigation DONE 2026-07-03.** The vendored bundle is + webtorrent **2.5.11** (~2 years old; upstream latest is **3.0.16**). The + bundle has exactly two `.fill(` sites: a piece-bitfield fill and + `this.buffer.fill(void 0)` — fast-fifo's `clear()`, the queue streamx + uses under bittorrent-protocol's wire Duplex. "null.fill on wire + handshake" = that queue being touched after stream teardown (use-after- + destroy in the streamx/fast-fifo layer). No matching public upstream + issue found, but webtorrent 3.x now PINS `streamx` to an exact version + (2.25.0) — consistent with upstream having chased this bug class. +- [ ] **Fix path: vendored-bundle update to 3.0.16 as its OWN task** (playback- + critical → own branch/soak, NOT bundled with other work): rebuild + `js/webtorrent.min.js` + `.map`, re-test URL+magnet playback, seeding, + the beacon app (`torrent/`), and the SW streaming path; rollback = keep + the old bundle file. Check 2.x→3.x breaking changes against + `js/webtorrent.js` usage first. Without a repro for the crash, a blind + local patch is guesswork — the update is the honest fix. ### 11. Harden flaky tests (CI gate reliability) - [ ] `tests/ui/uploadModal-reset.test.mjs` ("UploadModal Reset Logic") intermittently