Skip to content

Merge main into dev#1800

Merged
kixelated merged 19 commits into
devfrom
claude/merge-main-into-dev-992spq
Jun 19, 2026
Merged

Merge main into dev#1800
kixelated merged 19 commits into
devfrom
claude/merge-main-into-dev-992spq

Conversation

@kixelated

@kixelated kixelated commented Jun 19, 2026

Copy link
Copy Markdown
Collaborator

Merges origin/main into dev. Most files merged cleanly; 13 conflicts were resolved, several of them semantic where main and dev touched the same code with diverging APIs.

Conflict resolutions

Rust

  • Cargo.toml / Cargo.lock: kept dev's moq-hls crate and took main's released moq-json 0.0.4 bump. Regenerated Cargo.lock with cargo.
  • rs/moq-relay/src/connection.rs: kept dev's conditional session builder (only sets the side the token grants, using the non-deprecated with_publisher/with_subscriber). Layered in main's credential-expiry handling, which needs the session bound mut so it can call session.close(...).
  • rs/moq-boy/src/input.rs: kept main's moq-json Consumer command loop, adapted onto dev's track-subscribe API (broadcast.track("command")?.subscribe(None)?.await? yields the TrackSubscriber that moq_json::Consumer::new wants).
  • rs/moq-native/tests/backend.rs: used the non-deprecated forms from each side: peer_identity().is_some() (main) + with_publisher (dev).

JS

  • js/net/src/lite/origin.ts: dropped dev's stale 62-bit doc paragraph; the code (and the Rust Origin::random counterpart) caps the random id at 53 bits, which main's TEMPORARY note already documents.
  • js/moq-boy/src/index.ts: kept main's Json.Producer command track, adapted onto dev's request API (req.accept() returns the Moq.TrackProducer the producer wraps).
  • js/watch/* (the big ones): dev refactored watch into an input/output (Inputs/Readonlys/getter/readonlys) architecture while main added buffered-playback latency ranges (feat(watch): latency range with buffered playback #1620). Folded main's feature set into dev's architecture:
    • sync.ts: range Latency type + latencyBounds/latencyFromBounds, buffered/maxBuffer outputs, #runRange/#latencyCap/#setReference/reset, and the cap-aware received() logic, all routed through dev's input/#output.
    • decoder.ts: #consumerLatency driven by sync.output.maxBuffer, createAudioBuffer(..., buffered), ring.wait() backpressure, and reset().
    • backend.ts: reset() + #audioDecoder, exposed output.buffered.
    • element.ts: latency-min/latency-max attributes, latencyMin/latencyMax/reset() accessors, all read-modify-writing the element-owned controls.latency.
    • sync.test.ts + UI latency.ts/buffer-control.ts: updated to the merged .output surface and the buffered-aware latencyMin setters.

Test plan

  • cargo check (incl. --tests) for moq-net, moq-relay, moq-boy, moq-native
  • tsc --noEmit for js/watch, js/moq-boy, js/net, demo/web
  • bun test in js/watch (78 pass, incl. the 6 new latency-range tests)
  • Biome + rustfmt clean on all resolved files (a follow-up commit wraps the #runCommandTrack signature that biome flagged)
  • cargo test -p moq-relay -p moq-boy: passes except the moq-relay smoke tests, which fail only in this sandbox because it has no IPv6 (Quinn(BindSocket(... "Address family not supported by protocol")) at the [::]:0 bind in shared test setup, before any merged logic runs). Not a merge regression; expected to pass on CI's runner.

(Written by Claude)

moq-bot Bot and others added 19 commits June 17, 2026 21:15
Co-authored-by: moq-bot[bot] <186640430+moq-bot[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: Luke Curley <kixelated@gmail.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
…7.3 (#1790)

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
…1792)

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: moq-bot[bot] <186640430+moq-bot[bot]@users.noreply.github.com>
… aarch64-linux (#1793)

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
…o-dev-992spq

# Conflicts:
#	Cargo.lock
#	Cargo.toml
#	js/moq-boy/src/index.ts
#	js/net/src/lite/origin.ts
#	js/watch/src/audio/decoder.ts
#	js/watch/src/backend.ts
#	js/watch/src/element.ts
#	js/watch/src/sync.ts
#	js/watch/src/ui/components/buffer-control.ts
#	js/watch/src/ui/components/latency.ts
#	rs/moq-boy/src/input.rs
#	rs/moq-native/tests/backend.rs
#	rs/moq-relay/src/connection.rs
The merge resolution left the #runCommandTrack signature on one line,
which exceeds biome's line width. Format it the way biome expects.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UamaFPRMNUFDkeHXtrsRr8
The merge left dev's `info.path as *const u8` cast. On targets where
`c_char` is `u8` (aarch64), that cast is to the same type and clippy's
unnecessary_cast fires under -D warnings. Use `.cast::<u8>()`, which is
correct whether c_char is signed or unsigned, matching the other call
sites.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UamaFPRMNUFDkeHXtrsRr8
The `wasm` recipe hardcoded the relative `target/` path for the
wasm-bindgen input, so it broke on runners that redirect the cargo
target directory (cargo wrote the .wasm under $CARGO_TARGET_DIR while
wasm-bindgen looked in ./target). Honor $CARGO_TARGET_DIR with a
`target` fallback so it works in both setups.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UamaFPRMNUFDkeHXtrsRr8
@kixelated kixelated enabled auto-merge (squash) June 19, 2026 17:33
@kixelated kixelated merged commit b6d0660 into dev Jun 19, 2026
1 check passed
@kixelated kixelated deleted the claude/merge-main-into-dev-992spq branch June 19, 2026 18:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants