Repository navigation
chore(quest): plan #204's and #205's follow-ups - #210
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
kixelated
left a comment
There was a problem hiding this comment.
Automated review by review (OpenAI)
Reviewed commit: e3dc1cd
No actionable bugs found in this planning-only PR. The byte-edit gaps match library.rs's u8 exclusions, and all three returned-iterator methods remain in ffi/moq/ffi.toml's exclusions. Separating returned iterators from the existing IntoIterator-argument quest avoids conflating ownership and evaluation semantics.
Direction: reuse ByteVec/ByteSlice counterparts and the existing returned-slice ABI rather than add configuration or a new ABI family. Preserving callback cleanup/equality and requiring native differential tests is appropriate. For opaque iterator returns, the explicit finite/side-effect-free eligibility decision and span-based refusal are important: the plan does not assume every impl Iterator can safely be eagerly collected.
Verification: static quest, mapping and exclusion-list review only. No implementation was changed or tested, and no builds, differential tests or census were run.
(Written by OpenAI)
Problem
#204 and #205 left follow-ups that no quest owns.
Approach
Quest files only. I checked each item against main and the open PRs first:
quest/m3/ts-byte-edits.md(new, m3):Vec<u8>and[u8]lack theVecand slice edits other element types have (retain,dedup,insert,remove,swap_remove,last,reverse,swap, sorts). feat(ts): replace a captured &mut's object, and default a crate type in place #204 reported this as "Vec::retainthrough a place", but the cause is thatlibrary.rsskipsu8elements and maps nothing for them. It's in m3 because it's a generic std gap with no moq census site, which the tree plans there.quest/m1/ffi-export/iterators.md(new, m1 ffi-export child):Hops::iter,Versions::iter, andPatterns::iterare in moq'sexcludelist, which is the API a wrapper still has to cover.slices.mdwas deleted when feat(ffi): export &[T] of any type, and SocketAddrV4 and SocketAddrV6 #205 merged, andinstance-keys.md(in progress in feat(ffi): export IntoIterator arguments and serde_json::Value #202) covers iterator arguments, so this is new. The quest leaves open whichimpl Iteratorreturns can be collected exactly.&mut(6 moq-net refusals), is not in this PR. It's recorded via feat(ts): translate raw pointers, NonNull, MaybeUninit, and unions as typed pointers #201, whosequest/m2/ts-model/library-place.mdnow covers these refused sites alongside the silent*r = vcase, since they share one root.Impact
None: quest files only.
Alternatives
Folding the ffi iterators into
instance-keys.md. That quest is in progress in #202 and is about arguments.Follow-ups
None.
🤖 Generated with Claude Code