From 54ae62f181a722761dffdcdfbab4319fa2edbbb6 Mon Sep 17 00:00:00 2001
From: TheCryptoDonkey <147930957+TheCryptoDonkey@users.noreply.github.com>
Date: Wed, 28 Oct 2026 00:44:48 +0000
Subject: [PATCH] fix(media): deploy verified peer-piece rate observations
---
docs/media-showcase.md | 18 ++++++++++++++++--
scripts/build-media-peer-demo.mjs | 2 +-
site/live-media.html | 2 +-
site/llms.txt | 2 +-
site/media-lab.html | 2 +-
site/media-lab.mjs | 4 ++--
site/media-listener-session.mjs | 2 +-
site/media-public-swarm.mjs | 4 ++--
site/template.html | 2 +-
site/vendor/media-peer-demo.NOTICE.txt | 2 +-
site/vendor/media-peer-demo.build.json | 10 +++++-----
site/vendor/media-peer-demo.js | 8 ++++----
site/vendor/relayswarm-core.NOTICE.txt | 2 +-
site/vendor/relayswarm-transfer-worker.js | 2 +-
14 files changed, 38 insertions(+), 24 deletions(-)
diff --git a/docs/media-showcase.md b/docs/media-showcase.md
index 94d0bdc..4ab4e12 100644
--- a/docs/media-showcase.md
+++ b/docs/media-showcase.md
@@ -16,8 +16,8 @@ The recording label sits with the source caption below the player. It does
not cover the picture or Safari’s native fullscreen control when controls
appear.
-The player pins RelaySwarm source `25354e3cb843b606fc51cdb47a548e9d90d0d091`
-([source change](https://github.com/forgesworn/relayswarm/commit/25354e3cb843b606fc51cdb47a548e9d90d0d091)).
+The player pins RelaySwarm source `d4a1235b035b4244ea73b55b1da0d4f88f64c376`
+([source change](https://github.com/forgesworn/relayswarm/commit/d4a1235b035b4244ea73b55b1da0d4f88f64c376)).
It retains the successful peer receipt's stats when hls.js disposes of the
losing HTTP loader, covered by ten regressions using the actual hls.js 1.7.3
loaders. It also retains a fully verified contiguous future prefix before considering
@@ -35,6 +35,12 @@ the original first-fragment load entry, clipped to a shorter parent load
deadline; ordinary speculative requests keep their eight-second expiry.
Authority checks and explicit refusal for insufficient capacity remain. The Rust/WASM
binary is unchanged.
+Verified short peer pieces can now refresh an older throughput estimate by
+forming a batch within the same transfer and connection. Both the existing
+300 ms and 32 KiB observation floors still apply. The interval includes gaps
+and verification time; origin bytes, duplicate credit, rejected responses
+and other links cannot train it. This adds no requests or first-byte timing
+sample. It corrects estimator inputs rather than proving faster playback.
Parsed fragment start positions can differ by floating-point roundoff between
playlist revisions. Startup now accepts that difference within a bounded machine-precision
tolerance, capped at one nanosecond, instead of falsely cancelling a matching context; sequence,
@@ -61,6 +67,14 @@ Earlier playback measurements below retain their captured revisions; this
update does not establish a bandwidth saving, smoother playback or a new
physical-phone result.
+The 27 October 330-second public check on RelaySwarm `25354e3` and site
+`acd26cd` started both fresh M4 Chrome profiles, then recorded 9 and 11
+post-frame stalls respectively. Accepted peer shares were 30.96% and 15.98%;
+these are not source traffic savings. Playback continued across a programme
+wrap, but fewer than 60 seconds were observed afterwards. This failed
+sustained-playback check remains failed; the estimator correction needs a
+new check on its actual published assets.
+
The [27 October public pair attempt](evidence/public-pair-startup-red-20261027.json)
did not complete its planned observation: the first viewer presented 4K after
4.629 seconds, but the second viewer reached the one-shot startup buffer's
diff --git a/scripts/build-media-peer-demo.mjs b/scripts/build-media-peer-demo.mjs
index 959d24e..999c7df 100644
--- a/scripts/build-media-peer-demo.mjs
+++ b/scripts/build-media-peer-demo.mjs
@@ -7,7 +7,7 @@ import { tmpdir } from 'node:os';
import { dirname, join, resolve } from 'node:path';
import { fileURLToPath, pathToFileURL } from 'node:url';
-const SOURCE = '25354e3cb843b606fc51cdb47a548e9d90d0d091';
+const SOURCE = 'd4a1235b035b4244ea73b55b1da0d4f88f64c376';
const sha = bytes => createHash('sha256').update(bytes).digest('hex');
const root = fileURLToPath(new URL('../', import.meta.url));
diff --git a/site/live-media.html b/site/live-media.html
index dc4a317..8b4f8f1 100644
--- a/site/live-media.html
+++ b/site/live-media.html
@@ -123,6 +123,6 @@
-
+