Skip to content

refactor(kio)!: move moq-clock into kio::clock - #7027

Merged
moq-bot[bot] merged 16 commits into
mainfrom
quest/m1/kio-clock
Nov 1, 2026
Merged

moq-bot[bot] merged 16 commits into
mainfrom
quest/m1/kio-clock

Conversation

@kixelated

@kixelated kixelated commented Oct 28, 2026 •

Copy link
Copy Markdown
Collaborator

Problem

Waiting and time are the two halves of kio's "easy async": a Deadlines queue parks kio waiters, and the simulator drives kio tasks. They were already coupled through kio's private _sim feature, which existed only for moq-clock's simulator. moq-clock is infrastructure rather than a MoQ component, and it is not on release yet, so the move is free now and a break after the cut. Quest: quest/m1/kio-clock.md.

Approach

  • moq-clock's sources move unchanged into rs/kio/src/clock/ as kio::clock. moq-clock-macros becomes kio-macros (rs/kio/macros), re-exported as #[kio::test] behind sim. A proc macro needs its own crate, so this one stays separate.
  • kio gains features that match moq-clock's: runtime, sim, manual, serde. The default is empty, so a kio user that never waits on the host clock compiles no runtime backend. Dependents that relied on moq-clock's default now enable kio/runtime.
  • _sim is gone. sim turns on the Ready-poll accounting, and coop::scope becomes crate-private because only the simulator calls it.
  • Every dependent manifest, use, #[moq_clock::test], clippy.toml reason, doc, quest, and CI path filter now names kio. kio takes over moq-clock's clippy.toml, and its contended bench is exempted because it measures host time.
  • moq-audio, moq-video, and moq-tokio used to depend on kio only behind a feature. They now depend on it unconditionally, since the clock they already required lives there.
  • doc/lib/rs/moq-clock.md becomes doc/lib/rs/kio.md. rs/moq-clock and rs/moq-clock/macros are deleted.

Impact

  • kio (published): adds pub mod clock with moq-clock's items unchanged, #[kio::test] (with sim), and the features runtime, sim, manual, and serde. The default features stay empty. Breaking: the private _sim feature and the coop::scope it exposed are removed, so enable sim instead.
  • moq-clock / moq-clock-macros (0.11 / 0.1, never published): deleted. To migrate, replace moq-clock = { ... } with kio = { ..., features = ["runtime"] } (add sim, manual, or serde as before), moq_clock::X with kio::clock::X, and #[moq_clock::test] with #[kio::test]. moq-clock's default enabled runtime; kio's does not, so a former default-features = false user enables nothing. The crates.io name moq-clock stays at the 0.10.21 demo binary.
  • Dependents (moq-net, moq-quic, moq-auth, hang, moq-mux, and the rest): public types such as moq_net::time::Instant keep their identity and now name kio::clock::Instant. The runtime/manual forwarding features (moq-net/async, moq-auth/client, moq-ffi/testing, moq-uring/_manual) now forward to kio/....
  • Wire: none.

Choices made without asking

  • Name and location of the macro crate: kio-macros at rs/kio/macros, version 0.1.0 like moq-clock-macros. It mirrors tokio-macros.

  • Browser builds: dropped. main removed WASM support (moq-dev/moq#7475), so kio's clock has only the tokio runtime backend and no web-async dependency.

  • Dev-dependency features: a dev-dependency on moq-clock used to bring in the runtime through moq-clock's default. Its kio replacement adds runtime explicitly unless the normal dependency already enables it, so tests keep the clock they had.

  • Migration notes: moq-clock's Unreleased MIGRATE.md notes are dropped with the crate. They covered anchor()→origin() (an API that was never published) and the 0.10 binary's move to the moq-tokio clock example (nothing republishes that name). Existing Unreleased notes in moq-uring, moq-auth, and moq-quic now say kio::clock instead of the crate that no longer exists.

  • Stale facts in AGENTS.md: rs/AGENTS.md and rs/moq-net/AGENTS.md now say #[kio::test] where they named #[moq_clock::test]. These are stale facts fixed inline, not rule changes.

  • Merge with main (head caf647daf7): conflicts were resolved by taking main's side and reapplying the rename. Code that main added since then (in moq-net, moq-audio, moq-video, and moq-quic's qlog) now names kio::clock too. moq-flate is gone from main, so its edits from this PR were dropped. The new quest kio's clock tests pass under cargo test now points at rs/kio/src/clock/runtime.rs and cargo test -p kio --all-features. The coverage table in quest/m2/audit-test-coverage.md keeps its moq-clock row, because it records a past measurement.

  • Merge with main (head 5933911d00): main added its own kio-macros crate at rs/kio/macros for #[kio::machine] (moq-dev/moq#7148). #[kio::test] now lives in that crate as src/sim_test.rs, re-exported behind sim while machine stays behind macros. main's _sim feature is gone as before, and its switch to bench-harness is kept (still native-only for kio). New moq_clock uses on main (moq-c, moq-cli, moq-mux, moq-net, moq-net-tests, moq-rtmp) now name kio::clock.

  • Merge with main (head 4cd6623d06): conflicts took main's side and reapplied the rename. That includes main's move to one-group IETF fills in moq-net, the bounded jitter admission in moq-mux, the pinned HLS target duration, and the send/recv namespacing in moq-quic's README. New moq_clock uses on main now name kio::clock: the moq-net resume model and its warm_backfill and announce_covering_route tests, the moq-mux consumer and jitter bench, and qmux's session tests. moq-net keeps main's new proptest dev-dependency next to kio.

  • Merge with main (head 264735cd1d): main at 1d8bf24998 conflicted in moq-net's ietf publisher tests, which main had reworked: a joining FETCH that lost its prefix group, the FETCH_OK property block, and the joining FETCH that outlives its subscription but not its token. Those hunks took main's side and reapplied the rename. New moq_clock uses on main now name kio::clock: the joining-fetch sim helpers in moq-net, moq-mux's TS handoff trace, the sh/dispatch-query.test.py fixture path, and the WebRTC stack clock quest with its epic link.

  • Merge with main (head dce0752881): main at a1169021b6 replaced kio's used/unused/is_used with wanted/wanted_changed (moq-dev/moq#7036), which conflicted in rs/kio/src/producer.rs and rs/kio/src/weak.rs. They take main's API, gated on sim rather than main's _sim. moq-net's origin and fetch_cancel tests also conflicted. They take main's hunks (the requests_route predecessor argument, wanted_changed) with the rename reapplied. Two areas on main had new moq_clock uses, and they now name kio::clock: moq-auth's peer grants (moq-dev/moq#7303) and moq-net's announce takeover tests and lite subscriber test (moq-dev/moq#6994). moq-dev/moq#7348, moq-dev/moq#7243, and moq-dev/moq#7377 are still open and touch moq-clock. Whichever lands second (this PR or each of those) moves the other's clock uses.

  • Merge with main (head 59c9126303): main at 30f23c3f8a removed WASM support (moq-dev/moq#7475) and loom (moq-dev/moq#7474), and moved the per-crate clippy.toml bans into one root clippy.toml (moq-dev/moq#7329). The merge takes all three. kio's clock drops its browser backend: its runtime backend is main's tokio-only moq-clock runtime with the paths renamed, runtime enables only tokio, and the web-async, wasm-bindgen, and target-gated dev-dependencies are gone, so criterion is an ordinary dev-dependency again. The wasm CI filter and the just rs wasm/wasm-test/wasm-fix recipes stay deleted as on main. The per-crate clippy.toml files stay deleted, and the root file's reasons now name kio::clock. kio keeps its own clippy.toml (moq-clock's), which bans no types, so its contended bench keeps the single disallowed_methods expectation. The browser wording in kio's README, its clock module docs, and doc/lib/rs/kio.md is gone. A leftover feature = "_sim" on Tasks::poll_each now says sim, and kio's layout test no longer imports the deleted sync module. About 1,500 new moq_clock uses on main (most from moq-dev/moq#7329's controlled-time tests) now name kio::clock and #[kio::test]. New dev-dependencies on moq-clock in moq-e2ee, moq-srt, and moq-transcode are now kio with runtime (plus sim for moq-transcode). moq-ffi keeps main's optional moq-audio. The ts path filter drops rs/moq-clock/**, and the dispatcher tests change rs/kio/src/clock/mod.rs.

Checks

These passed locally: just check (rs lint, the feature extremes, loom, the wasm clippy pass, and nextest across the selected workspace), just rs quic-features, just rs wasm-test (the browser clock tests, run with and without runtime), and a workspace clippy plus the moq-rtmp/kio tests after merging main. After the latest main merge, workspace clippy (--all-targets --all-features) and just check passed again. The Nix flake check was skipped because the local builder cannot create user namespaces.

After the merge into main at 4cd6623d06, quest gate just check origin/main passed every Rust step: rs lint, tests, and the wasm pass. It also passed js, drafts, markdown, gh, bench, carla, swift, workers, moq_sh, quest, obs, shell, large_files, toml, nix, and justfile. The c, cpp, obs_compile, kt, go, and dart steps failed in this environment because cargo build-ffi (the .cargo/config.toml alias) exits with unexpected argument 'build' found. It fails the same way with the bare nix cargo, and this PR changes none of those paths. The flake check was skipped because the builder has no user namespaces. moq-hls clippy and tests passed again after the last main merge.

After the merge of main at 1d8bf24998 (head 264735cd1d), quest gate just check origin/main passed every module, including c, cpp, obs_compile, kt, go, and dart. Only the flake check was skipped.

CodeQL (optional) reports four alerts on code this PR does not change in substance: a decode buffer in rs/moq-quic/src/varint.rs (not in this diff), the KEY_A/KEY_B test constants in rs/moq-tokio/src/mdns.rs, and a cert load in rs/moq-tokio/src/server.rs. The PR only renames clock calls in those two files. The alerts appear because the diff is too large for CodeQL to tell which code is new. They are false positives, so this PR leaves them alone.

After the merge of main at a1169021b6 (head dce0752881), these passed under quest gate: workspace cargo clippy --all-targets -D warnings, cargo nextest run for kio, moq-net, and moq-auth (3627 passed), their doctests, and cargo fmt --check. Under plain cargo test, clock::runtime::tests::paused_runtimes_own_their_anchors fails, because it needs a fresh process. That is the known gap tracked by kio's clock tests pass under cargo test. The full gate is left to quest land.

After the merge of main at 30f23c3f8a (head 59c9126303), quest gate nix develop -c just check origin/main passed every module (rs, py, c, cpp, obs_compile, js, kt, go, dart, swift, gh, markdown, quest, ts_paths, and the rest). Only the flake check was skipped. Workspace cargo clippy --all-targets --all-features -D warnings also passed.

CodeQL's open alerts on this PR (35, 36, 58, 59, 61, 64) are all open on main too, so none come from this PR.

Alternatives

  • Keep moq-clock as a separate crate and only rename it: rejected in the quest. The _sim coupling would remain, and so would a crate whose only consumer is code that already depends on kio.
  • Turn on runtime by default in kio: this would have made the manifest diff smaller. The quest asks for lean defaults, so it was not done.

Follow-ups

Review

  • Reviewer: Codex (quest review), gpt-6.1-sol, medium effort. Round 1 of session 01a195e4 reviewed head 59c912630374165e6ea1e86a249a83e8ab66a0ca against origin/main c1c062f375. It reported no findings. The merge had hand-resolved conflicts, so it needed this review.
  • Earlier rounds: head dce0752881 had no findings, and head 9558d4ab48 was a mechanical main merge by Codex. Head 264735cd1d had no findings. Head 995df5b9fd had one, the reverted HLS target duration, which was fixed by merging moq-dev/moq#7018. Head 4cd6623d06 had no findings.

(Written by Claude Opus 5.5)

🤖 Generated with Claude Code

kixelated and others added 4 commits October 27, 2026 23:36
Quest-Claim: 9740628bbb362c46
moq-clock and moq-clock-macros become kio::clock and #[kio::test], behind
kio's runtime, sim, manual, and serde features. kio's private _sim feature
is gone, and every dependent imports kio::clock.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…mentions

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kixelated kixelated changed the title moq-clock moves into kio::clock refactor(kio)!: move moq-clock into kio::clock Oct 28, 2026
kixelated and others added 2 commits October 28, 2026 01:53
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kixelated

Copy link
Copy Markdown
Collaborator Author

Note from #7148: it adds a kio-macros proc-macro crate (rs/kio/macros, re-exported behind kio's macros feature) for #[kio::machine]. The planned #[kio::test] can live there too, rather than in a crate of its own.

(Written by Claude Opus 5.5)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kixelated
kixelated marked this pull request as ready for review October 29, 2026 15:25
@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-31T04:24:36.272421Z 264735c New commits
ℹ️ 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.

@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 caf647daf76540d411ad31e15de4f5569601f4b6.

No actionable bugs found in the clock implementation move, simulator/macro wiring, and dependency/feature migration inspected. Moving the shared clock into kio is a coherent simplification; retaining explicit runtime opt-in preserves the lean consumers without adding another abstraction.

Verification: static comparison of the moved clock modules, affected Cargo feature wiring, and browser/test dispatch changes. I did not run builds, tests, Loom, or browser checks; the reported execution results were not independently verified.

Fold #[kio::test] into main's kio-macros crate (from #[kio::machine]) and
rename main's new moq_clock uses to kio::clock.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@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 5933911d00bd59d1cda697b9c0cbcd388db0a028, focusing on the substantive integration changes since review #5700431388 rather than inherited main-branch changes.

No actionable bugs found in the inspected delta. Combining the existing machine macro and simulator test macro in one crate is a reasonable simplification: the extracted test expansion is preserved, and the sim/macros feature gates keep their re-exports independent. The updated dependency and native benchmark wiring is consistent with that direction.

Verification: static, base-aware inspection of the macro extraction, feature/dependency wiring, and relevant clock/test integration, with an independent static check. I did not compile, run tests, or execute the native/browser feature matrix; this is not an exhaustive re-review of all 466 changed files.

@kixelated

kixelated commented Oct 30, 2026 •

Copy link
Copy Markdown
Collaborator Author

Merging. Summary of this /quest-merge pass:

  • Conflicts with main: resolved in 5933911. main added its own kio-macros crate for #[kio::machine] (moq-dev/moq#7148), so #[kio::test] now lives in that crate (src/sim_test.rs). It is re-exported behind sim, and machine stays behind macros. main's bench-harness switch is kept, and new moq_clock uses on main now name kio::clock.
  • Failing check: only the optional CodeQL check failed. It flagged existing test constants and cert logging in moq-quic and moq-tokio, because the diff is too large to scope. This PR doesn't touch that code. CodeQL on the new head was still running when this was queued; it is optional.
  • Local checks: workspace clippy (--all-targets --all-features) and just check passed. The Nix flake check is skipped because the local builder can't create user namespaces. quest check against origin/main passed.
  • Reviews: Codex (👍) and the automated review of 5933911 found nothing.

(Written by Claude Opus 5.5)

@kixelated
kixelated added this pull request to the merge queue Oct 30, 2026
@kixelated
kixelated enabled auto-merge (squash) October 30, 2026 06:27
@github-actions
github-actions Bot disabled auto-merge October 30, 2026 07:37
@github-actions

Copy link
Copy Markdown
Contributor

quest land removed this pull request from the queue: it conflicts with the base or the PRs queued before it in rs/moq-hls/src/export/rendition.rs, rs/moq-net/Cargo.toml, rs/moq-net/src/ietf/publisher.rs, rs/moq-net/src/ietf/subscriber.rs, rs/moq-net/src/model/origin.rs, rs/moq-net/src/model/track.rs, rs/moq-net/tests/integration/subscribe_ranges.rs; merge the base, push, and land it again (run).

Conflicts took main's side and reapplied the moq_clock -> kio::clock rename.
New moq_clock uses on main (moq-net resume model and integration tests,
moq-mux consumer and jitter bench, qmux session tests) now name kio::clock.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@moq-bot
moq-bot Bot disabled auto-merge November 1, 2026 05:48
@moq-bot moq-bot Bot removed the quest:merge label Nov 1, 2026
@moq-bot

moq-bot Bot commented Nov 1, 2026

Copy link
Copy Markdown
Contributor

quest land removed this pull request from the queue: Conflicts with the base: .github/workflows/release-gate.yml, .github/workflows/wasm.yml, Cargo.lock, clippy.toml, quest/m2/rs2ts/README.md, quest/m2/rs2ts/wasm-bindings.md, quest/m2/time-test-sweep.md, rs/hang/clippy.toml, rs/justfile, rs/kio/benches/contended.rs, rs/kio/src/clock/runtime.rs, rs/libmoq/clippy.toml, rs/moq-archive/clippy.toml, rs/moq-auth/clippy.toml, rs/moq-auth/src/client.rs, rs/moq-bench/clippy.toml, rs/moq-boy/clippy.toml, rs/moq-c/clippy.toml, rs/moq-cli/clippy.toml, rs/moq-clock/Cargo.toml, rs/moq-congestion/Cargo.toml, rs/moq-congestion/clippy.toml, rs/moq-e2ee/clippy.toml, rs/moq-ffi/Cargo.toml, rs/moq-ffi/clippy.toml, rs/moq-ffi/src/ffi.rs, rs/moq-ffi/src/session/dial.rs, rs/moq-gst/clippy.toml, rs/moq-hls/clippy.toml, rs/moq-ice/clippy.toml, rs/moq-json/clippy.toml, rs/moq-loc/clippy.toml, rs/moq-msf/clippy.toml, rs/moq-mux/clippy.toml, rs/moq-mux/src/container/ts/export_timing_test.rs, rs/moq-mux/src/jitter.rs, rs/moq-native/clippy.toml, rs/moq-net/clippy.toml, rs/moq-net/src/ietf/publisher/tracks.rs, rs/moq-net/src/lite/subscriber.rs, rs/moq-net/src/model/clock.rs, rs/moq-net/src/model/resume.rs, rs/moq-net/tests/integration/subscribe_tracks.rs, rs/moq-net/tests/integration/tracks_ietf.rs, rs/moq-nvenc/clippy.toml, rs/moq-pattern/clippy.toml, rs/moq-quic/Cargo.toml, rs/moq-quic/clippy.toml, rs/moq-relay/clippy.toml, rs/moq-room/clippy.toml, rs/moq-rtmp/clippy.toml, rs/moq-rtsp/clippy.toml, rs/moq-shaper/clippy.toml, rs/moq-sign/clippy.toml, rs/moq-sock/clippy.toml, rs/moq-srt/clippy.toml, rs/moq-stats/clippy.toml, rs/moq-tokio/clippy.toml, rs/moq-tokio/src/server.rs, rs/moq-transcode/Cargo.toml, rs/moq-transcode/clippy.toml, rs/moq-uring/clippy.toml, rs/moq-uring/src/udp.rs, rs/moq-v4l/clippy.toml, rs/moq-video/clippy.toml, rs/moq-wasm/README.md, rs/moq-wasm/clippy.toml, rs/qmux/clippy.toml, rs/uniffi-bindgen/clippy.toml, sh/dispatch-query.test.py, sh/rs/select.sh, test/wasm/README.md, test/wasm/generator.md
.

@moq-bot

moq-bot Bot commented Nov 1, 2026

Copy link
Copy Markdown
Contributor

codex / Codex land fixer: This maintainer pick already used its mechanical fi·x attempt. Run /quest-iterate to diagnose the repeated failure, then pick it again.

(written by codex / Codex)

# Conflicts:
#	.github/workflows/release-gate.yml
#	.github/workflows/wasm.yml
#	Cargo.lock
#	clippy.toml
#	quest/m2/rs2ts/README.md
#	quest/m2/rs2ts/wasm-bindings.md
#	quest/m2/time-test-sweep.md
#	rs/hang/clippy.toml
#	rs/justfile
#	rs/kio/benches/contended.rs
#	rs/kio/src/clock/runtime.rs
#	rs/libmoq/clippy.toml
#	rs/moq-archive/clippy.toml
#	rs/moq-auth/clippy.toml
#	rs/moq-auth/src/client.rs
#	rs/moq-bench/clippy.toml
#	rs/moq-boy/clippy.toml
#	rs/moq-c/clippy.toml
#	rs/moq-cli/clippy.toml
#	rs/moq-clock/Cargo.toml
#	rs/moq-congestion/Cargo.toml
#	rs/moq-congestion/clippy.toml
#	rs/moq-e2ee/clippy.toml
#	rs/moq-ffi/Cargo.toml
#	rs/moq-ffi/clippy.toml
#	rs/moq-ffi/src/ffi.rs
#	rs/moq-ffi/src/session/dial.rs
#	rs/moq-gst/clippy.toml
#	rs/moq-hls/clippy.toml
#	rs/moq-ice/clippy.toml
#	rs/moq-json/clippy.toml
#	rs/moq-loc/clippy.toml
#	rs/moq-msf/clippy.toml
#	rs/moq-mux/clippy.toml
#	rs/moq-mux/src/container/ts/export_timing_test.rs
#	rs/moq-mux/src/jitter.rs
#	rs/moq-native/clippy.toml
#	rs/moq-net/clippy.toml
#	rs/moq-net/src/ietf/publisher.rs
#	rs/moq-net/src/ietf/publisher/tracks.rs
#	rs/moq-net/src/ietf/subscriber.rs
#	rs/moq-net/src/lite/subscriber.rs
#	rs/moq-net/src/model/clock.rs
#	rs/moq-net/src/model/resume.rs
#	rs/moq-net/tests/integration/subscribe_tracks.rs
#	rs/moq-net/tests/integration/tracks_ietf.rs
#	rs/moq-nvenc/clippy.toml
#	rs/moq-pattern/clippy.toml
#	rs/moq-quic/Cargo.toml
#	rs/moq-quic/clippy.toml
#	rs/moq-relay/clippy.toml
#	rs/moq-room/clippy.toml
#	rs/moq-rtmp/clippy.toml
#	rs/moq-rtsp/clippy.toml
#	rs/moq-shaper/clippy.toml
#	rs/moq-sign/clippy.toml
#	rs/moq-sock/clippy.toml
#	rs/moq-srt/clippy.toml
#	rs/moq-stats/clippy.toml
#	rs/moq-tokio/clippy.toml
#	rs/moq-tokio/src/connection.rs
#	rs/moq-tokio/src/server.rs
#	rs/moq-transcode/Cargo.toml
#	rs/moq-transcode/clippy.toml
#	rs/moq-uring/clippy.toml
#	rs/moq-uring/src/udp.rs
#	rs/moq-v4l/clippy.toml
#	rs/moq-video/clippy.toml
#	rs/moq-wasm/README.md
#	rs/moq-wasm/clippy.toml
#	rs/qmux/clippy.toml
#	rs/uniffi-bindgen/clippy.toml
#	sh/dispatch-query.test.py
#	sh/rs/select.sh
#	test/wasm/README.md
#	test/wasm/generator.md
@kixelated

Copy link
Copy Markdown
Collaborator Author

Landing summary for head 59c912630374165e6ea1e86a249a83e8ab66a0ca.

quest land removed this PR with merge_conflict. I merged main at 30f23c3f8a, which removed WASM support (moq-dev/moq#7475) and loom (moq-dev/moq#7474), and moved the per-crate clock bans into one root clippy.toml (moq-dev/moq#7329).

  • kio's clock now has only the tokio runtime backend. Its runtime feature enables only tokio, and the web-async and wasm-only dependencies are gone.
  • The per-crate clippy.toml files and the wasm recipes and CI filter stay deleted, as on main. The root clippy.toml reasons now name kio::clock.
  • About 1,500 new moq_clock uses on main now name kio::clock and #[kio::test]. New moq-clock dev-dependencies in moq-e2ee, moq-srt, and moq-transcode now point at kio.
  • I also fixed a leftover feature = "_sim" gate in rs/kio/src/task.rs and removed the browser wording from kio's docs.

Checks: quest gate nix develop -c just check origin/main passed every module. The flake check was skipped because the local builder has no user namespaces. Workspace clippy with --all-targets --all-features also passed.

Review: Codex (gpt-6.1-sol, medium effort) reviewed this head and reported no findings.

CodeQL: every alert open on this PR is also open on main, so none of them come from this PR.

The PR body records these choices under the 59c9126303 merge entry.

(Written by Claude Opus 5.5)

@kixelated
kixelated enabled auto-merge (squash) November 1, 2026 07:06
@moq-bot
moq-bot Bot merged commit 69b44dd into main Nov 1, 2026
1 check passed
@moq-bot
moq-bot Bot deleted the quest/m1/kio-clock branch November 1, 2026 07:29
kixelated added a commit that referenced this pull request Nov 1, 2026
Resolve conflicts in quest/m2/quic-sim.md and rs/moq-tokio/Cargo.toml, and port the sim code from moq-clock to kio::clock after #7027 folded moq-clock into kio.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
kixelated added a commit that referenced this pull request Nov 1, 2026
Converts the moq_clock uses this branch adds to kio::clock and #[kio::test], after main moved moq-clock into kio (#7027).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
kixelated added a commit that referenced this pull request Nov 1, 2026
main moved moq-clock into kio (#7027); the test still named moq_clock.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
kixelated added a commit that referenced this pull request Nov 1, 2026
…-before-start

Keeps this branch's Window::covered_by over #6995's (now on main): the
memo plus &impl Accounted and the stop at the first missing group. Moves
CoverageBench and its test onto kio::clock after #7027.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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