Repository navigation
quest: plan configless tools, throws only where Rust panics, and follow-ups - #598
Conversation
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 23 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. |
There was a problem hiding this comment.
ℹ️ Two minor factual nits inline; nothing blocking.
Reviewed changes
Reviewed the full diff of commit 15d2566 against main.
- m1 exporter quests —
names.mdplans collision-free C names that keep Rust's case, one facade crate'spubAPI with its re-exports, and a prefix from Cargo's[lib] name, leaving onlyexcludeinffi.toml;refusals.mdplansjust ffi censusto zero and the deletion offfi.toml;python-types.mdplans mypy and pyright passing on the generated Python. - m3 quests —
ts-runtime-throws.md(no runtimerust2-ts:throw where native Rust goes on: a slower exact path with no flag, or a refusal at translation, with UB guards as aborts),ts-configless.md(nots.toml; roots, package, printable, and binds go), plus the [S] follow-upsts-vecdeque-buf.md(Buf over a ring deque) andts-btree-drop-order.md. - m4 quest —
go/configless.md, followingts-configless.md's choices. - Updates —
m3/README.mdandm4/go/README.mdlist the new quests;crates.mddrops its config edit in favour of the naming rule;ts-dyn.mdsettlesTypeIdas rustc's 128-bittype_id_hash;ffi-export/README.mdrecords the configless decision and grew its Required list.
The quests' factual claims check out against the sources reachable from the repo: 318 exclude entries in ffi/moq/ffi.toml for "about 300", the just ffi census recipe, the 21 rust2-ts: throw sites under ts/runtime/, rs.arcErase at ts/runtime/rs/task.ts:354, the key-order B-tree drop comments in ts/runtime/rs/collections.ts, the _n.Object / __hash__ = None Python output in ffi/src/python.rs, and the merge states of every cited PR (including #597, the merged AGENTS.md change behind the configless decisions).
(Written by glm-5.3-flash)
glm-5.3-flash | 𝕏
… traits Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e translator Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
quest land watch: the merge queue removed this pull request at 6caeb83 because Its head has moved to b7184ce since, and a push by anyone but the land fixer ends the pick: the watcher leaves this pull request alone until a maintainer enqueues it again. (written by quest land watch) |
There was a problem hiding this comment.
ℹ️ No new issues in the new commits — the prior review's two minor factual nits still stand.
Reviewed changes
Reviewed the delta of commit 6caeb83 since the prior review of 15d2566, against main.
names.md— field accessors and cross-crate items. Added that the naming rule must name a field's getter and setter apart from a method of the same name, with no rename (moq'sBackoff::initialfield and method; the reject fixture'sLimit::maxsetter besideset_max), and that items of different crates are named by their path in the facade, so moq-tokio's and moq-net'sClientneed distinct re-export paths.ts-dyn.md—TypeIdtraits reworked. Replaced "equality, order, hash, andDebugreuse theu128's" with std'sTypeIdimpls:Hashwrites oneu64,DebugprintsTypeId(0x…), andOrdis derived over the words, with tests logging aHasher's calls.
Every new factual claim checks out: Limit (field max, method max, set_max) at ffi/fixtures/reject/src/lib.rs:253, the Backoff field-and-method clash and moq-net's Client corroborated by the comments in ffi/moq/ffi.toml:238-243, and std's TypeId Hash/Debug/Ord impls in library/core/src/any.rs match the doc exactly. The two minor threads from the prior review (refusals.md's crate list omitting moq-pattern, and ts-vecdeque-buf.md's stale runtime premise) are untouched by this commit and still need addressing before merge.
(Written by glm-5.3-flash)
glm-5.3-flash | 𝕏
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes
Reviewed the delta of commit b7184ce since the prior review of 6caeb83, against main.
refusals.md— crate list fixed. Addedmoq-patternto the crates whose refusalsffi/moq/ffi.tomlexcludes, closing the prior review's missing-crate nit (Pattern::capturesis its exclusion,ffi/moq/ffi.toml:80).ts-vecdeque-buf.md— premise corrected. Now states the runtime already holds the deque's two slices as std'sas_slices, and the gap is the translator's mapping ofbytes's impl onto them, closing the prior review's stale-premise nit against the real code:Bufferints/src/lower/stock.rsknowsBytes,BytesMut, slices, andVec, but notVecDeque, soimpl Buf for VecDeque<u8>is refused today.
Both prior review threads are resolved. Nothing further stands between this PR and merge.
(Written by glm-5.3-flash)
glm-5.3-flash | 𝕏
|
quest land watch: the merge queue removed this pull request at b7184ce because its The land fixer works on it in the background, and the watcher re-enqueues it at the back of the queue once it is fixed or judged flaky, or hands it back here with what it needs.
…ub-runner-work/rust2/rust2/ts/fixtures/lang/shares/Cargo.toml", "/var/cache/github-runner-work/rust2/rust2/ts/fixtures/lang/shares/ts.toml", "/var/cache/github-runner-work/rust2/rust2/ts/fixtures/lang/singles/Cargo.toml", "/var/cache/github-runner-work/rust2/rust2/ts/fixtures/lang/singles/ts.toml", "/var/cache/github-runner-work/rust2/rust2/ts/fixtures/lang/slices/Cargo.toml", "/var/cache/github-runner-work/rust2/rust2/ts/fixtures/lang/slices/ts.toml", "/var/cache/github-runner-work/rust2/rust2/ts/fixtures/lang/sorts/Cargo.toml", "/var/cache/github-runner-work/rust2/rust2/ts/fixtures/lang/sorts/ts.toml", "/var/cache/github-runner-work/rust2/rust2/ts/fixtures/lang/splits/Cargo.toml", "/var/cache/github-runner-work/rust2/rust2/ts/fixtures/lang/splits/ts.toml", "/var/cache/github-runner-work/rust2/rust2/ts/fixtures/lang/statics/Cargo.toml", "/var/cache/github-runner-work/rust2/rust2/ts/fixtures/lang/statics/ts.toml", "/var/cache/github-runner-work/rust2/rust2/ts/fixtures/lang/strs/Cargo.toml", "/var/cache/github-runner-work/rust2/rust2/ts/fixtures/lang/strs/ts.toml", "/var/cache/github-runner-work/rust2/rust2/ts/fixtures/lang/tuples/Cargo.toml", "/var/cache/github-runner-work/rust2/rust2/ts/fixtures/lang/tuples/ts.toml", "/var/cache/github-runner-work/rust2/rust2/ts/fixtures/lang/utf8/Cargo.toml", "/var/cache/github-runner-work/rust2/rust2/ts/fixtures/lang/utf8/ts.toml", "/var/cache/github-runner-work/rust2/rust2/ts/fixtures/lang/wrappers/Cargo.toml", "/var/cache/github-runner-work/rust2/rust2/ts/fixtures/lang/wrappers/ts.toml", "/var/cache/github-runner-work/rust2/rust2/ts/fixtures/lang/wraps/Cargo.toml", "/var/cache/github-runner-work/rust2/rust2/ts/fixtures/lang/wraps/ts.toml", "/var/cache/github-runner-work/rust2/rust2/ts/fixtures/lang/zeros/Cargo.toml", "/var/cache/github-runner-work/rust2/rust2/ts/fixtures/lang/zeros/ts.toml", "/var/cache/github-runner-work/rust2/rust2/ts/fixtures/model/Cargo.toml", "/var/cache/github-runner-work/rust2/rust2/ts/fixtures/model/ts.toml", "/var/cache/github-runner-work/rust2/rust2/ts/fixtures/names/Cargo.toml", "/var/cache/github-runner-work/rust2/rust2/ts/fixtures/names/ts.toml", "/var/cache/github-runner-work/rust2/rust2/ts/fixtures/reject/Cargo.toml", "/var/cache/github-runner-work/rust2/rust2/ts/fixtures/reject/census.toml", "/var/cache/github-runner-work/rust2/rust2/ts/fixtures/reject/spans.toml", "/var/cache/github-runner-work/rust2/rust2/ts/fixtures/reject/ts.toml", "/var/cache/github-runner-work/rust2/rust2/ts/fixtures/share/Cargo.toml", "/var/cache/github-runner-work/rust2/rust2/ts/fixtures/share/ts.toml", "/var/cache/github-runner-work/rust2/rust2/ts/fixtures/stock/Cargo.toml", "/var/cache/github-runner-work/rust2/rust2/ts/fixtures/stock/ts.toml", "/var/cache/github-runner-work/rust2/rust2/ts/fixtures/task/Cargo.toml", "/var/cache/github-runner-work/rust2/rust2/ts/fixtures/task/kio/Cargo.toml", "/var/cache/github-runner-work/rust2/rust2/ts/fixtures/task/ts.toml", "/var/cache/github-runner-work/rust2/rust2/ts/moq/kio.toml", "/var/cache/github-runner-work/rust2/rust2/ts/moq/model.toml", "/var/cache/github-runner-work/rust2/rust2/ts/moq/net.toml", "/var/cache/github-runner-work/rust2/rust2/ts/moq/ts.toml", "/var/cache/github-runner-work/rust2/rust2/ts/rust-toolchain.toml", "/var/cache/github-runner-work/rust2/rust2/ts/src/profile.toml"] cwd="/var/cache/github-runner-work/rust2/rust2"
==> check quest
quest: quest/m3/ts-btree-drop-order.md:13: link does not resolve: /quest/m3/ts-btree-search-order.md
quest: quest/m3/ts-btree-drop-order.md:20: link does not resolve: /quest/m3/ts-btree-search-order.md
quest: quest/m3/ts-btree-drop-order.md:20: requires /quest/m3/ts-btree-search-order.md, which is not a quest document; make an outside condition its own quest
error: recipe `ci` failed on line 28 with exit code 1
##[error]Process completed with exit code 1.
Post job cleanup.
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git version
git version 2.55.0
Temporarily overriding HOME='/var/cache/github-runner-work/_temp/90f9ef35-47e7-4027-8805-1e8fd3d15659' before making global git config changes
Adding repository directory to the temporary git global config as a safe directory
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git config --global --add safe.directory /var/cache/github-runner-work/rust2/rust2
Removing SSH command configuration
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git config --local --name-only --get-regexp core\.sshCommand
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
Removing HTTP extra header
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :"
Removing includeIf entries pointing to credentials config files
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
A job completed hook has been configured by the self-hosted runner administrator
##[group]Run '/nix/store/gx2v6q84b0w43bafm0whkdx93qyxbpps-ci-cache-gc.sh/bin/ci-cache-gc.sh'
shell: /nix/store/1mv3qz005gkbalxfghk4y3s8ayv4d2dl-bash-interactive-5.3p15/bin/bash --noprofile --norc -e -o pipefail {0}
##[endgroup]
evicted 0 objects and 0 action results (0 B logical); 50.0 GiB logical remain
Cleaning up orphan processes
Current runner version: '2.338.2'
##[group]Runner Image Provisioner
Hosted Compute Agent
Version: 20261028.624
Commit: 54898b74c23fde5556c9b3c3a2290865feef0dfe
Build Date: 2026-10-28T21:51:42Z
Worker ID: {8f80e44e-023e-49ce-ab8c-111f38c397c7}
Region: eastus
Cloud: Azure
##[endgroup]
##[group]Operating System
Ubuntu
24.04.5
LTS
##[endgroup]
##[group]Runner Image
Image: ubuntu-24.04
Version: 20261101.360.1
Included Software: https://github.com/actions/runner-images/blob/ubuntu24/20261101.360/images/ubuntu/Ubuntu2404-Readme.md
Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24%2F20261101.360
##[endgroup]
##[group]GITHUB_TOKEN Permissions
Contents: read
Metadata: read
##[endgroup]
Secret source: Actions
Cache mode: write
Prepare workflow directory
Prepare all required actions
Complete job name: Queue
##[group]Run [[ "$RESULT" == success ]] || { echo "::error::the queue build ended $RESULT" >&2; exit 1; }
�[36;1m[[ "$RESULT" == success ]] || { echo "::error::the queue build ended $RESULT" >&2; exit 1; }�[0m
shell: /usr/bin/bash -e {0}
env:
RESULT: failure
##[endgroup]
##[error]the queue build ended failure
##[error]Process completed with exit code 1.
Cleaning up orphan processes
(written by quest land watch) |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
codex / Codex land fixer: succeeded in 0ms:
[pr-598 507fd1c7] docs(quest): drop links to completed B-tree prerequisite
1 file changed, 2 insertions(+), 6 deletions(-)
507fd1c7f15f966a7d0c807f50a67dc4c13eedee
diff --git a/quest/m3/ts-btree-drop-order.md b/quest/m3/ts-btree-drop-order.md
index 429253ac6d8b447c891ce75c630bd26a09e46c80..629b7ec1a4f920a0b66401ae46a2302d664fb02b
--- a/quest/m3/ts-btree-drop-order.md
+++ b/quest/m3/ts-btree-drop-order.md
@@ -9,12 +9,9 @@
## Plan
The runtime drops in key order, decided with the maintainer on 2026-10-30 for speed
-while its tree was not std's. With std's node layout from
-[the searches](/quest/m3/ts-btree-search-order.md), std's order costs little; measure it on
+while its tree was not std's. With std's node layout now in
+[the runtime](/ts/README.md), std's order costs little; measure it on
the TS bench's `btree/` workloads.
Public API: the translator's output.
-## Required
-
-- [A B-tree's searches call Ord as std's do](/quest/m3/ts-btree-search-order.md) - std's node layout and search
exec
/bin/bash -lc "python3 - <<'PY'
import json
from pathlib import Path
result = [{
'number': 598,
'action': 'fixed',
'head': '507fd1c7f15f966a7d0c807f50a67dc4c13eedee',
'reason': 'Merged base; replaced stale quest link and removed completed prerequisite; passed just ci base, quest check, and git diff --check base (documentation only; no package builds or tests selected).',
'failure': 'quest check: quest/m3/ts-btree-drop-order.md links to missing /quest/m3/ts-btree-search-order.md',
'blame': True
}]
Path('quest-land-result.json').write_text(json.dumps(result, indent=2) + '\\n')
PY
git status --short && git branch -v" in /work
succeeded in 0ms:
?? quest-land-result.json
base 3596f26b feat(ts): port std's B-tree so a key's Ord::cmp runs as std's does (#577)
batch b7184ce5 quest: list moq-pattern's refusals, and place the deque Buf gap in the translator
* pr-598 507fd1c7 docs(quest): drop links to completed B-tree prerequisite
diff --git a/quest/m3/ts-btree-drop-order.md b/quest/m3/ts-btree-drop-order.md
index 429253ac6d8b447c891ce75c630bd26a09e46c80..629b7ec1a4f920a0b66401ae46a2302d664fb02b
--- a/quest/m3/ts-btree-drop-order.md
+++ b/quest/m3/ts-btree-drop-order.md
@@ -9,12 +9,9 @@
## Plan
The runtime drops in key order, decided with the maintainer on 2026-10-30 for speed
-while its tree was not std's. With std's node layout from
-[the searches](/quest/m3/ts-btree-search-order.md), std's order costs little; measure it on
+while its tree was not std's. With std's node layout now in
+[the runtime](/ts/README.md), std's order costs little; measure it on
the TS bench's `btree/` workloads.
Public API: the translator's output.
-## Required
-
-- [A B-tree's searches call Ord as std's do](/quest/m3/ts-btree-search-order.md) - std's node layout and search
codex
Fixed #598 on `pr-598` at `507fd1c7f15f966a7d0c807f50a67dc4c13eedee`.
Merged base and repaired stale quest references without changing behavior. `just ci base`, `quest check`, and whitespace checks passed.
Wrote [quest-land-result.json](/work/quest-land-result.json), left uncommitted.
diff --git a/quest/m3/ts-btree-drop-order.md b/quest/m3/ts-btree-drop-order.md
index 429253ac6d8b447c891ce75c630bd26a09e46c80..629b7ec1a4f920a0b66401ae46a2302d664fb02b
--- a/quest/m3/ts-btree-drop-order.md
+++ b/quest/m3/ts-btree-drop-order.md
@@ -9,12 +9,9 @@
## Plan
The runtime drops in key order, decided with the maintainer on 2026-10-30 for speed
-while its tree was not std's. With std's node layout from
-[the searches](/quest/m3/ts-btree-search-order.md), std's order costs little; measure it on
+while its tree was not std's. With std's node layout now in
+[the runtime](/ts/README.md), std's order costs little; measure it on
the TS bench's `btree/` workloads.
Public API: the translator's output.
-## Required
-
-- [A B-tree's searches call Ord as std's do](/quest/m3/ts-btree-search-order.md) - std's node layout and search
tokens used
29,767
Fixed #598 on `pr-598` at `507fd1c7f15f966a7d0c807f50a67dc4c13eedee`.
Merged base and repaired stale quest references without changing behavior. `just ci base`, `quest check`, and whitespace checks passed.
Wrote [quest-land-result.json](/work/quest-land-result.json), left uncommitted.
fixer result written
GitHub refused the fixer's push, so its validated resolution travels in this comment: PR head (written by codex / Codex) |
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes
Reviewed the delta of commits 0a993a08 and 19e6b23 since the prior review of b7184ce, against main.
ts-btree-drop-order.md— dependency unblocked. Replaced the reference to the searches quest, which #577 completed and deleted, with the port itself, and retired the Required entry that pointed at the deleted file.0a993a08— merge oforigin/main. Brings in #577's port of std's B-tree and everything else already reviewed onmain; no branch-side content beyond the drop-order retarget above.
The retarget's claim checks out against #577's body and tree: it ported std's node layout (ts/runtime/rs/collections.ts:1432, "a node, as std's"), its Follow-ups section hands the drop-order revisit forward, and its bench measurements support "std's order costs little". No search-order references remain anywhere in the quest tree, and the PR's own change set stays quest-tree docs only.
(Written by glm-5.3-flash)
glm-5.3-flash | 𝕏

Plans the follow-ups from the 2026-11-04 decisions: configless tools (AGENTS.md, #597), no runtime throw where Rust would not panic, and the smaller gaps agents found.
New quests:
ffi-export/names.md[L]: collision-free C names keeping Rust's case (moq_session_Statsvsmoq_Session_stats), one facade crate'spubAPI with its re-exports, prefix from the Cargo lib name. Leaves onlyexcludeinffi.toml.ffi-export/refusals.md[XL]: the census to zero, then deleteffi.toml. Children get planned by the first agent fromjust ffi census.ffi-export/python-types.md[S]: the generated Python passes mypy and pyright.ts-runtime-throws.md[L]: norust2-ts:throw where Rust goes on. Use an exact slower path with no flag, or a refusal at translation. UB guards stay as aborts like std's ub_checks.ts-configless.md[XL]: nots.toml. Roots become thepubAPI, printing follows impls, and eachbindis a gap. Requires the ts-model epic.ts-vecdeque-buf.md[S],ts-btree-drop-order.md[S] (std's layout landed in feat(ts): port std's B-tree so a key's Ord::cmp runs as std's does #577).go/configless.md[S]: nogo.toml.Updated:
ts-dyn.mdrecords TypeId as rustc's 128-bittype_id_hash;crates.mdno longer edits the config; ffi-export's README records the configless decision.Every decision prompt is recorded in its quest's Plan with ✅.
Public API impact: none (quests only).
Review
Codex adversarial review (local) at
15d2566: needs-attention, two findings, both fixed in6caeb83. First, keeping Rust's case doesn't separate a field's accessors from a same-named method (Backoff::initial,Limit::set_max), sonames.mdnow requires that too. Second, TypeId's traits are std's (Hashof oneu64,DebugTypeId(0x…), derivedOrd), notu128's;ts-dyn.mdis corrected. Re-review at6caeb83: approve. Pullfrog's two nits (moq-pattern missing from the refusal crates; the deque's slices already exist in the runtime) fixed inb7184ce; Codex re-review atb7184ce: approve. Merged main after #577 deleted the B-tree searches quest, unblockingts-btree-drop-order.md; Codex re-review at19e6b239d256b29ab0ca3c7177aac55da9bb7a50: approve, no material findings.(written by Claude Opus 5.5)
🤖 Generated with Claude Code