-
-
Notifications
You must be signed in to change notification settings - Fork 250
chore(quest): delete the announce live marker, follow-only moq announced #4511
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
3 commits
Select commit
Hold shift + click to select a range
797235a
chore(quest): delete the announce live marker instead of patching it
kixelated 756e57b
chore(quest): drop the moq-cli bump and the stale AnnounceEventLive e…
kixelated d944d93
chore(quest): keep local and rendition completion, drop only broadcas…
kixelated File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,51 @@ | ||
| # [L] Delete the announce live marker | ||
|
|
||
| ## Goal | ||
|
|
||
| Announce streams yield only route events (start, update, end) in | ||
| `rs/moq-net`, `@moq/net`, moq-ffi, and every binding. The `Live` marker and | ||
| everything that exists to produce it are deleted: the per-session replay | ||
| holds and landing bookkeeping on the origin, the quiet-period guesses on | ||
| wires without an exact count, and the marker in the bindings' event types. | ||
|
|
||
| ## Plan | ||
|
|
||
| Decided 2026-09-29 by the maintainer, after walking through a page-load fix, | ||
| a Live/Offline toggle, and a per-session `live()`: | ||
|
|
||
| - The marker answers "has the initial list arrived?" Only one-shot listing | ||
| (`moq ls`, shell completion) uses it, and no app does: room, watch, and the | ||
| demo skip it. An origin merges many sessions and local publishers, so | ||
| "caught up" there needs aggregation across connections that start, fail, | ||
| and reconnect independently. That produced the page-load race, the special | ||
| first connection, and the offline question. With no customer, delete it | ||
| rather than patch it. | ||
| - No replacement for now. A single-connection listing (a `session.live()` | ||
| returning the peer's initial set) can come back when a customer needs it. | ||
| - Apps drive loading and offline UI from connection status, which `@moq/net` | ||
| already exposes. No empty-state work is planned. | ||
| - Wire unchanged. lite's ANNOUNCE_OK Active Count and the IETF Active Count | ||
| extension (`drafts/draft-lcurley-moq-active-count.md`) stay on the wire, | ||
| unused; a future listing would read exactly that count. Peers still send | ||
| and validate it. Only the local consumption goes. | ||
|
|
||
| Guidance: | ||
|
|
||
| - The marker lives on `dev` only (Rust since #4059, JS since #4261, bindings | ||
| since #4266), so this deletion breaks nothing published. | ||
| - Look for code that only exists to produce the marker, and delete it rather | ||
| than stubbing it: replay/landing counters in the origin, holds taken by the | ||
| JS forwarder and reconnect loop, quiet-gap timers on lite-03/04 and | ||
| moq-transport, and the batching of the initial set if nothing else needs | ||
| it. Keep what other features rely on (for example, request answering | ||
| through `expect()`). | ||
| - Update `doc/lib/{rs,js}`, `doc/concept`, the binding docs, and examples | ||
| (`js/net/examples/discovery.ts`) inline. Delete marker-only tests. | ||
| - Run `just test interop --all`. | ||
|
|
||
| Public API: removes `AnnounceEvent::Live` / `{ kind: "live" }` / | ||
| `MoqAnnounceEvent::Live` and the binding aliases, on `dev`. Wire: none. | ||
|
|
||
| ## Required | ||
|
|
||
| - [moq announced](/quest/m1/cli-announced.md) - the CLI stops reading the marker first | ||
This file was deleted.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,38 @@ | ||
| # [M] moq announced follows announcements live | ||
|
|
||
| ## Goal | ||
|
|
||
| `moq ls` becomes `moq announced`, which only follows. On a terminal it | ||
| redraws a list of what is announced right now, updating on each start and | ||
| end. When piped, or with `--json`, it prints one `+`/`-` line per event, as | ||
| `moq ls --follow` does today. `moq ls` and its one-shot mode are gone, and so | ||
| is shell completion of remote broadcast paths. Nothing in `rs/moq-cli` | ||
| reads the announce `Live` marker afterwards. | ||
|
|
||
| ## Plan | ||
|
|
||
| Decided 2026-09-29 by the maintainer: | ||
|
|
||
| - Follow-only. A one-shot listing needs to know when the initial set is | ||
| complete, which is the only thing the `Live` marker is used for. No | ||
| customer needs a one-shot listing, so it waits until one does. Why: | ||
| [Delete the live marker](/quest/m1/announce-live-removal.md) removes that | ||
| marker because an origin fed by many sessions can't answer "caught up" | ||
| honestly. | ||
| - The name says what it shows: announcements, as they happen. | ||
| - No `ls` alias: it becomes an unknown command, per the no-compat-shim rule. | ||
| - Shell completion (`rs/moq-cli/src/complete.rs`) drops the `BROADCAST` | ||
| completer, which waits on `Live` today and would otherwise need a timeout. | ||
| The other completers (local capture devices, catalog renditions) don't read | ||
| `Live` and stay. | ||
| - The live view is plain terminal redraw. Prefer a maintained crate if the | ||
| redraw grows beyond a few lines. Keep the event-line output byte-for-byte | ||
| compatible with today's `--follow` output so scripts only change the | ||
| command name. | ||
|
|
||
| Update every invocation: `doc/bin/cli.md`, `doc/bin/inspect.md`, | ||
| `doc/bin/relay/http.md`, `doc/concept/moq-lite.md`, demo recipes, and | ||
| anything else a repo-wide search for `moq ls` finds. Check them against | ||
| `--help`. | ||
|
|
||
| Public API: moq-cli command rename, which is breaking for scripts. Wire: none. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.