Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
de8a581
Model native-compiler ancestry so the seed is never the recurring pro…
Sep 11, 2026
cadb0e4
Make the seed unreachable as the native compiler's miss path.
Sep 11, 2026
8acea3d
Merge #11042 ancestry model so this lane consumes one authority.
Sep 11, 2026
c32d28a
Delete the native_ancestry twin and consume #11042's ancestry authority.
Sep 11, 2026
5fb42b8
Restore the honest generation-identity incompleteness note.
Sep 11, 2026
eb52ccb
Consume ancestry admission in the host instead of a constant old-rout…
Sep 11, 2026
7ccc89a
Merge origin/main into session/proud-carp-305.
Sep 11, 2026
03ffd2e
Merge origin/main after #11058.
Sep 11, 2026
9bce74c
Fix the #11011 seam so the witness fold type-checks.
Sep 11, 2026
54339bb
Merge origin/main (#11042 ancestry) into session/proud-carp-305.
Sep 12, 2026
18f03f1
Refuse fabricated native-generation identity on acquire.
Sep 12, 2026
8df1dc0
Persist independent artifact and read-back digests at genesis.
Sep 12, 2026
c648bd3
Merge origin/main (#10940) into #11056.
Sep 12, 2026
880c4a9
Observe the stored compiler bytes at acquire, not genesis's self-equa…
Sep 12, 2026
8a1364e
Store generation 0's actual seed producer closure, and the genesis se…
Sep 13, 2026
ed9b963
One BuildPathTreatment for identity and mint; record the RUSTFLAGS ge…
Sep 13, 2026
f08bd66
Drop the leftover comment that still named ancestry as BuildPathTreat…
Sep 13, 2026
986383d
Declare production frontiers; stop writing unread ancestry files; acq…
Sep 13, 2026
f1617a1
Write the genesis generation file last, and enroll the new seed host …
Sep 13, 2026
1d70c0e
Do not export run_native_genesis; PublicSurfaceGrowth is the emitted …
Sep 13, 2026
7abd458
Re-export run_native_genesis: the bin is a separate crate from the lib.
Sep 13, 2026
7cfc9ec
Derive cargo_profile from stored argv, and tag remapped path digests.
Sep 13, 2026
768391f
Drop a no-interpolation format! that clippy denies on the genesis cop…
Sep 13, 2026
527c1bd
Merge origin/main into session/proud-carp-305.
Sep 13, 2026
f1a4d4e
Keep ancestry witnesses in one module, and describe the seed-identity…
Sep 13, 2026
3f0bc5c
Merge origin/main into session/proud-carp-305.
Sep 13, 2026
0311d9e
Admit the 18 BuildPath* TargetChanged bindings for gunbc#11056.
Sep 13, 2026
02b433c
Record warning-denial rustflags separately from path remap.
Sep 13, 2026
ba4738f
Bind successor producer_compiler to the parent artifact, and omit hos…
Sep 13, 2026
078577d
Leave acquire read-back unperformed until the artifact reports its ow…
Sep 13, 2026
e02e946
Name NativeAncestorMissing from the stored generation, not a hardcode…
Sep 13, 2026
4e6867b
Delete the two consumed gunbc#11156 admission rows on this roster touch.
Sep 13, 2026
9176029
Revert "Delete the two consumed gunbc#11156 admission rows on this ro…
Sep 13, 2026
41b5886
Merge origin/main after #11240.
Sep 13, 2026
efc1fe0
Restore heap trim after genesis emission before cargo.
Sep 13, 2026
352cd57
Name the native-generation read-back stall as its own frontier.
Sep 13, 2026
f648090
Merge origin/main after #11175.
Sep 13, 2026
2800682
Merge origin/main after #10850.
Sep 13, 2026
f78622e
Declare the native-route acquire stall as a §4b(3) rung drop.
Sep 13, 2026
0030f9f
Bind native GenerationIdentity.target_model to the modeled Rust targe…
Sep 13, 2026
f31023d
Row the mixed NativeRouteReceipt digest-family deferral as a dissolut…
Sep 13, 2026
e50e09d
Delete compiler_artifact_identity; mint GenerationIdentity as the rec…
Sep 13, 2026
280debd
Print NativeAncestorUnverified.cause and retire the remapped-path obl…
Sep 13, 2026
39f2f2f
Merge origin/main into session/proud-carp-305.
Sep 14, 2026
747b522
chore: regenerate drifted generated artifacts (ci auto-heal)
Sep 14, 2026
3cf3fb2
Restore artifact_axis_omits_build_path until remapped two-directory b…
Sep 14, 2026
3a0a261
Merge origin/session/proud-carp-305 before pushing the restored build…
Sep 14, 2026
32354fe
Name this class's current rung and the next-rung trigger on the host …
Sep 14, 2026
0e1bcaa
Report the host miss-path class at rung 1 until a gate exists.
Sep 14, 2026
b144ce3
Record genesis RUSTFLAGS as the spawn set, not the denial constant.
Sep 14, 2026
a3d9c43
Merge origin/main into session/proud-carp-305.
Sep 14, 2026
c5066ab
Restore the rung-drop projection to the roster after the main merge.
Sep 14, 2026
bb0f877
Bound native-route rustflags remap to one flag and enroll its controls.
Sep 14, 2026
f23f128
Parse the rustflags suffix space check as a string, not a char literal.
Sep 14, 2026
d2f624a
Refuse extra rustflags tokens with string_contains, not Char equality.
Sep 14, 2026
9bc2424
Merge origin/main into session/proud-carp-305.
Sep 14, 2026
ea828a1
Stop treating a door-run closure as old-route-absent-by-construction.
Sep 14, 2026
798a1c6
Move old-route-closed annotations above the function.
Sep 14, 2026
b7887e4
Judge remap rustflags as Char lists, and drop consumed #11193.
Sep 14, 2026
7bf1301
Merge origin/main into session/proud-carp-305.
Sep 14, 2026
19bcdfd
Merge origin/main into session/proud-carp-305.
Sep 14, 2026
6cf45e8
chore: regenerate drifted generated artifacts (ci auto-heal)
Sep 14, 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
3 changes: 3 additions & 0 deletions dag/gunbc/emitted_closure_compile_seed_growth.dag
Original file line number Diff line number Diff line change
Expand Up @@ -572,6 +572,9 @@ data emitted_closure_compile_seed_growth_justification: SeedGrowthJustification
DeclarationRef { module_path: "v1_compiler.emitted_closure_compile_host", decl_name: "an_unnamed_symbol_attributes_nothing_rather_than_the_first_diagnostic", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.emitted_closure_compile_host", decl_name: "a_warning_naming_the_file_does_not_attribute_the_refusal", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.emitted_closure_compile_host", decl_name: "a_red_of_the_wrong_error_class_does_not_pass_the_pair", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.emitted_closure_compile_host", decl_name: "finish_cargo_command", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.emitted_closure_compile_host", decl_name: "run_cargo_with_remap_prefix", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.emitted_closure_compile_host", decl_name: "rustflags_with_remap_prefix", field: WholeDeclaration },
],
reason: "WHY RUST IS STILL NEEDED, and it is a REACHABILITY limit rather than a modeling gap. The subject is a required CI phase: it must run inside claim_executor, which is the only witness-executing consumer in the tree, and its stages are host effects -- writing an emitted tree to disk and spawning cargo over it. The required floor's hermetic envelope REFUSES host effects during preparation, so a .dag witness whose subject is a subprocess exit status is counted executed while its assertion never runs; DESIGN's Building-&-checks section records that boundary in as many words, and records that mocking the refusal would pass the witness against a fabricated exit status. So the phase has to live where the effects do, exactly as required_regen_host and partition_crate_boundary_host do.\n\nWHY IT IS ADMITTED AGAINST THE v1 FREEZE, ON PRECEDENT RATHER THAN ANALOGY. gunbc.v1_maintenance_standing v1_seed_standing admits a change by PURPOSE -- does it serve the v2 self-host program -- and the purpose test reaches the INSTRUMENT that measures that program, not only the program. This is that instrument in the most direct available sense: the self-host claim IS that the emitted tree compiles and behaves, and until now nothing on the merge path compiled an emitted tree at all. gunbc.floor_non_verdict_enrollment and gunbc.declaration_index_seed_growth are both admitted on that same footing. Classified against the five refused classes: NewLanguageBehavior -- no, the compile pipeline is byte-untouched, no diagnostic is added, moved or removed. NewCompatibilityObligation -- no, nothing is kept working for an old caller. NewEscapeHatchOrAdmissionRow -- no, and the direction is opposite: this adds a wall and adds no flag, env var or mode that skips it. SeedFeatureCompletion -- no, the seed compiler gains no capability; it compiles exactly what it compiled before. PublicSurfaceGrowth -- the nearest, and the test is a diff over THE EMITTED SEED'S EXPORTED DECLARATIONS: the file is wired by #[path] mod inside cli_run.rs exactly as declaration_index.rs, phase_profile.rs and partition_crate_boundary_host.rs are, so it contributes no pub mod line to the emitted lib.rs and its SeedRetainedIntrinsicRegistration carries has_pub_mod: false.\n\nWHAT IS NOT CLAIMED. This phase is not a compile of the corpus and must not be read as one: gunbc.whole_corpus_compile_admission refuses a whole-bundle compile on the default runner and records two EXIT=137 kills behind that refusal, so the subject is a bounded roster of entries in gunbc.ci_layer_roots required_emit_compile_entries. It carries no diagnostic count, no baseline and no ratchet -- a merge-blocking comparison against a population measured on the current tree is the tree-copied oracle DESIGN 5 rejects.",
owning_dissolution_lane: "v1-hand-queue-drain" as RoadmapNodeId,
Expand Down
75 changes: 75 additions & 0 deletions dag/gunbc/native_ancestry_genesis_seed_growth.dag
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
module gunbc.native_ancestry_genesis_seed_growth

import gunbc.roadmap_model { RoadmapNodeId }
import gunbc.seed_growth { SeedGrowthJustification }
import std.decl_ref { DeclarationRef, WholeDeclaration }

// PURPOSE admission (gunbc.v1_maintenance_standing v1_seed_standing): this host exists so the
// v2-native route's miss path is acquire_native_ancestor, never compile_entry_emission.
// Genesis is the one-time V1SeedEmitter store writer; ordinary runs only acquire.
//
// claim_executor --v2-native-genesis is ExistingSeedItemModified (a match arm on the existing
// argv loop), not a new citable declaration; it is named in current_boundary, not netted as
// a deletion-against-addition.
data native_ancestry_genesis_seed_growth_justification: SeedGrowthJustification = SeedGrowthJustification {
hand_authored_declarations: [
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "ANCESTRY_AUTHORITY_ENTRY", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "ANCESTRY_GENERATION_ZERO", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "NATIVE_BUILD_CANONICAL_PREFIX", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "NATIVE_COMPILE_ENTRY", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "PRODUCER_PROVENANCE_ENTRY", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "RUST_TARGET_MODEL_ENTRY", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "TARGET_MODEL_AUTHORITY_ENTRY", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "acquire_native_compiler", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "acquisition_refusal", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "ancestry_artifact_digest_path", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "ancestry_build_argv_path", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "ancestry_build_compiler_path", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "ancestry_build_exit_status_path", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "ancestry_build_rustc_path", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "ancestry_build_rustflags_path", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "ancestry_build_warning_count_path", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "ancestry_closure_identity_path", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "ancestry_compiler_path", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "ancestry_dir", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "ancestry_generation_closure_path", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "ancestry_generation_path", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "ancestry_parent_artifact_path", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "ancestry_produced_by_path", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "ancestry_remap_from_path", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "ancestry_remap_to_path", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "ancestry_seed_binary_path", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "available_generation", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "cargo_profile_from_argv", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "emitter_module_paths_from_closure_value", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "eval_entry_context", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "eval_named", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "hash_of_observed_string", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "interpret_acquisition", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "load_stored_build", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "named_build_configuration_hash", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "native_generation_from_store", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "observed_digest_value", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "observed_symbol_lexeme", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "observed_target_model_axis_hash", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "optional_absent", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "optional_present", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "parse_stored_generation", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "read_ancestry_lines", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "read_ancestry_text", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "realized_closure_value", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "record_field", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "refuse_if_genesis_already_executed", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "run_native_genesis", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "sha512_file", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "sha512_from_stored_hex", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "strings_from_list", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "write_ancestry_lines", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "write_ancestry_text", field: WholeDeclaration },
DeclarationRef { module_path: "v1_compiler.cli_run.native_lane_runner", decl_name: "write_stored_build", field: WholeDeclaration }
],
reason: "PURPOSE: v2 self-host — the seed is never the ordinary miss path. These items are the host realization of v2.compiler.self_host.ancestry acquire_native_ancestor and the one-time GenesisFromSeed store. They are host because they write and read target/v2-native-lane/ancestry, hash files, and spawn the existing emit-compile cargo path; the hermetic floor cannot perform those effects. Classified against the five refused v1 classes: NewLanguageBehavior -- no; NewCompatibilityObligation -- no; NewEscapeHatchOrAdmissionRow -- no, a missing ancestor refuses rather than falling back to emit; SeedFeatureCompletion -- no; PublicSurfaceGrowth -- one name: v1_compiler::cli_run::run_native_genesis, the same re-export shape as the pre-existing run_required_v2_native. claim_executor is a separate crate from the lib, so pub(crate) is not visible to the bin (required-witnesses-build E0624 on 1d70c0e3). The name exists so --v2-native-genesis can call the store writer; it is not a new language capability.",
owning_dissolution_lane: "v1-hand-queue-drain" as RoadmapNodeId,
trigger: "Delete this host reconstruction when the emitted native compiler writes and acquires NativeGeneration as modeled host operations (filesystem and sha512 as values), so run_native_genesis and native_generation_from_store are one .dag fold rather than hand-built interpreter Values. genesis_migration_deletion_trigger retires GenesisFromSeed after an executed SucceedsNative N+1; it does not by itself delete this acquire reconstruction.",
current_boundary: "src/v1/stage0/src/cli_run/native_lane_runner.rs run_native_genesis, acquire_native_compiler, native_generation_from_store; src/v1/stage0/src/cli_run.rs pub use run_native_genesis (same crate-boundary re-export as run_required_v2_native); src/v1/stage0/src/bin/claim_executor.rs --v2-native-genesis match arm (ExistingSeedItemModified)"
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ data the_replaced_route_is_the_replacement_s_miss_path: RecurringFailureMode = R
"THE INSTANCE, gunbc 2026-09-11, operator design-review ruling C1. The native v2 compiler's acquisition path — prepare_emitted_compiler in the v2-native route harness — answered 'the emitted compiler is not present' by running the v1 seed in-process to emit it, then building that. Read as one execution it is correct and honestly receipted: the seed is named, the receipt records it, and nothing is fabricated. Read as a migration it is the defect, because the arm is not a step in getting off the seed, it IS the seed's standing production role wearing the name of a fallback. Every miss re-derives from v1; a miss is the ordinary case for a compiler nobody has built yet; so the seed executes on every ordinary run of the route whose entire purpose is to retire it. ",
"WHY IT IS NOT MERELY AN ABSORBING FALLBACK, which is the neighbouring class. absorbing_fallback widens an ANSWER when precision is unavailable, and its harm is that the deficit stops being counted. Here the answer is precise and the receipt is accurate; what widens is the LIFETIME of the thing being replaced. The harm is therefore not a lost signal but a lost terminus: DESIGN section 3's replacement-migration doctrine requires X's authority to end in one motion, and an X reachable from Y's miss path has no motion in which that can happen — Y is not a replacement at all, it is a cache in front of X. The tell is textual and cheap: a route named for the new producer whose not-present arm names the old one. ",
"THE REMEDY IS A CONSTRUCTOR RULE, not a policy preference: the ancestry relation between producer and produced artifact must have no constructor by which the retired producer is reached on the recurring path, so a missing or unverified ancestor has nothing to resolve to except a typed refusal naming what it expected. v2.compiler.self_host.ancestry models exactly two arms — a one-time GenesisFromSeed carrying its own deletion trigger, and the recurring SucceedsNative(N) -> N+1 — and NativeAncestorAcquisition's missing and unverified arms carry no producer at all. A Bool such as used_seed would have recorded the same fact while leaving both routes writable on either value, which is the carrier-without-a-wall shape this class keeps reappearing as. ",
"THE CEILING AND WHERE THIS INSTANCE SITS. The class is decidable and fully modelled at the relation grain, so its attainable ceiling is structural impossibility: with no seed-reaching constructor on the recurring arm, the invalid state has no inhabitant. What is currently at a lower rung is the HOST route, which still calls the seed emitter until the acquisition surface replaces that call — so the honest reading today is that the relation is at rung 4 and the realization is at rung 1, and the class's rung is the minimum across its paths, which is the realization's. THE NEXT-RUNG TRIGGER IS THE ONE THAT RETIRES THE RESIDUAL THIS ROW NAMES: the capability at v2.compiler.self_host.ancestry native_route_acquisition_frontier -- prepare_emitted_compiler's compile_entry_emission call replaced by acquire_native_ancestor, leaving no v1 emitter reachable from the acquisition path. An earlier revision of this row named genesis_migration_deletion_trigger instead, which retires the GenesisFromSeed CONSTRUCTOR; ancestry.dag states in terms that neither discharges the other, so the row would have reported this class climbing on a capability that leaves the seed CALL -- its entire stated residual -- alive. That is the grain mismatch DESIGN section 4b(3) gives as the review tell: a loss sentence about a route, answered by a trigger sentence about a constructor. Caught by review 64141. The constructor trigger is the LATER climb for the relation grain and is not this row's. ",
"THE CEILING AND WHERE THIS INSTANCE SITS. The class is decidable and fully modelled at the relation grain, so its attainable ceiling is structural impossibility (rung 4): with no seed-reaching constructor on the recurring arm, the invalid state has no inhabitant. NativeAncestorAcquisition Missing and Unverified carry no producer, so the MODEL PATH is at rung 4. The HOST miss path currently evaluates acquire_native_ancestor and compile_entry_emission is unreachable from acquire_native_compiler — the replacement v2.compiler.self_host.ancestry native_route_acquisition_frontier named has landed in source. That absence is not rung 2: DESIGN section 4b rung 2 is a generated test, lens, or gate that exposes and blocks the invalid state while it remains writable. No such mechanism is enrolled over v1_compiler.cli_run.native_lane_runner's acquisition path (review 65906). claim_executor --v2-native-route is off the acceptance path (gunbc.rung_drop v2_native_route_off_the_merge_path) and currently refuses every acquire via ReadBackUnperformed, so it is neither a discriminating RED nor a positive control for this class. The host path therefore remains mitigatable (rung 1): a miss is a typed V2-NATIVE REFUSAL rather than a silent seed emit when that host runs, and compile_entry_emission remains writable there. The class's current rung is the minimum across in-scope paths, which is the host's rung 1. THE NEXT-RUNG TRIGGER (rung 1 to 2) is a generated test, lens, or gate on a real acceptance path that REDs when acquire_native_compiler or prepare_emitted_compiler reaches compile_entry_emission, plus an accepted positive control that a missing ancestor is NativeAncestorMissing with no seed emit. Putting --v2-native-route on the merge path, observing ReadBackReported, or deleting GenesisFromSeed (genesis_migration_deletion_trigger) does not retire this climb (review 64141). gunbc.native_ancestry_genesis_seed_growth (modeled host acquire) is a later climb toward the ceiling, not the rung-2 trigger. ",
],

evidence: [],
Expand Down
Loading
Loading