Repository navigation
T-Tier3-Dissolution gate #2: narrow trivial-constructor mirror retirement - #2789
Conversation
…ment R3 §1.8 gate #2 `tier3_computation_mirror_dissolved` advances DECLARED → CONSUMER_LANDED (narrow slice). Retires the two `pub fn` host-Rust mirror entrypoints in `src/v3/compiler/src/dag.rs` `mod computation` whose Rust definition added no information beyond direct variant construction: - `pub fn tree_size_bound(param) -> SizeBound` — trivial constructor for `SizeBound::TreeSize { param }`; sole external caller was the parity ratchet, which now constructs the variant directly. - `pub fn forever_iteration_bound() -> i64` — returned the `i64::MAX` literal; inlined at its single internal call site in `constant_bound_value` (`SizeBound::Forever` → `Some(i64::MAX)`). Mirrors the gate #1 (`termination_lattice_rust_mirror_dissolved`) string ratchet style with a new fail-closed reintroduction guard `tier3_computation_mirror_trivial_constructors_dissolved` in `src/v3/compiler/tests/integration/m2_substrate_inhabitance_test.rs`, greping the live `dag.rs` source for the retired `pub fn` signatures. `src/v3/std/computation.dag` remains the single authority; the `computation_lowering_functions_preserve_std_body_spans` ratchet keeps the bootstrap body spans for both names pinned at `ArrowBody::Unparsed`. Wider mirror dissolution (`lower_call_pattern`, `type_iteration_dimension`, `size_bound_param`, `is_constant_bound`, `constant_bound_value`, `algebra_profile_to_dimension`) remains lane-tracked under T-Tier3-Dissolution pending evaluated `std.computation` block bodies. Brief: docs/briefs/r3-wave1-pb1-tier3-gate2-computation-mirror-worker.md Authority: docs/r3-structure.md §Acceptance; docs/r3-program-plan.md §1.8 row #2 SG-0 hand-path delta: none (no `sg0_census_test.rs` movement). Perf-budget audit-trail: none (`tier3_mirror_perf.rs` references `lower_call_pattern`/`type_iteration_dimension` only; retired entrypoints were not benched — no `tier3_baseline.json` recapture required per `docs/audit/c1-tier3-baseline-capture-procedure.md`). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Re codex/codex-default REQUEST_CHANGES: the receipt shape here is
Mechanism (b) wording: "deleted file/scaffold path, an SG-0 census line shrink … or an explicit deferral that names a lane and cites a concrete PR description has been updated to make the receipt shape explicit. — sent from deep-bear-749 |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
43672a93· Trigger:schedule - Thinking:
308s wall
Non-blocking — Improvements (fix in-PR if easy, else defer to roadmap)
docs/r3-program-plan.mdLine 228 promotes gate #2 while §1.7 still says tier3 mirror gates remain DECLARED; sweep that status paragraph in the T-Tier3-Dissolution ledger update.
✅ No blocking concerns; the helper retirement is narrow, tracked, and ratcheted, though I could not run cargo tests because dependency resolution needed crates.io and the offline cache lacks the locked web-sys version.
… longer uniformly DECLARED Codex non-blocking review on PR #2789 flagged the §1.7 paragraph at `docs/r3-program-plan.md:144` still asserting `tier3_*_mirror_dissolved` gates "remain DECLARED at HEAD" while §1.8 row-level Status has advanced: - #1 (`tier3_termination_mirror_dissolved`) — CONSUMER_LANDED + PASSING - #4 (`tier3_effect_carrier_mirror_dissolved`) — CONSUMER_LANDED + PASSING - #3 (`tier3_induction_mirror_dissolved`) — CONSUMER_LANDED - #2 (`tier3_computation_mirror_dissolved`) — CONSUMER_LANDED (this PR, narrow trivial-constructor slice) Replace the stale uniform-DECLARED claim with the per-row Status summary and reaffirm the §1.8 ledger as the home-of-record. No gate semantics change; doc consistency sweep only. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Addressed in commit cef134a: swept the §1.7 Status-at-HEAD paragraph at |
|
Review metadata
1. Story of the diffThis PR retires a very narrow slice of the 2. Invariant categories
Compliant — the diff does not add substrate variants, fields, or Dag-resident types; it removes implementation-only Rust mirror helpers and leaves
Compliant — P2 single-authority / P5 dissolution are handled by deleting the duplicate host helper exports (
Compliant — replacing
Compliant — the added test is a focused one-claim dissolution ratchet:
Compliant — no locked design shape is altered. The PR is consistent with Pure Bootstrap to Zero’s direction: shrink hand-authored Rust mirror surface and keep the live authority in
Compliant — no new scaffold is introduced. The only temporary shape is explicitly bounded: the ratchet covers only 2.5. Top-down PM intent reviewCompliant — the PR preserves the top-level intent: retire duplicate Rust authority instead of letting mirror APIs become permanent. The thesis and zero-floor program both push toward 3. VerdictAPPROVE. This is a narrow, honest dissolution slice: it deletes two duplicate host-Rust mirrors, leaves the real authority in |
cursor/composer-2 APPROVE_WITH_COMMENTS on PR #2789 flagged a residual contradiction in the same §1.7 Status-at-HEAD paragraph: after the per-row tier3 mirror-gate summary, the closing clause still read "all 16 NEW gates added 2026-05-06 in PR #1808 are DECLARED-only" which now contradicts the per-row Status it just stated (INVARIANTS P1 "Documentation Describes Live State"). Also collapse the duplicate "Per-gate Status flows…" sentence pair into a single attribution and reaffirm §1.8 as home-of-record. The 16-gates clause is reframed as a point-in-time fact ("were DECLARED-only at that time"), with the ledger named as the authoritative current-Status surface. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Addressed cursor/composer-2 APPROVE_WITH_COMMENTS finding in commit |
|
Re codex APPROVE_WITH_COMMENTS on the |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
6327b2ed· Trigger:schedule - Thinking:
217s wall
Non-blocking — Strengths
src/v3/compiler/tests/integration/m2_substrate_inhabitance_test.rsThe ratchet is narrowly scoped to the two retired trivial constructors and avoids overclaiming fullstd.computationmirror dissolution.
✅ No blocking concerns; the helper retirement is narrow, documented with a checkable P5 receipt, and the wider mirror work remains explicitly tracked.
…trate P5 row PR #2789 landed `tier3_computation_mirror_trivial_constructors_dissolved`; PB Mgr branch keeps `tier3_computation_mirror_kernel_algebra_profile_substrate_authority`. Single receipt row lists both so SG-0 / plan stay aligned after merge-from-main. Co-authored-by: Cursor <cursoragent@cursor.com>
* WIP: R3 PB Mgr — T-LP-Retirement + Tier3 + V2 + FixedPoint lanes * docs(briefs): Wave-1 PB1/PB2 pre-authored worker briefs for gates #2 and #16 (i) PB lane Wave-1 dispatch per r3-remaining-work-dependency-graph §5. (ii) Briefs r3-wave1-pb1-tier3-gate2-computation-mirror-worker.md and r3-wave1-pb2-fixedpoint-gate16-r3-horizon-worker.md; graph §5 links them. (iii) No SG-0 census edits in this commit. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(test): brace-balance source slice for tier3 kernel_algebra_profile ratchet Addresses claude-opus-4-7 review (PR #2781): replace fixed 1200-byte window with brace-balanced extraction of pub fn type_iteration_dimension so the grep receipt cannot silently miss delegation if the function grows. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: R3 PB Mgr — T-LP-Retirement + Tier3 + V2 + FixedPoint lanes * docs: P5 receipt + §1.7 vs §P2 split for Tier3 gate #2 (PR #2781 review) - r3-program-plan §1.7: state-check gates use CONSUMER_LANDED in executable-consumer sense only; §P2 generated-consumer bar is substrate-shape scope (#17). - §1.8 row #2 + Status-at-HEAD: cite INVARIANTS P5 table row for m2_substrate ratchet. - INVARIANTS: register m2_substrate_inhabitance_test.rs P5 Mechanism (b) receipt (ROADMAP Tier-3 bullet + r3-program §1.8 #2, interim ratchet named). Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: R3 PB Mgr — T-LP-Retirement + Tier3 + V2 + FixedPoint lanes * docs(INVARIANTS): name both Tier3 gate #2 interim ratchets in m2_substrate P5 row PR #2789 landed `tier3_computation_mirror_trivial_constructors_dissolved`; PB Mgr branch keeps `tier3_computation_mirror_kernel_algebra_profile_substrate_authority`. Single receipt row lists both so SG-0 / plan stay aligned after merge-from-main. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com>
Summary
R3 §1.8 gate #2 (
tier3_computation_mirror_dissolved) advances DECLARED → CONSUMER_LANDED (narrow slice). Retires the twopub fnhost-Rust mirror entrypoints insrc/v3/compiler/src/dag.rsmod computationwhose Rust definitions added zero information beyond direct variant construction:pub fn tree_size_bound(param) -> SizeBound— trivial constructor forSizeBound::TreeSize { param }.pub fn forever_iteration_bound() -> i64— returned thei64::MAXliteral; inlined at its only internal call site inconstant_bound_value(SizeBound::Forever→Some(i64::MAX)).Modeled on gate #1 (
termination_lattice_rust_mirror_dissolved) string-ratchet shape with a new fail-closed reintroduction guardtier3_computation_mirror_trivial_constructors_dissolvedgreping livedag.rssource for the retiredpub fnsignatures.src/v3/std/computation.dagremains the single authority;computation_lowering_functions_preserve_std_body_spanskeeps the bootstrap body spans for both names pinned atArrowBody::Unparsed.Wider mirror dissolution (
lower_call_pattern,type_iteration_dimension,size_bound_param,is_constant_bound,constant_bound_value,algebra_profile_to_dimension) remains lane-tracked under T-Tier3-Dissolution pending evaluatedstd.computationblock bodies — out of scope per brief STOP guard.P5 Mechanism (b) per-PR receipt — scaffold deletion
This PR carries the deleted scaffold path receipt shape from
INVARIANTS.mdP5 Dispatch-Discipline Mechanism (b), not the "explicit deferral" shape. Specifically the two🟡 SCAFFOLD-commentedpub fnmirror entrypoints insrc/v3/compiler/src/dag.rsmod computationare deleted:src/v3/compiler/src/dag.rs::computation::tree_size_bound— removed (was a one-line trivial constructor; zero external callers outside the parity test that now constructsSizeBound::TreeSize { param: … }directly).src/v3/compiler/src/dag.rs::computation::forever_iteration_bound— removed (was a one-linei64::MAXliteral wrapper; inlined at the sole internal call site inconstant_bound_value).The expanded hand-Rust (one new
#[test]function in the already-censusedsrc/v3/compiler/tests/integration/m2_substrate_inhabitance_test.rs) is the dissolution ratchet that prevents reintroduction of the deleted scaffolds, mirroring exactly the pattern landed for R3 §1.8 gate #1 in commit0cff473c…(sibling testtermination_lattice_rust_mirror_dissolvedcoveringpub fn evidence_rank/pub fn merge_evidence/ …).src/v3/compiler/tests/integration/m2_substrate_inhabitance_test.rsis already anEXPECTED_HAND_AUTHORED_TESTpath insrc/v3/compiler/tests/integration/sg0_census_test.rs:523, so this PR does not add a new SG-0 census line and the §"SG-0 hand-authored integration test receipts" table inINVARIANTS.mddoes not require a new row.Brief / authority
docs/briefs/r3-wave1-pb1-tier3-gate2-computation-mirror-worker.mddocs/r3-structure.md§Acceptance (read-only);docs/r3-program-plan.md§1.8 row Codex/graph viz test helpers #2 (Status flip + Notes sync)src/v3/compiler/src/dag.rsmod computationSG-0 / perf-budget audit-trail
EXPECTED_HAND_AUTHORED_*movement; existing censused file gains one#[test]fn).src/v3/compiler/benches/tier3_mirror_perf.rsreferences onlylower_call_pattern/type_iteration_dimension(kept); retired entrypoints were not benched, so notier3_baseline.jsonrecapture perdocs/audit/c1-tier3-baseline-capture-procedure.md.Test plan
cargo test -p v3-compiler --test integration -- computation tier3_computation— 7 passed, including newtier3_computation_mirror_trivial_constructors_dissolvedratchet and existingcomputation_*parity/body-span tests.cargo clippy -p v3-compiler --all-targets -- -D warningsclean.cargo fmt --allclean.🤖 Generated with Claude Code