Repository navigation
§1 ground truth: back-port #6236 DESIGN §5 into its authority + roadmap receipts refresh (1667-error fresh-emit receipt) - #6253
Conversation
…e get arm); regen ROADMAP projection Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
CI-failing check verified as the known interim, not content: both The PR's actual receipts are local, per the interim policy, and documented in the body: — sent from sharp-deer-310 |
…fresh (cursor RC) + repoint pre-existing-stale charter-adjacency pin witness_b_ordered_interleaving pinned the pre-refresh prose (Ground truth 2026-07-01 date + old walls sentence); updated to the refreshed authority. Also fixed a pin this PR did NOT stale: the charter->core-design-rule adjacency has been red on main since [host-converge inventory] was appended after [charter] — repointed to the real paragraph tail. Discriminator date kept in lockstep. All pins verified against the regenerated ROADMAP.md (byte-identical projection). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…tirement path (delete-mass triage) (#6272) * pipeline.rs self_gen8 cluster: retire 28 of 31 fns (typed dispositions; 3 kept for def-unification lane) Delete-mass triage of the self_gen8 cluster per the test_migration_debt drain (#6261 retirement path). Ground truth measured 2026-07-05 via cargo test -p v1-compiler-tests self_gen8 -- --include-ignored: 22 passed, 9 failed - 8 of the 17 #[ignore]d fns carried stale red-on-main reasons and pass on main today. - 22 green fns -> DeleteRedundant: seed-corpus pattern families (homonymous type names, variant-specific imports, kernel-ambient types, direct type imports) are byte-pinned by RegenVerifyGate (regen_stage0 --verify, #5873) plus the emitted-seed rustc/clippy gates; beyond-corpus synthetic shapes (parametric-alias RHS, opaque parametric decls, proxy chains, wildcard imports) are executed by the v2 self-host fresh-emit lane over dag/std's real instances with deficits enumerated in the 1667-error receipt (#6253/#6258). An #[ignore]d pin runs in no gate - zero delivered signal. - 6 red fns -> DeleteLowValue: #[ignore] since #5427, never run in any gate, desired-but-absent seed-emitter behavior on synthetic fixtures; deficit ownership is the fresh-emit lane. - 3 red fns KEPT (stays_unemitted alias-to-opaque trio): dag/gunbc/plans/dag_v2_defork_audit.dag claims them for the def-unification lane (node://adhoc-9d2bb9c3-e7b) - premise flips, not deletes. Typed receipt: dag/test/retirement/pipeline_self_gen8_retired.dag (two TestModuleRetirement rows). Receipt-only w.r.t. the delete-guard - the contributed stem pipeline_self_gen8 matches no v1 test file and pipeline.rs itself survives, so its eventual file deletion still requires its own coverage. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Repoint kept trio's #[ignore] reasons to their owning lane (def-unification, node://adhoc-9d2bb9c3-e7b) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Brian Searls <briansrls@gunb.ai> Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…er selection Both red on clean main by direct execution, latent behind affected-set skips and the batch-2 red era: host_standup_spine: the spine gained the P0:host-identity-converge step in #6253 (11 steps) while spine_step_tag matched exactly 10 phases with no catchall - non-exhaustive panic on Assimilation{HostIdentityConverge} whenever executed. Witness now describes the 11-step spine (tag arm + ordinal shift + length/ledger pins 10->11, gap count 4 unchanged, fn renamed ten->eleven to keep the name truthful). fleet_show_effective_read: declared_runner_count() derives from pool_budget / slot cap, so the #6495 re-carve (24->16GiB) moved it 10->5 and the 2026-07-03 width fixtures went stale. The parse-typing witness now pins the literal it parses (a parse fixture must not depend on a live-derived count - that fusion is how this went latent-red); the srv1 convergence witness flips to assert the REAL fact, drift (the hosts still run pre-carve width - the same oversubscription the falsifier exit-137 receipts located), with a dissolve-on for a post-re-carve readback. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… cost/routing work (#6489) * witness-cost-locality lens v0: one typed verdict for the two ambient-coupling axes (receipt-only) One law: witness cost must be denominated in its subject (the DESIGN 5 denomination law). Two detectable projections at module grain: DataBreadth (closure reaches an ambient-read carrier: filesystem_read callers + the decl_facts reflection home) and LayerDepth (closure spans >=2 compiler pipeline stages - the round-trip shape). Verdict algebra + census receipt + precision-frontier disclosures as data; six fixture witnesses incl. the single-stage boundary and a red control (law perturbed to >=1 flips single_stage_closure_stays_local red - receipted). Census 2026-07-11 over the 732-entry roster: Local 483 / LayerDepth 229 / DataBreadth 9 / both 11; derives the operator-ruled-offline enforcement rows and the execution/ exclusions; falsified two naive laws (decl_facts reflection invisible to filesystem_read grep; hermetic fixture rows over-flagged - the declared InputEnvelope is the override authority). LayerDepth is receipt-only until fn-grain call-graph reachability lands (ci_yaml counter-receipt: stage-type imports are not stage execution). Dissolve-on: fn-grain reachability + InputEnvelope declarations wired into floor admission; the witness_exclusion hand-rows and this v0 roster retire together. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Add the required construction_justification row (cursor review) WallAfterGrounding dissolving to SingleAuthority: the verdict is validation-tier until fn-grain reachability + InputEnvelope declarations let floor admission consume it, at which point non-Local rows are structurally absent from the per-PR plan (the single authority) and the lens dissolves per its precision-frontier note. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * [ITERATION-ONLY - REVERT BEFORE MERGE] Route CI to ubicloud runners Self-hosted fleet has no free slots (operator, 2026-07-11); route this PR's iteration to ubicloud-standard-16-arm so the lens work is not gated on fleet capacity. Same move as the #6107 -> #6111 precedent. gunbc_ci_runner_spec() returns the ubicloud label; the fleet derivation is preserved untouched as gunbc_ci_runner_spec_fleet_derived() and ubicloud_iteration_routing_note carries the revert obligation. Workflows regenerated from the authority via main_wet (drift gate stays coherent): runs-on [ubicloud-standard-16-arm] at ci.yml build_release/floor/emit-determinism and falsifier.yml. Revert = git revert this single commit + regen (or just revert; the regenerated ci.yml/falsifier.yml are included here). * Closure facts + per-PR admission law: the transitive-carrier case becomes provable, and verdict x envelope decides the lane Extends the v0 lens with the fact half its census note promised: - ModuleImportFact + import_closure: module-grain closure over declared import facts, the |E|-sweeps fixpoint shape sanctioned by v2.lens.affected_set (pass + frontier-stability + doubled-facts fuel, early-stable). Terminates on cyclic FACT rows - the substrate refuses cyclic imports, but the fold must not trust its input. - witness_cost_locality_from_facts: closes over the facts so the transitive carrier (the enforcement_live falsification - the corpus read two hops away) is provable in fixtures, not just prose. - WitnessInputEnvelope + per_pr_admission: the admission matrix (verdict x declared envelope), fail-closed with declaration-wins-when-stricter. DeclaredCorpusInput always routes to the scheduled lane; DeclaredBoundedFixture is the hermetic override (reachability over-approximates; the scheduled falsifier lane is its audit); EnvelopeUndeclared admits only Local - the refused_undeclared_when_envelope_unknown shape from InputEnvelope P0. RouteScheduledLane is a typed routing verdict, never a silent drop. Witnesses (7 new, 13 total, all green by execution; the suite itself stays Local-class: 393ms resolve, 0ms eval, fixture-only): - two-hop transitive carrier couples on DataBreadth; severing the mid hop flips it Local (the discriminating pair) - cyclic facts terminate and still reach the carrier - admission matrix cells incl. the RED control: undeclared + coupled never rides the continuous floor * Resolve the cargo binary at toolchain-pin time; stop baking the fleet's shim path into the build line The build line invoked "$CARGO_HOME/bin/cargo" - a fleet fact fused into the job model. On a runner image whose rustup pre-exists (ubicloud, GitHub-hosted), setup-rust-toolchain never runs rustup-init, so no shim lands under the isolated $CARGO_HOME and the build dies with "No such file or directory" (run 29161556017). The isolated RUSTUP_HOME/CARGO_HOME env still governs whichever shim exists - only the shim's LOCATION is realization-specific. Fix: the pin step (already the "make the isolated toolchain invocable" step, name unchanged so the cost-floor roster keeps resolving; no new run-step so the raw-script count pin holds) resolves CARGO_BIN once - isolated shim if present, else PATH - and refuses loudly when neither exists (fail-closed, DESIGN 5). ci_release_build_line invokes "$CARGO_BIN"; the retry escalations' env-prefix composition is unchanged since it stays one word. Falsifier inherits via the shared prelude. Workflows regenerated via main_wet. witness_rustup_run_plain_not_quoted repinned as witness_rustup_run_block_scalar_not_quoted: the pin step is now multi-line so its run correctly serializes as a block scalar; the property the witness guards (quote-laden content never YAML-escaped, negative control kept) is unchanged. ci_yaml_serializer_keystone_holds green by execution; 18-entry consumer sweep green except 3 witnesses red on unedited baseline too (pre-existing/environmental). * [ITERATION-ONLY - REVERT BEFORE MERGE] Reconcile the runner seam witness with the ubicloud override Cursor catch (review on the folded #6490, restated on #6489): the routing override left ci_runner_seam_holds red - it pinned gunbc_ci_runner_spec() to the fleet derivation and the yaml to [self-hosted, linux, arm64]. Reconciliation, discriminating in both directions during the window: the fleet-derivation witnesses repoint to gunbc_ci_runner_spec_fleet_derived() (the derivation authority stays proven and un-drifted), the live-spec witnesses pin the override label exactly (drift of the override itself is caught), and the workflow==live-spec seam witness is unchanged. ci_runner_seam_iteration_note carries the revert obligation; this commit reverts together with the routing commit (3f203d8). ci_runner_seam_holds green by execution. * Revert the iteration-only ubicloud routing (operator go 2026-07-11: iteration window closed, focus on merge) Restores gunbc_ci_runner_spec() to the fleet derivation as the single runner authority and the seam witnesses to pinning it (reverts 3f203d8 + 36e4cd3 as one motion); workflows regenerated via main_wet back to [self-hosted, linux, arm64]. The CARGO_BIN resolution (a03142d) stays - fleet-neutral portability fix, proven by execution on both runner classes (fleet floors unchanged; ubicloud build green run 29162064482). ci_runner_seam_holds and the serializer keystone green by execution on the reverted head. What the iteration window bought, for the record: the CARGO_BIN portability bug (fixed), the 12.5-min full floor + 13.5GiB-uncapped counterfactual receipt that pinned the fleet wedge on the memory.high throttle (now fixed at the budget edge in #6495), and the surfacing of the #6459 batch-2 panic (fixed in #6493). * Runner offers modeled + one selection authority: labels, memory regime, and budgets project from the selected target Operator asks 2026-07-11: model the runner rows (github, ubicloud; fleet existed) and make the mappings clear - then "stay on ubicloud for this change; self host runners are still contended." extdeps (cited, zero fabrication): - extdeps.cloud.ubicloud: the 10 documented runner shapes (runner-types.md anchor; arm 3GB/vCPU, x64 4GB/vCPU kept as vendor facts; the standard-16-arm observed MemTotal receipt recorded SEPARATELY from the catalog claim, discrepancy noted not reconciled) - extdeps.github.hosted_runners: the Ubuntu family with repository VISIBILITY as a first-class axis (public 4vCPU/16GB vs private 2vCPU/8GB for the same label - folding it away would be a state-space conflation); version-pinned labels, ubuntu-latest alias deliberately not a row gunbc.ci_runner_target (the missing edge the iteration window proved): - CiRunnerTarget = FleetSelfHosted | UbicloudRunner{row} | GithubHostedRunner{row}; selected_ci_runner_target() is THE switch - projections: runs-on spec (fleet stays DERIVED from the fleet offer; cloud rows carry the provider's cited token), memory regime (SlotCarved{desired} with the 15GiB throttle line vs WholeMachine{ram}), RAM-speed budget (fleet -> slot ceiling; cloud -> catalog ram) - ci_workflow, falsifier_workflow, floor budget, falsifier width all read the projections: flipping the selection row moved runs-on AND CARGO_BUILD_JOBS (4 -> 11, from the 48GB row) AND floor width in one regen - the propagation the label-only model could not do - selection = ubicloud-standard-16-arm (operator routing, fleet contended); flip back = FleetSelfHosted + regen, nothing else moves - falsifier now rides the selected shape too: its pinned fleet-slot capacity deficit witness stays parameterized on the FLEET ceiling (the deficit is a slot fact), while on 48GB its envelope fits with 3x headroom - the nightly's dissolve-on path Witnesses: ci_runner_target_witnesses (fleet-derivation identity, ubicloud/github label projections, both regimes, cited arm ratio held across the family, visibility-axis discrimination) + seam witnesses repinned to the selection authority with the fleet derivation kept live for the flip back. * Width-fit witness measures against the machine the plan runs on (the selected target budget), not the fleet slot unconditionally * Regen after folding the runner-offer selection into this branch (ubicloud labels + JOBS=11 + CARGO_BIN compose) * Resolve the cargo binary at toolchain-pin time; stop baking the fleet's shim path into the build line The build line invoked "$CARGO_HOME/bin/cargo" - a fleet fact fused into the job model. On a runner image whose rustup pre-exists (ubicloud, GitHub-hosted), setup-rust-toolchain never runs rustup-init, so no shim lands under the isolated $CARGO_HOME and the build dies with "No such file or directory" (run 29161556017). The isolated RUSTUP_HOME/CARGO_HOME env still governs whichever shim exists - only the shim's LOCATION is realization-specific. Fix: the pin step (already the "make the isolated toolchain invocable" step, name unchanged so the cost-floor roster keeps resolving; no new run-step so the raw-script count pin holds) resolves CARGO_BIN once - isolated shim if present, else PATH - and refuses loudly when neither exists (fail-closed, DESIGN 5). ci_release_build_line invokes "$CARGO_BIN"; the retry escalations' env-prefix composition is unchanged since it stays one word. Falsifier inherits via the shared prelude. Workflows regenerated via main_wet. witness_rustup_run_plain_not_quoted repinned as witness_rustup_run_block_scalar_not_quoted: the pin step is now multi-line so its run correctly serializes as a block scalar; the property the witness guards (quote-laden content never YAML-escaped, negative control kept) is unchanged. ci_yaml_serializer_keystone_holds green by execution; 18-entry consumer sweep green except 3 witnesses red on unedited baseline too (pre-existing/environmental). * Unbreak the post-merge-wave floor: absent declared roots skip loudly, the split-spanning gate universe, and the disposition-marker adjacency pin Three content reds every completed floor now hits, all proven on clean main (the 60m-timeout and batch-2-panic masks are gone, so the content layer behind them is finally visible): 1. anchor_source_root panicked mid-floor on "dag/compiler" (run for PR #6497, cli_run.rs:365) - a DECLARED root from the medium-structure roster that does not exist on disk yet (modeled-before-implemented). The layer walk's own is_dir guard proves absence is a legitimate skip state there, but the anchorer panicked before the guard could run. New non-panicking try_anchor_source_root for declared-root walks: absence skips with a counted [layer-import] line (loud, never silent); CLI-provided roots keep the strict panicking contract. 2. affected_set_universe_gate_processes_match_declared_gates compared the Gate coproduct's 10 arms against gunbc_ci_gates - the ci JOB's slice (7) since the #6472 job split. The witness now unions floor+regen+emit_determinism (the same union its sibling witness_gate_roster_matches_coproduct_arms already used); probe receipt: the three slices partition the 10 arms exactly. 3. witness_floor_disposition_marker_initialized_before_docs_only_branch (landed in today's wave) pinned the stamp DIRECTLY adjacent to the docs-only branch, but the emitted script has a blank line between them - red on clean main from its first run. The pin now matches the emitted adjacency (stamp, blank, _ci_changed) and still proves the ordering it exists for. Receipts: ci_spec_witnesses, all 4 affected_set_universe witnesses, and the layering clean-tree witness green by execution with the fixed binary. Remaining known main reds (predate today, tracked separately): s1_closure_parses_holds (#6459 wrapper-retained diagnostic arm), ci_deploy_witnesses. * GithubHostedRunner projects the hosted scalar form (cursor catch) Ground GithubHostedRunnerCatalogRow.runs_on_label in the actions grammar's RunnerLabel closed vocabulary (extended with the cited ubuntu-24.04-arm / ubuntu-slim spellings; runner_label_string stays the single spelling authority) and route the GithubHostedRunner target through HostedRunner, whose serialization is the scalar runs-on form GitHub uses for hosted labels. A labels-list projection would have emitted the self-hosted label-matching form. Witness repinned to the HostedRunner variant plus a by-execution runner_yaml discrimination (scalar hosted vs flow-list label-routed). Ubicloud stays SelfHosted label routing (provider tokens, proven live 2026-07-11). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * ci_deploy witness: repin deploy invoke to the rooted source-root spelling witness_deploy_run_script_invokes_gunbc_wet pinned the unrooted '--source-root dag' while gunbc_ci_deploy_invoke emits the rooted '--source-root "$ROOT/dag"' (witness_layer_source_flags_rooted, #6453) - red on clean main, the third masked layer of the rooted-argv family (#6493 repinned the scheduler-argv pair). Proven by execution: suite false -> true on the repin, conjunct-bisected first. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * try_anchor_source_root: seed-retained scaffold receipt (cursor #6489 catch) Hand-Rust expansion now carries the DESIGN §7 shape the same file requires: authority rows (cli_run_source_root_anchor_scaffold sibling of the workspace-root scaffold, bind to the declaration), named dissolve-on (roots walk GENERATED via cli-run-reconcile-defork Chunk F, absence a typed roster-layer diagnostic; or 5-dissolve-patches), checkable receipt anchor + counted loc delta, scaffold witnesses green by execution, and a discriminating unit pair (declared-present -> Some, declared-absent -> None). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * s1_closure floor panic: wrapper-retained diagnostics must inhabit the Diagnostics coproduct body_lower_wrapper_retained_shell constructed Accepted with a RAW NonEmptyDiagnostics in the diagnostics field where the Diagnostics coproduct (None | Some) is declared - the first downstream match over Diagnostics (diagnostics_merge in the normalize child fold) panicked non-exhaustive on every file with a wrapper-retained fn body, killing the s1_closure witness whenever the affected set selected it. Fix wraps the singleton in Some. Reproduced red (exact CI panic) and green by execution via s1_file_parses on dag/std/error_primitives.dag; new witness pins the shape and returns false (no panic) on the raw form. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Post-merge regen: plan docs re-derive the Lane D links from the merged authorities This branch's earlier regen ran while the .dag plan authorities lacked the link rows (pre-#6503), so it had written the docs linkless; the merge kept that side while main brought the link rows. main_wet now re-derives the linked docs - pair consistent, drift gate green. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Two latent fleet-lane witness reds, first executed by this head's wider selection Both red on clean main by direct execution, latent behind affected-set skips and the batch-2 red era: host_standup_spine: the spine gained the P0:host-identity-converge step in #6253 (11 steps) while spine_step_tag matched exactly 10 phases with no catchall - non-exhaustive panic on Assimilation{HostIdentityConverge} whenever executed. Witness now describes the 11-step spine (tag arm + ordinal shift + length/ledger pins 10->11, gap count 4 unchanged, fn renamed ten->eleven to keep the name truthful). fleet_show_effective_read: declared_runner_count() derives from pool_budget / slot cap, so the #6495 re-carve (24->16GiB) moved it 10->5 and the 2026-07-03 width fixtures went stale. The parse-typing witness now pins the literal it parses (a parse fixture must not depend on a live-derived count - that fusion is how this went latent-red); the srv1 convergence witness flips to assert the REAL fact, drift (the hosts still run pre-carve width - the same oversubscription the falsifier exit-137 receipts located), with a dissolve-on for a post-re-carve readback. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Brian Searls <briansearls1@gmail.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Two §1 repairs + the measured burn-down state, proven by local execution (CI floor is dark by known interim — 10-min timeout #6232 vs ~40-min batch-1; operator-accepted, receipts run locally).
Scope change (operator collision resolution via cool-hawk-899): this PR originally also reverted #6241's
get()parser form to restore v1 self-resolution. The operator ruled that arm belongs to #6255 (register builtingetin the resolver registry — preserves P2's O(1) token access). The revert hunk is DROPPED;src/v1/02_parse.dagis byte-identical to main in this diff. Self-resolution timeline: #6235 arm fixed by #6250; #6241get-registry arm lands in #6255.1. DESIGN.md single-authority repair (§3 violation found by execution)
#6236 landed the §5 absorbing-fallback content by editing the generated DESIGN.md without its authority (
dag/gunbc/design_document.dag) — amain_wetregen silently DROPPED the operator-merged text (4 blocks: the §5 paragraph, the e.g. extension, the failure-modes entry, the enforcement-intent clause). Back-ported all 4 blocks into the authority with the file's escaping conventions. Proof: DESIGN.md regenerates byte-identical to main (0-line diff) whiledesign_document.dagnow carries the text.2. Roadmap §1 ground-truth refresh (authority edit +
main_wetregen)getsites resolvable — numbers independent of which P4+P2: import_closure worklist BFS + parser token index #6241-gap fix lands): regen write-mode completes and materializes the latent backlog — 40 generated files / ~4.3k lines of drift — and the fresh crate is cargo-RED: 1667 rustc errors (E0282/E0308/E0425/E0614/E0631; dominant class = Emitter restoration: deref boxing + alias-brand rendering (C8 tail) #6243's deref-boxing + alias-brand C8 tail). The broken cutover was measured and NOT committed. Cutover Add SVG viz, test helpers, and makegen scaffold #1 is blocked on emitter restoration to fresh-emit cargo-green — recorded on the5-regen-cutovercarrier; this is5-cargo-green-continuous's exact failure mode materializing while the byte wall was dark.generate_stage_candidate_from_ingesthas zero consumers) +bootstrap.dagplaceholder hashes + 1-file provenance witness.module_path_index(~22.3k LOC); 3 lens projections drained (Dissolve decl_facts_project.rs (174 LOC) HAND_MAINTAINED seed file: #5966's concept_decl_facts(roots) host builtin merged (src/v2/std/concept_index.dag), the scaffold's own dissolution trigger fired. Ground decl_facts_project.rs's DeclFact projection logic onto .dag (05_emit_rust.dag delegation), co #6158/Dissolve complexity_linearity_audit_project.rs (gunbc#5364 landed) #6211/Dissolve external_authority_project.rs — lens .dag owns verdict #6212); lastpatch_*dead in-tree;phase_profile.rsadded 2026-07-04; main.rs flip-back blocked on the dag_collect emitter split: 05_emit_rust standalone emit for dag_collect{,_support}.rs #6053 Ci-subcommand emit gap (Flip main.rs from HAND_MAINTAINED to GENERATED post-#6053 #6226 self-reverted).Tests
main_wetregen: DESIGN.md byte-identical to main (back-port faithfulness proof); ROADMAP.md == authority projection (drift gate coherent);src/v1/02_parse.dag0-line diff vs main.regen_stage0write-mode (completes, 92 files), fresh-seedcargo build(1667 errors, tree restored)..rschanges.🤖 Generated with Claude Code