From f0cc6069f9a433c9228069acbb5f6e23ad80fa92 Mon Sep 17 00:00:00 2001 From: Luke Curley Date: Mon, 5 Oct 2026 17:57:07 -0700 Subject: [PATCH] quest: delete stats-linger now that its release backport merged The release backport (#4882) of #4871 merged, so the quest is done. Co-Authored-By: Claude Opus 5.5 --- quest/m0/README.md | 4 --- .../broadcast-epoch/stats-aggregate-bound.md | 1 - quest/m0/broadcast-epoch/stats-split.md | 1 - quest/m0/stats-linger.md | 32 ------------------- quest/m1/bench-buckets.md | 2 +- 5 files changed, 1 insertion(+), 39 deletions(-) delete mode 100644 quest/m0/stats-linger.md diff --git a/quest/m0/README.md b/quest/m0/README.md index d96629d703..8282a94e41 100644 --- a/quest/m0/README.md +++ b/quest/m0/README.md @@ -24,9 +24,6 @@ The branch flip is done except its #4605 backport to `release`; the Cloudflare switch waits on the maintainer as a condition quest. The DoS hardening from an external review on 2026-09-29, verified against `main`, stays in m0 as security work. Its quests describe fixes, not exploits. -[Stats linger](/quest/m0/stats-linger.md) joined m0 on 2026-10-05 as a -standalone quest, not a release gate: moq.pro's m0 waits on a `release` -commit carrying it, so it lands on main and is backported. Routing: the wildcard line is prefix-only on the wire; its resolve and demand work is done on the line branch and waits to land. Serving the relay's @@ -53,7 +50,6 @@ a published `@moq/watch` break. - [Request caps](/quest/m0/request-caps.md) - lite message sizes, IETF request IDs, and per-session announces and subscriptions are bounded - [qmux credit](/quest/m0/qmux-credit.md) - qmux returns connection credit for dropped and stopped streams and delivers its close frame, on both lines - [Shared fronts](/quest/m0/shared-fronts.md) - viewer sessions share a front, so fronts scale with peers, not viewers, and viewer churn no longer leaks fronts -- [Stats linger](/quest/m0/stats-linger.md) - landed on `main`; the `release` backport remains, so moq.pro's grouped stats broadcasts stop re-announcing on viewer churn - [Wildcard](/quest/m0/wildcard/README.md) - a relay resolves subscriptions against advertised prefixes, a service claims the prefix it could serve and refuses the rest instead of enumerating broadcasts, and the browser player treats a covering claim as availability - [Broadcast epochs](/quest/m0/broadcast-epoch/README.md) - every first-party publisher that can restart mints a fresh `@` epoch, viewers follow the newest live one, and bare names still resolve on every version - [Audio jitter target](/quest/m0/audio-jitter-target/README.md) - the audio playout target is a measured estimate of arrival timing in both languages, not a round-trip guess diff --git a/quest/m0/broadcast-epoch/stats-aggregate-bound.md b/quest/m0/broadcast-epoch/stats-aggregate-bound.md index 6930f722dc..95b3019084 100644 --- a/quest/m0/broadcast-epoch/stats-aggregate-bound.md +++ b/quest/m0/broadcast-epoch/stats-aggregate-bound.md @@ -45,4 +45,3 @@ Public API: none expected beyond a possible grace-window knob on - [Stats epochs](/quest/m0/broadcast-epoch/stats-epoch.md) - every restarted node gets a new name, so retired entries churn faster - [Binary delta stats](/quest/m2/stats-delta.md) - also sweeps the aggregate over node count -- [Stats linger](/quest/m0/stats-linger.md) - a group's node broadcast outlives a short gap instead of churning an aggregate entry diff --git a/quest/m0/broadcast-epoch/stats-split.md b/quest/m0/broadcast-epoch/stats-split.md index cbf944fae1..08441a5579 100644 --- a/quest/m0/broadcast-epoch/stats-split.md +++ b/quest/m0/broadcast-epoch/stats-split.md @@ -88,7 +88,6 @@ across nodes. ## Related -- [Stats linger](/quest/m0/stats-linger.md) - the idle-group window these totals continue across - [Bounded stats aggregate](/quest/m0/broadcast-epoch/stats-aggregate-bound.md) - retired nodes fold into a bounded total; per-epoch totals feed it - [Media stats](/quest/m1/stats/README.md) - publisher and viewer media stats diff --git a/quest/m0/stats-linger.md b/quest/m0/stats-linger.md deleted file mode 100644 index 85e70862f8..0000000000 --- a/quest/m0/stats-linger.md +++ /dev/null @@ -1,32 +0,0 @@ -# [XS] Stats broadcasts linger - -## Goal - -A grouped stats broadcast (`//node/`) stays announced for -a linger after its group's last session and traffic row leave, so a viewer -leaving and another arriving within it causes no unannounce and no new -announce across the mesh. The counters it reports, and any usage read from -them, are unchanged. - -## Plan - -Landed on `main` in [#4871](https://github.com/moq-dev/moq/pull/4871): -`moq_stats::produce::Config::linger` (default 5 minutes), surfaced in the -relay as `stats.linger` / `--stats-linger`. While a group lingers empty its -tracks read `{}`, and a path that left drops out of frames, so its return -reads as a restart. - -Remaining: backport #4871 to `release` as an additive cherry-pick PR, since -moq.pro tracks `release` and its m0 stats-linger quest waits on a `release` -commit carrying it (decided 2026-10-05). `release`'s `produce.rs` differs -from `main`'s only by the wall-clock group seed of #4810, which keeps group -numbers increasing across a return. Both branches still have the per-path -maps, so the backport keeps #4871's choice: the path drops out of frames while the -group lingers, rather than the producer carrying its last totals forward. -Delete this quest once the backport merges. - -## Related - -- [Stats epochs](/quest/m0/broadcast-epoch/stats-epoch.md) - the name a lingering broadcast keeps -- [Bounded stats aggregate](/quest/m0/broadcast-epoch/stats-aggregate-bound.md) - the aggregator's grace window for departed nodes -- [moq.pro: stats linger](https://github.com/moq-dev/moq.pro/blob/main/quest/m0/stats-linger.md) - the fleet adoption and its measurements diff --git a/quest/m1/bench-buckets.md b/quest/m1/bench-buckets.md index 9b01ab28be..22d6a47652 100644 --- a/quest/m1/bench-buckets.md +++ b/quest/m1/bench-buckets.md @@ -39,7 +39,7 @@ so the bench emits mergeable buckets. Approved as recommended. taken. Update `rs/moq-bench/README.md`. Lands on main, then is backported to `release` as an additive cherry-pick -PR, like [Stats linger](/quest/m0/stats-linger.md), since moq.pro's load +PR, like [#4882](https://github.com/moq-dev/moq/pull/4882), since moq.pro's load harness tracks `release` (decided 2026-10-05). The backport carries #3126's delta along if `release` does not have it yet.