Skip to content

feat(watch)!: name the resolution choice follow instead of announced - #7189

Merged
kixelated merged 2 commits into
mainfrom
quest/m1/api-audit/resolve/watch
Oct 29, 2026
Merged

kixelated merged 2 commits into
mainfrom
quest/m1/api-audit/resolve/watch

Conversation

@kixelated

@kixelated kixelated commented Oct 29, 2026 •

Copy link
Copy Markdown
Collaborator

Completes quest/m1/api-audit/resolve/watch.md, a follow-up of moq-dev/moq#7173. That PR gave @moq/net follow(path) and left the player out of scope.

Summary

  • Watch.Broadcast and Watch.Player take follow (default true) instead of announced. It names the @moq/net method each choice picks: origin.follow(name) or origin.request(name).
  • <moq-watch> has a follow attribute and property, reflected like the old ones (follow="false").
  • Passing announced (or the older reload) to Broadcast or Player throws … `announced` was renamed to `follow` .
  • An announced attribute on <moq-watch> is refused like any invalid attribute: it reports an error event and suspends media until it is removed.
  • Updated doc/lib/js/watch.md, js/watch/README.md, the API reports, and the in-tree callers (test/audio-quality capture tests, test/interop publish-ui browser tests).
  • Deletes the finished quest and its link.

Impact

  • Public API (breaking, @moq/watch): rename announced to follow on new Watch.Broadcast({...}), new Watch.Player({...}), broadcast.in / player.in, and <moq-watch> (<moq-watch follow="false">, el.follow = false). The default and behavior are unchanged. Passing announced throws, and an announced attribute suspends the element until it is removed.
  • Wire: none.

Choices made without asking

  • The element is renamed too, not only Broadcast. The quest's goal is one vocabulary across @moq/net and the player, and the README and docs only describe the element attribute, so leaving <moq-watch announced> would split that vocabulary.
  • <moq-watch> refuses a leftover announced attribute instead of ignoring it. Ignoring it would silently turn announced="false" into following. The refusal costs one observed attribute in observedAttributes. Ignoring it is what the 0.5 → 0.6 reload rename did for the element.
  • Player throws on announced and reload the same way Broadcast does. Without this, Player would silently drop them.
  • No MIGRATE.md edit. AGENTS.md leaves MIGRATE.md sections to the release cut, so the migration note is the Impact bullet above.

Checks

  • sh/js/workspace.py check and test on the changed packages and their dependents: pass (watch 416, interop-browser 22, audio-quality 36, room, boy, demo-carla, doc).
  • publish-ui.browser.ts: the new announced refusal test and the follow round-trip pass. Two version-list tests fail on main too, because moq-transport-14 was dropped in moq-dev/moq#6753. quest/m0/interop-green/stale-browser-tests.md already tracks that.
  • quest check --base origin/main: ok.

Follow-ups

  • js/net/MIGRATE.md's Unreleased notes (lines ~176 and ~188) still describe request(path, { announced: true }), which moq-dev/moq#7173 removed. The release cut may want to reconcile them.

(Written by Claude Opus 5.5)

🤖 Generated with Claude Code

kixelated and others added 2 commits October 28, 2026 20:49
`Watch.Broadcast` and `Watch.Player` take `follow` (default true), and
`<moq-watch>` has a `follow` attribute and property, mirroring the
`@moq/net` method each choice picks: `origin.follow(name)` or
`origin.request(name)`. Passing `announced` (or `reload`) throws a rename
error, and an `announced` attribute is refused like an invalid value
until removed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kixelated kixelated changed the title The watch player's follow prop feat(watch)!: name the resolution choice follow instead of announced Oct 29, 2026
@kixelated
kixelated marked this pull request as ready for review October 29, 2026 03:56
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 29, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-29T03:57:09.404591Z 7472b2f Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@coderabbitai

coderabbitai Bot commented Oct 29, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 16 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 4 included reviews currently available.

Learn how review limits work.

Review configuration:

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 6a2ecdbe-c63a-4af5-843b-04026466ed42
Commits

Reviewing files that changed from the base of the PR and between f94ae72 and 7472b2f.

Files selected for processing: 13
  • doc/lib/js/watch.md
  • js/watch/README.md
  • js/watch/api/element.api.md
  • js/watch/api/index.api.md
  • js/watch/src/broadcast.test.ts
  • js/watch/src/broadcast.ts
  • js/watch/src/element.ts
  • js/watch/src/player.test.ts
  • js/watch/src/player.ts
  • quest/m1/api-audit/resolve/README.md
  • quest/m1/api-audit/resolve/watch.md
  • test/audio-quality/clients/js/src/capture.test.ts
  • test/interop/clients/js/publish-ui.browser.ts
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@kixelated kixelated left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated review by review (OpenAI)
Reviewed commit: 7472b2f

No actionable bugs found. The rename consistently preserves the default and the origin.follow versus origin.request choice across the player, primary broadcast, and referenced broadcasts. Rejecting legacy constructor options and suspending legacy announced markup is justified: silently ignoring a previous false value would change subscription behavior. The attribute refusal reuses the existing invalid-markup recovery path rather than adding a separate mechanism.

Verification: static inspection of the full diff, player wiring, broadcast resolution, attribute reflection/refusal/recovery, API reports, and changed tests. No tests, browser playback, or relay interoperability checks run; the PR's reported results were not independently reproduced.

(Written by review (OpenAI))

@kixelated

Copy link
Copy Markdown
Collaborator Author

Merge summary for head 7472b2f:

  • Renames the <moq-watch> resolution choice from announced to follow, covering the attribute, the property, and the Player option.
  • The maintainer approved the choices in the body: a leftover announced attribute fires error and pauses playback, and Player throws on the old announced and reload options.
  • Codex and the automated OpenAI review both reviewed this head and found nothing. All 12 checks pass, and quest check --base origin/main passes.

(Written by Claude Opus 5.5)

@kixelated
kixelated added this pull request to the merge queue Oct 29, 2026
Merged via the queue into main with commit 5b36cc0 Oct 29, 2026
12 checks passed
@kixelated
kixelated deleted the quest/m1/api-audit/resolve/watch branch October 29, 2026 04:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant