Skip to content

quest: plan tokio's sync channels in rust2-ts; record that unsafe may stay refused - #648

Merged
kixelated merged 5 commits into
mainfrom
quest-plan/ts-tokio-sync
Nov 7, 2026
Merged

kixelated merged 5 commits into
mainfrom
quest-plan/ts-tokio-sync

Conversation

@kixelated

@kixelated kixelated commented Nov 7, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • Adds tokio's sync channels mapped into the runtime [M] to the ts-wasm-bindgen epic's Required. It is the follow-up of moq-dev/rust2#638: web-codecs' encoders and decoders pass frames through mpsc::unbounded_channel and errors through watch::channel, read in a biased; tokio::select!. The spike's census counts about 50 refusals there.
  • Replaces the epic's "Open:" tokio bullet with the decision.
  • Adds a 2026-11-07 decision to quest/m3/README.md's Plan: little time goes to unsafe Rust. Refusing it with a span is fine, and so is mapping a common library.

Stacked on #638's head (388b6d4, queued). Until that lands, this diff shows #638's quest changes too.

Decisions

  • ✅ tokio's mpsc, watch, and oneshot, plus select!'s support, are mapped into the runtime, as hashbrown and bytes are. Rejected: translating tokio's source (intrusive waiter lists, raw pointers into UnsafeCells, atomics, process::abort), and mapping only web-codecs' methods.
  • ✅ Unsafe Rust may stay refused, and a common library may be wrapped. Rejected: planning each unsafe std gap with no consumer. moq-dev/rust2#647 was closed on this.

🤖 Generated with Claude Code

(Written by Claude Opus 5.5 with high effort)

Review

Rewritten by quest review after each round.

  • Reviewer: Codex, gpt-6.1-sol, medium effort
  • Session: 01a1b687-b5d8-7a31-a686-920eb55cc8ad, round 1
  • Head: a1d4c2b
  • Base: origin/main at 049c551
  • Score: 10/10, The specified diff only updates quest documentation and splits planned work coherently; no actionable defects, missing local link targets, or whitespace errors were found.
  • Findings: none

kixelated and others added 4 commits November 6, 2026 23:16
The spike's findings: translation reads each import's JS shape from the
program wasm-bindgen's macro encodes in a link_section static, since
source reading misses the macro_rules!-made imports on the encoder's path.
The imports quest is rewritten to it and split: closures, js-sys's
futures, and the VideoEncoder test in headless Chromium move to a
closures quest. The epic records tokio::sync as a further gap for
web-codecs.

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

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

pullfrog Bot commented Nov 7, 2026

Copy link
Copy Markdown

Pullfrog  | Review this ➔

@kixelated
kixelated marked this pull request as ready for review November 7, 2026 15:03
@coderabbitai

coderabbitai Bot commented Nov 7, 2026 •

Copy link
Copy Markdown

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 50 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review 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: efb098a4-008f-4f0c-b1fe-091815bcf36f
Commits

Reviewing files that changed from the base of the PR and between 0f38e01 and 858f123.

Files selected for processing: 3

  • quest/m3/README.md
  • quest/m3/ts-wasm-bindgen/README.md
  • quest/m3/ts-wasm-bindgen/tokio-sync.md
  • 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

@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 a1d4c2b against base 049c551, separating the already reviewed #638 changes at 388b6d4 from this PR's three-document addition.

No actionable findings in the new plan. Mapping mpsc, watch, oneshot, and select support addresses the identified channel dependency without requiring Tokio's unsafe internals to translate. The plan explicitly refuses blocking methods and unrelated synchronization primitives, and calls for differential checks of ordering, closure, and future readiness. The epic links and the newer m3 decision consistently record that unsupported unsafe code may remain refused rather than forcing speculative implementation work.

Verification limits: GitHub-only static documentation review. No runtime implementation is introduced here; I did not execute quest validation, verify the refusal census, or test Tokio/select behavior. This is a COMMENT, not an approval.

(Written by review (OpenAI))

# Conflicts:
#	quest/m3/ts-wasm-bindgen/README.md
@kixelated
kixelated removed this pull request from the merge queue due to a manual request Nov 7, 2026
@moq-bot

moq-bot Bot commented Nov 7, 2026

Copy link
Copy Markdown

quest land watch: the merge queue removed this pull request at a1d4c2b because kixelated removed it (manual).

A person's removal ends the pick: the watcher leaves this pull request alone until a maintainer enqueues it again.

(written by quest land watch)

@kixelated
kixelated added this pull request to the merge queue Nov 7, 2026
Merged via the queue into main with commit c299153 Nov 7, 2026
4 checks passed
@kixelated
kixelated deleted the quest-plan/ts-tokio-sync branch November 7, 2026 15:33
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.

1 participant