Repository navigation
XL-1: emit-rust repair-row interpreter bridge and persist producer - #11209
gunbai-bot[bot] wants to merge 21 commits into
Conversation
…ist by GitObjectId. RepairObservationEnvelopeAbsent was stale: the admission envelope already lives in legacy_repair_observation. Capture now proves the roster and admits R_X(B) before minting. Persistence is the capture carrier itself (no relabeling receipts roster); the pre-cut pin stays unpinned so the baseline milestone derives outstanding rather than fabricating a corpus oracle. Co-authored-by: Cursor <cursoragent@cursor.com>
The fold can mint from fixtures; no executing producer yet yields LegacyRepairObservation for a named checkout. Reporting CaptureAvailable would read as a live capture being takeable. Named later change: a v2 tap mapping the repairer's per-site dispositions into this envelope over one GitObjectId, without growing the v1 emitter. Co-authored-by: Cursor <cursoragent@cursor.com>
persisted_legacy_baseline_outstanding now calls persisted_enrollment_outstanding with no held capture, so the milestone cannot drift from the join the witnesses already discriminate. The XL-1 stage label names capability, not persist — persist stays on NamespaceBaselineObservationComplete. Co-authored-by: Cursor <cursoragent@cursor.com>
…ject. prove_repair_roster only compared the observation to itself, so LegacyBaselineRepairSubjectDiverged was unreachable and a foreign source-set or compiler artifact still minted Captured. Join the three shared digests to tree_derived_subject before roster proof. Co-authored-by: Cursor <cursoragent@cursor.com>
|
review 64801 (on closed #11208; same head) — both findings held against the tree and are fixed on this PR:
Also on this head (admitted PrimaryRoot widening): one arm, one encoding, repair rows + seed-observed — sent from stern-ram-86 |
|
review 64805 — verified against
— sent from stern-ram-86 |
|
review 64806 (on #11203) applied here: subject-field coproduct instead of stringly repair disagreement; roster malformed/mismatch RED witnesses. Head — sent from stern-ram-86 |
…ist the oracle before v1 deletion. fierce-lark-661: one host arm after compile_to_resolved encodes List<ReferenceDerivedCandidateRow>; the sole consumer is v2.workflow.legacy_repair_tap, which persists via the existing capture mint. Roster-from-same-rows is a declared tautology. Deleted with emit_rust and the interpreter. Co-authored-by: Cursor <cursoragent@cursor.com>
The seed arm now compiles PrimaryRoot(source_roots[0]) and encodes repair rows plus the seed-observed occurrence transport. persist_capture_from_primary_root_tap calls that arm; empty roots refuse by execution (review 64801). Repair observation digests are copied from the tree subject instead of fabricated constants. Co-authored-by: Cursor <cursoragent@cursor.com>
…oduct. first_repair_base_disagreement was a second spelling of LegacyObservationSubjectField (review 64806). The capture now returns that coproduct, and the roster malformed/mismatch arms have discriminating fixtures. Co-authored-by: Cursor <cursoragent@cursor.com>
compile_xl1_primary_root_tap sat as a pub compile sibling of compile_emission. It is now pub(crate) in emit_host, called only from emit_rust_reference_derived_rows_bridge; .dag still cannot name the helper. Co-authored-by: Cursor <cursoragent@cursor.com>
97d6e90 to
ca8c008
Compare
…itself. review 64840: seed-growth list comma; ReferenceDerivedCandidate* live once under gunbc.reference_derived_candidate; repair-subject disagreement is LegacyRepairSubjectField not a fabricated Incomplete; the live census maps a refused tap to Unavailable rather than 0. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Addressed review 64840 on
— sent from stern-ram-86 |
Keep the emit_rust_reference_derived_rows_bridge registry/dispatch arms together with main's claim_scope_dag_multi_module_fixture. Co-authored-by: Cursor <cursoragent@cursor.com>
The repair-row coproduct belongs in gunbc.reference_derived_candidate rather than a local emit_rust spelling, so the tap encodes the dag type. Co-authored-by: Cursor <cursoragent@cursor.com>
…oduct. first_repair_base_disagreement was a second spelling of LegacyObservationSubjectField (review 64806). The capture now returns that coproduct, and the roster malformed/mismatch arms have discriminating fixtures. Co-authored-by: Cursor <cursoragent@cursor.com>
The named-base entry now materializes a GitObjectId through the existing emit-rust tap; capability reports CaptureAvailable; persist holds that carrier by commit identity rather than a receipts roster. ACT-0's BaselineCaptureReceipt is still a later re-run. Co-authored-by: Cursor <cursoragent@cursor.com>
Enrolment outstanding stays outstanding on PreCutBaseUnpinned; a fixture pin is only joined inside the persist witness via persisted_enrollment_outstanding. Co-authored-by: Cursor <cursoragent@cursor.com>
…abited tap-absent refuse arm. The seed-growth trigger already owns the builtin deletion; persist_named_base_from_primary_root_tap is the live consumer; CaptureAvailable has no mint of LiveRepairObservationTapAbsent. Co-authored-by: Cursor <cursoragent@cursor.com>
|
review 65446 — all three findings were live on 33d1e1b; fixed in 3123d86.
— sent from stern-ram-86 |
The interpreter arm only calls compile_xl1_primary_root_tap; leaving that host (and the shared ObservedOccurrenceBindingHalves extraction) off the obligation list was unenumerated seed growth. Co-authored-by: Cursor <cursoragent@cursor.com>
|
review 65458 — verified: — sent from stern-ram-86 |
A one-arm coproduct was parsed as an alias to an unresolved ObserverNeverReachedDecision, so claim_batch could not resolve the capture witness. Co-authored-by: Cursor <cursoragent@cursor.com>
Keep 11209's repair-subject coproduct (LegacyRepairSubjectField) over the pre-tap String-mapper seam. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Executed locally with capture (
persist (
tap fixture (
live tap RED (
split (
|
review 65481: observation_subject_field_from_label re-spelled the coproduct and its Absent arm fabricated an empty RepairIncomplete. Applicability now emits LegacyRepairSubjectField; capture forwards it with no decode. Co-authored-by: Cursor <cursoragent@cursor.com>
…iew 65481). Co-authored-by: Cursor <cursoragent@cursor.com>
|
HELD under the operator wind-down: receipt-class (the one admitted seed builtin emit_rust_reference_derived_rows_bridge in src/v1; PURPOSE-admitted by fierce-lark-661 2026-09-12, on the v1 deletion roster, seed-growth ledger row filed). Stacked on #11203, which is enqueued (merge queue pos 13); retargets to main on that merge. Head ce3b70a: cursor approval on head (review 65492), 0 RC, CLEAN; executed claim output pasted above (empty-roots REDs refuse; persist/enrolment/capability/split pass). RESUME: after #11203 merges and this retargets, one CI run on the head, then the class-1 srv2 receipt on that sha, then enqueue. Ceiling stated honestly in the body: XL-1 clears on CaptureAvailable; NamespaceBaselineObservationComplete stays outstanding until ACT-0 pins the pre-cut base (operator decision); the capture must be taken before v1 deletion. — sent from swift-bat-902 |
|
Resume-recipe addendum: #11203 was squash-merged (2026-09-15 02:22Z) and this PR retargeted to main, so the branch's copies of #11203's commits now conflict with their squashed form — ten files: the two gunbc carriers (compiler_frontend_program_status, seed_growth_admission), four dag/test/claim witnesses (one add/add on legacy_baseline_persisted_observation_witness_test — same content both sides), v2.workflow.legacy_baseline_capture, and THREE STAGE0 MIRRORS (v1_compiler_emit_rust.rs, v1_interpreter.rs, v1_interpreter_dispatch_generated.rs). At resume: merge origin/main by merge commit (never rebase); for the .dag files take main's #11203 content plus this PR's additions (the seed_growth_admission and status-carrier rows both append); for the three MIRRORS do not hand-merge — regenerate from the seed (claim_executor --required-regen --regen-affected-scope; the interpreter builtin is a generation input, so expect WholePopulationScope under the 22 GiB bound; install only the adjudicated set; the class-1 receipt then covers them); re-run the tap/capture/persist witnesses to completion; push; one CI cycle; receipt; enqueue. Not done now: the lane is closed under the wind-down and a whole-population regen is not a session-sized job. — sent from swift-bat-902 |
…rated sources Installed from the generated candidate, never hand-edited. Regenerated by the seed built from origin/main (23a15bd; claim_executor sha256 cd7107a4eb0d10df...) with claim_executor --required-regen --regen-affected-scope over dag + src/v2 on this branch: regen-scope WholePopulationScope, planned/executed/adjudicated 156, elapsed 463757 ms, sampled peak RSS 12,060,996 KiB under ulimit -v 23,000,000 KiB (cap proven beforehand with a must-fail 24 GiB allocation control). The adjudicator named exactly four paths - v1_compiler_emit_rust.rs, v1_compiler_infer_method.rs, v1_compiler_infer_patterns.rs, v1_tests_claim_reference_derived_disposition_census_witness_test.rs (declared_divergent=1 [main.rs], pre-existing, not installed) - and a whole-candidate src comparison found the same four and no other (Cargo.toml is candidate-only crate layout outside the mirror population). v1_interpreter.rs and v1_interpreter_dispatch_generated.rs, taken provisionally from #11209 during the cherry-picks, already equalled the candidate. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013k9hjAXuaD1HiC1yzd4wnC
…s (the XL-1 bridge arm and its value projections) The cherry-pick conflict resolution had taken #11209's whole-file copy of this hand-written seed file, which predates main's warm-producer additions and #11291's deletion of eval_resolve_type_node, so the seed did not build. Rebuilt as origin/main's file with the two tap commits' hunks (6dfcf30, 36d855d) applied on top; both are additions only (+363).
…ive-surface roster Regenerated via gunbc run --entry dag/gunbc/instruments/generated_artifact_gate.dag --function main_wet (the heal lane's own recipe) using the seed built from origin/main. The branch's copy had come from #11209's branch and lacked the three arms main added since (type_declarer_qualified_names, floor_discovery_source_inventory, claim_scope_dag_multi_module_fixture); the regenerated file is main's plus the one XL-1 arm emit_rust_reference_derived_rows_bridge. Every other generated artifact was already at fixed point (main_wet rewrote none).
…must-not-resolve XL-3 fixture under test/probe Two refusals from the integration head's first floor run (35056157979), neither visible on the superseded PRs because #11209 never had a floor run and #11210 was stacked: 1. namespace-wave-admission: 66 unadjudicated TargetChanged binding deltas, all one move - the reference-derived candidate row/disposition types leaving v1.compiler.emit_rust for their one dag home gunbc.reference_derived_candidate (#11209 commit 42323e5), reached from v1.compiler.emit_rust (43 bindings) and v1.tests.claim.reference_derived_disposition_census_witness_test (23). Admitted one row per delta in NAMESPACE_TRANSITION_ADMISSIONS, generated mechanically from the run's own delta lines (identity grain, expected candidate = the new home), with the consumption trigger stated: the rows go when gunbc#11461 merges. 2. floor prepare: src/v2/test/fixture/declaring_identity_spelling/unresolvable.dag is a must-not-resolve fixture (an undeclared type name, so XL-3's IdentityUnbound verdict has an authorable subject) and the prepared subject resolved it. Moved to dag/test/probe/declaring_identity_spelling_unresolvable_probe.dag - the roster floor_prepared_subject_exclusions already excludes test/probe/ for exactly this class - with the probe header; the census reads it as source through the ingest route, so the test's path row is repointed and nothing else changes. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013k9hjAXuaD1HiC1yzd4wnC
|
Superseded by the NAMESPACE-XL integration branch #11461 (operator direction 2026-09-16: one integration branch for the five floor-met PRs). This PR's content is carried there verbatim except where the branches disagreed — the integration decisions are listed in #11461's body — with its stage0 mirrors regenerated from the candidate at a verified fixed point and every touched witness file executed green. Review history stays here; branch kept. — sent from swift-bat-902 |
Summary
emit_rust_reference_derived_rows_bridge(fierce-lark-661 / v1_maintenance_standing PURPOSE): after the runningcompile_to_resolved, call already-emittedv1.compiler.emit_rustemit_rust_reference_derived_rowsand encodeList<ReferenceDerivedCandidateRow>. Same transport class asgunbc.namespace_structural_observation_bridge_seed_growth. No second encoding, no new bin/flag, no admission-origin row.v2.workflow.legacy_repair_tap(persist_capture_from_bridge_rows). Roster-from-same-rows is a declared tautology. The arm is not enrolled on a required-floor path.v1.compiler.emit_rustand the interpreter.capture_legacy_baselinejoins the repair subject's three shared digests totree_derived_subjectbefore roster proof (review 64783).LiveRepairObservationTapAbsentonly when aLegacyBaselineCaptureis persisted whosebase_commitequals a pinned pre-cutGitObjectIdon main. A producer existing is not enough. Re-derive the live row population by namingv2.workflow.legacy_repair_tapxl1_live_repair_tap_tally— do not transcribe a count here.Stacked on #11203.
Test plan
claim_batch --source-root dag --source-root src/v2 --entry dag/test/claim/legacy_repair_tap_persisted_capture_witness_test.dag --functions roster_from_bridge_rows_is_the_same_row_tautology,persist_capture_from_bridge_rows_admits_a_complete_same_row_observation,empty_name_row_is_dropped_from_the_roster --claim-runclaim_batch --source-root dag --source-root src/v2 --entry dag/test/claim/legacy_baseline_capture_witness_test.dag --functions a_fully_agreeing_capture_mints_the_baseline,a_repair_observation_missing_a_roster_site_refuses_as_repair_incomplete,a_repair_observation_of_a_different_source_set_refuses_as_repair_subject_diverged,a_repair_observation_from_a_different_compiler_artifact_refuses_as_repair_subject_diverged,an_observation_of_a_different_source_set_refuses_as_subject_mismatch --claim-run--claim-run):claim_batch --source-root dag --source-root src/v2 --entry src/v2/workflow/legacy_repair_tap.dag --function xl1_live_repair_tap_tally— currently the entry-closure graph only; corpus drive is the next cut.