From ec04f88d8ca3db6120f254addeb21f078f63abf6 Mon Sep 17 00:00:00 2001 From: Luke Curley Date: Fri, 25 Sep 2026 11:44:01 -0700 Subject: [PATCH] quest(broadcast-close): remove finish becomes a standalone quest Co-Authored-By: Claude Opus 5.5 --- quest/m1/README.md | 1 + quest/m1/broadcast-close/README.md | 9 +++------ .../{broadcast-close/remove.md => broadcast-remove.md} | 4 ++++ 3 files changed, 8 insertions(+), 6 deletions(-) rename quest/m1/{broadcast-close/remove.md => broadcast-remove.md} (85%) diff --git a/quest/m1/README.md b/quest/m1/README.md index 93cb6d3458..530c0fddaa 100644 --- a/quest/m1/README.md +++ b/quest/m1/README.md @@ -31,6 +31,7 @@ transport, benchmark tooling); worktrees isolate commits, not semantics. - [FFI shape](/quest/m1/ffi-shape/README.md) - the bindings mirror Rust's layers: net at the root, then media, json, audio, and video namespaces built from the handle below - [Track demand](/quest/m1/track-demand.md) - Rust and JS watch a track's subscribers through `demand()` alone - [Broadcast close](/quest/m1/broadcast-close/README.md) - `close()` is the one way to end a broadcast in every language, a permanent retraction that leaves in-flight tracks alone +- [Remove finish](/quest/m1/broadcast-remove.md) - on dev, the deprecated broadcast end APIs are gone and `closed()` carries no cause - [Relay peer set](/quest/m1/relay-peer-set.md) - a wire consumer tells a client hop from a peer hop, and every mesh credential can mark a peer - [CLI import clock](/quest/m1/cli-import-clock.md) - fMP4, TS, and FLV imports publish on the shared broadcast clock across restarts - [Native clock fixtures](/quest/m1/native-clock-fixtures.md) - CI drives native capture through clock edge cases and asserts the published timestamps diff --git a/quest/m1/broadcast-close/README.md b/quest/m1/broadcast-close/README.md index 99f38a846d..55721f39a9 100644 --- a/quest/m1/broadcast-close/README.md +++ b/quest/m1/broadcast-close/README.md @@ -1,4 +1,4 @@ -# Broadcast close +# [S] Broadcast close ## Goal @@ -34,11 +34,8 @@ object ended", not "the path went offline": announcements say whether a path is live, and a path can be announced again by a new object. Caches and moq-hls use it to tell a live object from a replaced one at the same path. -Stage the `dev` removal as the child below. - -## Quests - -- [Remove finish](/quest/m1/broadcast-close/remove.md) - on dev, the deprecated broadcast end APIs are gone and `closed()` carries no cause +The `dev` removal is [Remove finish](/quest/m1/broadcast-remove.md), which +waits for this line to reach `main`. ## Related diff --git a/quest/m1/broadcast-close/remove.md b/quest/m1/broadcast-remove.md similarity index 85% rename from quest/m1/broadcast-close/remove.md rename to quest/m1/broadcast-remove.md index 6da1df879c..c48da3351c 100644 --- a/quest/m1/broadcast-close/remove.md +++ b/quest/m1/broadcast-remove.md @@ -19,3 +19,7 @@ This is a published API break, so it targets `dev`. so `rs/moq-ffi/uniffi.toml` excludes it. Kotlin's `close()` releases the handle, which ends the broadcast only once no `dynamic()` handle remains. Removing `finish` leaves Kotlin without a forced end; decide whether it needs one. + +## Required + +- [Broadcast close](/quest/m1/broadcast-close/README.md) - the deprecations this removes, which must reach `main` and then `dev` first