From 9e27a4eaa3179cf745771367d4ebccfcf07130c7 Mon Sep 17 00:00:00 2001 From: Luke Curley Date: Tue, 29 Sep 2026 09:48:36 -0700 Subject: [PATCH] chore(quest): moq-cli shell completion stays local-only Co-Authored-By: Claude Opus 5.5 --- quest/m1/README.md | 2 +- quest/m1/cli-announced.md | 17 ++++++++++------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/quest/m1/README.md b/quest/m1/README.md index 7d86d53c9a..951de129f3 100644 --- a/quest/m1/README.md +++ b/quest/m1/README.md @@ -29,7 +29,7 @@ transport, benchmark tooling); worktrees isolate commits, not semantics. - [Graceful close in bindings](/quest/m1/bindings-graceful-close.md) - on dev, `shutdown` drains a session in moq-ffi and every wrapper like Rust, so the wrappers keep the tail of a publish - [Raw stream codes](/quest/m1/raw-stream-codes.md) - raw QUIC stream resets and stops carry the application's code, not an HTTP/3-mapped one - [WebTransport close upstream](/quest/m1/wt-close-upstream.md) - web-transport-moq delivers the close capsule itself, and moq-tokio's `CLOSE_LINGER` is deleted -- [moq announced](/quest/m1/cli-announced.md) - `moq ls` becomes a follow-only live view named `moq announced`, with no remote path completion +- [moq announced](/quest/m1/cli-announced.md) - `moq ls` becomes a follow-only live view named `moq announced`, with local-only shell completion - [Delete the live marker](/quest/m1/announce-live-removal.md) - announce streams yield only route events; the `Live` marker and its hold machinery are gone - [IETF hidden default](/quest/m1/ietf-hidden-default.md) - a moq-transport peer without the MoQ Hidden option is advertised hidden namespaces; one with it filters per subscription - [Watch refusal](/quest/m1/watch-refusal.md) - `` shows an origin refusal as an error instead of sitting offline diff --git a/quest/m1/cli-announced.md b/quest/m1/cli-announced.md index 8b65551a42..39653bc162 100644 --- a/quest/m1/cli-announced.md +++ b/quest/m1/cli-announced.md @@ -5,9 +5,10 @@ `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. +`moq ls --follow` does today. `moq ls` and its one-shot mode are gone. Shell +completion is local-only: flags, subcommands, and local capture devices; +nothing dials a relay or reads a catalog. Nothing in `rs/moq-cli` reads the +announce `Live` marker afterwards. ## Plan @@ -21,10 +22,12 @@ Decided 2026-09-29 by the maintainer: 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. +- No network completion. Shell completion (`rs/moq-cli/src/complete.rs`) + drops the `BROADCAST` completer, which waits on `Live` today and would + otherwise need a timeout, and the catalog rendition completers + (`--video-name`, `--audio-name`), along with whatever exists only to let a + completer dial. Why: completion stays fast and works offline. Local + capture-device completers 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