Repository navigation
quest: audit the tree against the code and moq - #667
Conversation
Fix dead moq links, move upstream waits into Waiting sections, narrow the ffi stand-in first, merge the two moq pin bumps, and say a glob of a crate root exports its items. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Plan smallvec's runtime mapping under the unsafe policy's rule 2, refuse Bytes::slice_ref of other storage at translation, move the two tsc-failing safe-Rust bugs to the top of m3's ts quests, and give ts-model its wait on moq's subset quest. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Warning Review limit reachedYou'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 25 minutes. View limit details
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. |
kixelated
left a comment
There was a problem hiding this comment.
Automated review by review (OpenAI)
Findings: No actionable defects found in the 29-file documentation and quest-plan diff.
Direction: The audit makes the implementation order and upstream gates clearer. The stand-in narrowing is now an explicit first step, the two moq pin tasks are consolidated, and the smallvec plan explicitly requires observable capacity/spill state and drop-order differential coverage rather than treating SmallVec as an interchangeable Vec. The Bytes::slice_ref follow-up is consistent with AGENTS.md's safe-code/runtime-error policy.
Verification: Read the complete changed-file patches and checked relevant source and test context, including the FFI configuration and stand-in recipe, stock mappings and bytesSliceRef runtime, model dependency pin, Swift guard, existing external Go fixture and its Rust harness, and the linked moq driver/model plans. New repository-local links in added lines resolve in the head tree. This was GitHub-only static review: no shell commands, builds, tests, quest validation, or benchmark reruns. The pinned SmallVec version was confirmed from Cargo.lock; upstream SmallVec source could not be retrieved through the connector, so its precise transition semantics were not independently verified. This is not a test-pass or merge-readiness claim.
(Written by review (OpenAI))

Summary
This audits every outstanding quest against the code, the docs, and moq's tree, which plans the work rust2 depends on. Three read-only passes covered m0 and m1, m2 and the m3 rust2-ts quests, and the rest of m3 plus m4. Every change below comes with its evidence.
Factual fixes
quest/m3/quic-sansio-driver.md;quest/m3/ffi-exporter.md;quest/m5/rs2ts-js.mdand links moq'srs2ts-model-subset;## Waiting, with their checks. These quests kept their upstream conditions in the Goal, soquest waitingand/quest-unblocknever showed them: session-quic, uniffi-swift-arm, ubrn-release, cranelift-unwind, relink, ts-fma-allowance, and ts-tsrs. fork gets aMaintainer:item. ts-model gets a wait on moq's m5rs2ts-model-subset: it looked unblocked, but its remaining work is moq's. session-quic's extra wait on moq-quic owning its waits had already cleared, so it is gone.quest/README.mdnamed "the fork's perf work" in m1 and "the pure-Rust profile" in m3. Neither exists any more.ffi/README.mdintro still said "starting from C", though all seven generators have landed.config.rsis deleted, but itsPackageand environment constants stay; it now lists the fixtures'ffi.tomlfiles.go/tests/exportsexists since #645.rs.ArraySlice.tscrejects.Decisions
Each was decided with the maintainer on 2026-11-07 and is recorded in the affected quest's Plan.
rs.Vec, under rule 2 of m3's unsafe policy. This adds the new ts-model childquest/m2/ts-model/smallvec.md. Rejected: moq dropping smallvec from the model's path.narrow-standin.md), so the other children count only what stays. Rejected: narrowing last.moq-pin.md, waiting on both moq quests.tscrejects.rustls. Rejected: refusing globs like whole-crate re-exports.Bytes::slice_refof bytes from other storage is refused at translation, since it is safe code and AGENTS.md allows run-time checks only forunsafepointers. It moves into ts-runtime-throws' "What remains". Rejected: keeping feat(ts)!: abort where Rust leaves behavior undefined, locate zip's and tokio's panics, and refuse erasing a pointer not shown an Arc's #661's run-time check and widening AGENTS.md.Not changed
Follow-ups (moq's tree)
quest/m5/rs2ts-model-subset.mdstill lists smallvec, and links rust2's deleted ts-unsafe epic. The companion moq PR updates both.quest/m5/rs2ts-wasm2js.mdlinks rust2's deletedquest/m2/ts.md. The companion moq PR fixes the link. Whether it should still call rust2-ts a "parallel research track" is moq's call.Models
Size: M
Implementer: Claude Code, claude-opus-5-5, high effort
(Written by Claude Opus 5.5 with high effort)
🤖 Generated with Claude Code
Review
Rewritten by
quest reviewafter each round.01a1b915-4436-7420-bc27-3ef929513748, round 3Both findings are fixed with semantics matching pinned SmallVec source; no concrete defects remain, and quest validation and whitespace checks pass.quest/m2/ts-model/smallvec.md:24:[P2] Correct the spill-to-inline transition rules;quest/m2/ts-model/smallvec.md:24-27 correctly describes grow/try_grow returning storage inline and spilled into_inner returning Err, with differential coverage required at lines 31-33.quest/m2/ts-model/smallvec.md:25:[P2] Preserve inline_size for zero-sized elements;quest/m2/ts-model/smallvec.md:26 specifies usize::MAX for zero-sized inline_size, matching pinned smallvec 1.16.3, and line 33 requires differential coverage.