docs(engine-plan): record 2026-08-05 — four dead gates, layer 1 and 3 status - #7466
Conversation
… status The plan says sequencing and rationale live in this document, and it was materially out of date after today. Four gates on main could not fail, three of them required contexts, so every merge in their windows bypassed them. That came before any layer work was verifiable and is recorded first, with the generalisable part called out: the dominance checker refuses a clean verdict when it counts zero root stores, and that guard is the only reason the statepoint-era vacuity was visible at all. Layer 1: the RFC's own API does not compile (E0499); corrected, and the "borrow checker rejects the bug shape" claim is now an executable compile_fail doctest pinned to the error code. The real emitter needs the combinator form rather than the borrow form. One bug shape -- a raw pointer bound before a lower_expr and used after it -- is eliminated crate-wide, and the honest part is recorded too: four of seven merges corrected the previous one, and every defect compiled without warnings. Layer 3: a global total cannot make the discipline non-optional. The ratchet is now per-module, with 595 modules locked at zero and a list that can only shrink.
|
Warning Review limit reached
Next review available in: 6 minutes You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughThe update records engine-plan validation results, Layer 1 migration details, Layer 3 per-module debt limits, and the remaining ChangesEngine plan status
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related issues
Possibly related PRs
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
The plan says "sequencing and rationale live here", and it was materially out of date after today.
What's recorded
Four gates on
maincould not fail, three of them required contexts — so every merge in their windows bypassed them. That is recorded first because it came before any layer work was verifiable: the dominance corpora contained zero of the checker's subject, so "0 violations" meant nothing.The generalisable part is called out rather than the incidents:
gc_root_dominance_check.pyrefuses a clean verdict when it counts zero root stores, and that guard is the only reason the statepoint-era vacuity was visible at all.Layer 1 — the RFC's own API does not compile (
E0499); corrected in #7459, where the claim "the borrow checker rejects the bug shape" became an executablecompile_faildoctest pinned to the error code. The real emitter needs the combinator form, not the borrow form. One bug shape is eliminated crate-wide (14 sites acrossurl_main.rsandchild_proc.rs).Layer 3 — a global total cannot make the discipline non-optional; the ratchet is now per-module with 595 modules locked at zero and a list that can only shrink.
The uncomfortable part is in there too
Four of the seven Layer 1 merges corrected the previous one. Every defect compiled cleanly with no warnings — a guard bound to
_operand_guardthat emitted no truncate, a release inside one branch of anif/else, a fix covering the two-operand path and missing the three-operand one. Two of my scan counts were wrong, one high and one low.That is written into the plan as the method note, because it is the transferable result: this class does not survive review, only mechanical checking — read the emitted IR, audit reachability with a script, verify the runtime semantics of anything that looks like a leak.
The layer table's Status column is updated to match, including what is explicitly not done:
RuntimeHandleScopeis still optional inside the 107 listed modules, and the Layer 1 migration covers one bug shape rather than the whole emitter.Summary by CodeRabbit