Skip to content

chore(quest): plan compiling wasm32 on every PR - #545

Merged
kixelated merged 1 commit into
mainfrom
quest-plan/wasm-per-pr
Nov 10, 2026
Merged

kixelated merged 1 commit into
mainfrom
quest-plan/wasm-per-pr

Conversation

@kixelated

@kixelated kixelated commented Nov 10, 2026 •

Copy link
Copy Markdown
Collaborator

Plans quest/m2/adoption/targets/wasm.md, a follow-up of moq-dev/rind#543, which restored the wasm32 build and added a nightly compile job. The new quest makes just check's cross module compile the rind library for wasm32 on every PR, so a break like moq-dev/rind#412's fails before merging.

Changes

  • New [S] quest quest/m2/adoption/targets/wasm.md, a child of the targets epic.
  • The targets epic's Goal and non-goals no longer exclude wasm. It now compiles there, while runtime tests, the adapters, and speed stay non-goals. Its Plan records the new decision, which replaces 2026-11-06's "minus wasm".
  • The adoption epic's link line and the MoQ epic's "wasm32 does not build rind" line now match.

Decisions

Settled with the maintainer on 2026-11-09:

Public API

None. Quest files only.

Checks

quest check and just check pass.

Models

Size: XS
Implementer: Claude Code, claude-opus-5-5, high effort

(Written by Claude Opus 5.5 with high)

Review

Rewritten by quest review after each round.

  • Reviewer: Codex, gpt-6.1-sol, low effort
  • Session: 01a1c2c4-f102-7190-9530-8faa1e199514, round 1
  • Head: e2bfeed
  • Base: origin/main at 5028ad0
  • Score: 10/10, The documentation-only change updates planning documents and adds the wasm32 compile-check quest, with no executable code changes or actionable defects.
  • Findings: none

wasm32 becomes a compile-only target of the targets epic, checked in
`just check`'s cross module, after #543 restored the build.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kixelated
kixelated marked this pull request as ready for review November 10, 2026 00:04
@coderabbitai

coderabbitai Bot commented Nov 10, 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 39 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: 063d6ce2-0ab6-4284-bcad-20c1c71b9a74
Commits

Reviewing files that changed from the base of the PR and between 5028ad0 and e2bfeed.

Files selected for processing: 4

  • quest/m1/moq/README.md
  • quest/m2/adoption/README.md
  • quest/m2/adoption/targets/README.md
  • quest/m2/adoption/targets/wasm.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 added this pull request to the merge queue Nov 10, 2026

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

ℹ️ Minor suggestions only — one stale-reference sweep missing.

Reviewed changes

  • New [S] quest quest/m2/adoption/targets/wasm.md: move the wasm32 compile checks (wasm32-unknown-unknown with getrandom/wasm_js, and wasm32-wasip2, each with and without wipe) into just check's cross module, gain both targets in the flake's pinned toolchain, delete #543's nightly build.yml job as redundant, and have PLATFORMS.md say PRs check it.
  • Targets epic (quest/m2/adoption/targets/README.md) reverses the 2026-11-06 "minus wasm" decision with a dated replacement note in the Plan, rewords Goal/Non-goals for a compile-only wasm32, and links the new child in Required.
  • Cross-reference sync: the adoption epic's link line and the MoQ epic's "wasm32 does not build rind" line now match the new state.

Verified against the tree: the cross module and its scope regex exist in sh/dispatch.sh, check.yml runs it under the flake toolchain that already carries the other cross targets, #543's diff adds exactly the nightly job the quest deletes (its checks pass, so getrandom/wasm_js and both targets compile), and the #412/#512 MD5 black_box account matches #543's change. No code changes, so no mutants-pin or Sources-table shifts.

Pullfrog  | Fix all ➔ | Fix 👍s ➔ | View workflow run | Using glm-5.3 | 𝕏


Every PR that changes rind's code compiles the `rind` library for `wasm32-unknown-unknown` (with `getrandom/wasm_js`) and `wasm32-wasip2`, with and without `wipe`, in `just check`'s `cross` module, so a wasm build break fails before merging rather than in a nightly run.
The flake's pinned toolchain gains both targets.
The nightly `wasm` job in `build.yml` that [moq-dev/rind#543](https://github.com/moq-dev/rind/pull/543) added is deleted as redundant, and [PLATFORMS.md](/PLATFORMS.md) says PRs check it.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

This reversal leaves three docs still stating the pre-#543 "no wasm build" state, and the quest's deliverables only name PLATFORMS.md. quest/m0/adapters/ring.md:14 is the one that matters most — it records the old state unqualified in the quest tree. Add these to the quest's Goal (or repoint them here), so the reversal is recorded both ways.

Technical details
# wasm reversal leaves stale "no wasm build" claims

## Affected sites

- quest/m0/adapters/ring.md:14 — "`wasm32_unknown_unknown_js` stays a no-op because rind doesn't build for wasm32 at all". The reason goes stale once #543 lands; the conclusion (no browser build loses entropy) still holds, since the adapters stay non-goals on wasm, but the cited state is the one this epic reverses. Convention: a call reversal adds pointers both ways (as the m4 parity epic did for its out-of-reach call).
- MIGRATE.md:56 — "rind compiles only for x86_64, aarch64, and 32-bit ARM, so i686, wasm32, riscv64, and every other architecture fail to build".
- rind-dart/pubspec.yaml:15 — "# No web: rind has no wasm build, so the package refuses that target." The refusal itself can stay (the build hook is native-only); only the stated reason goes stale.

## Required outcome

- Each site either states the new state (the rind library compiles for wasm32, compile-checked on every PR) or links the quest / targets epic as the record of the change.

Merged via the queue into main with commit 7020a33 Nov 10, 2026
8 checks passed
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