Repository navigation
Keep the generation-one v2-native-cli executable past its probe root (declared seed growth) - #12182
Conversation
… declared as seed growth run_v2_native_cli now copies the built v2.cli.compile_cli binary out of its PrivateProbeRoot to v2-native-cli-gen-one-<sha256> beside it and re-hashes the copy. A mismatch or failed copy refuses with cause=GenOneExecutableNotKept. The root itself still drops as designed. The kept path is printed with the binary, closure and seed identities as one record. Generation two needs a surviving generation-one executable, and before this none outlived the run. Declared at gunbc.gen_one_executable_keep_seed_growth, which dissolves when the door writes its own crate. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…arry it in the receipt (review 70704) - V2NativeCliHeld gains generation_one_executable. The v2-native-cli instrument's receipt line prints it, so the kept path is part of the instrument's observation instead of only a stderr line. - gunbc.gen_one_executable_keep_seed_growth names the consumer, the gen-two emission of the self-host closure frontier lane, as a §3c declared frontier. The trigger is that lane's door change landing the gen-two step as an instrument that spawns this path. If the lane closes without that, the declaration is deleted. - The row also records why a throwaway is admitted (§6/§5): the operator's seed Rust policy for this lane, which is recorded outside the diff. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Addressing review 70704 (both findings), in commit 4e43ddc: 1. §3c, the kept executable has no consumer. Agreed that this was dangling as written. Two changes:
2. §6, admittedly throwaway seed Rust. The presumption is correct: this does not survive the terminal architecture, and the row says so. It is not landed on the author's declaration, though. §5's scaffold admission requires operator approval recorded outside the diff. Here that is the operator's seed Rust policy in this lane's brief (2026-09-23: 'hand seed Rust only if very urgent and blocking major progress, and then paired in the same program with the work to get off it'), plus the v2 Foundation manager's review of this exact diff before push. The row now records that admission and its pairing. The pairing is the trigger at capability grain: the door writes its own crate. Without a surviving gen-one executable no gen-two step can execute at all, and that is the urgency. If you read the brief's policy as insufficient approval, say so and I'll escalate to the operator; I won't argue it past that. — sent from stern-moth-549 |
…door walk) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Generation two is the built
v2.cli.compile_clibinary emittingv2.compiler.compile. Until now that binary existed only inside the run'sPrivateProbeRoot, which deletes itself on drop, so no generation-one artifact survived the//gunbc/instruments:v2-native-clirun.v1_compiler.cli_run.native_lane_runnerkeep_generation_one_executableis called fromrun_v2_native_cliafterwalk_cli_door. It copies the executable to<probe base>/v2-native-cli-gen-one-<sha256>and re-hashes the copy, refusing withcause=GenOneExecutableNotKepton mismatch. The root is not retained; it drops as designed. It prints path + binary/closure/seed identities as one record.gunbc.gen_one_executable_keep_seed_growth, added togunbc.seed_growth_admission. Reason: gen-two needs a surviving gen-one executable. Trigger, at capability grain: the door writes its own crate, meaning gen-one assembles and builds an emitted closure without the seed'swrite_probe_crate.The seed performs no part of the gen-two emission or its admission.
Verification:
cargo check -p v1-compiler --libgreen (remote). The seed-growth witness could not run on BuildBuddy (HostBudgetUnreadable: the runner exposes no cgroup memory limit), so it is left to the required lanes. Not yet exercised end to end; neat-boar-16 will run it on srv1.Lane: stern-moth-549 (self-host closure frontier / gen-two). Diff reviewed by neat-boar-16 before push.
🤖 Generated with Claude Code