Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
24898b1
Re-home the import-deletion lane onto main
Aug 10, 2026
0655b15
Regenerate ci.yml for the three new emitted stage0 modules
Aug 10, 2026
6652e33
Merge main into the import-deletion lane
Aug 10, 2026
33c837f
Drop the duplicated HasTrigger heal; #8116 owns it
Aug 10, 2026
aed95b8
Merge remote-tracking branch 'origin/main' into session/calm-ram-435-…
Aug 11, 2026
c43a89d
chore: regenerate drifted generated artifacts (ci auto-heal)
Aug 11, 2026
106f465
Merge the healed main; the regen chain completes again
Aug 11, 2026
087287c
Merge the auto-heal push, keeping the tree that verifies
Aug 11, 2026
553ffa8
Merge remote-tracking branch 'origin/main' into session/calm-ram-435-…
Aug 11, 2026
a1e9c87
Item 3: project the provider FILE, not just the provider module
Aug 11, 2026
01f1394
Item 3 repair: consume the total binding population instead of mintin…
Aug 11, 2026
5e1c88c
Carry exact identities through two discarding refusal boundaries; add…
Aug 11, 2026
2275fb3
Merge main; regenerate seed and re-emit; locate a nested-pattern Rc e…
Aug 11, 2026
658a1d1
Close the declaration denominator; enrol the module-value hole; put t…
Aug 11, 2026
ad9e57f
Item 4: join type-reference bindings into one population, without tou…
Aug 11, 2026
1749353
Make ModulePathFileRow actually project from its declared authority
Aug 11, 2026
75a3934
Merge remote-tracking branch 'origin/main' into session/calm-ram-435-…
Aug 11, 2026
574d6ef
Item 5 second half: supply provider rows from the real tree, and hono…
Aug 11, 2026
31e0d5c
Classify the row-supply witness as transport-run, and cite the keywor…
Aug 12, 2026
3e9ac2a
Merge remote-tracking branch 'origin/main' into session/calm-ram-435-…
Aug 12, 2026
a5bf8fd
One typed transport roster; restore two controls I deleted; escape a …
Aug 12, 2026
1d8a2fb
Unbreak compile-clean: ArtifactIdentity collided in the flat namespac…
Aug 12, 2026
32c85f7
Reclassify the transport witness to the arm that reaches WitnessHasEx…
Aug 12, 2026
5428de7
Drop the expected-red module-value row: one witness was buying a whol…
Aug 12, 2026
4c9ce60
Merge main; drop my ArtifactIdentity rename in favour of main's own fix
Aug 12, 2026
d2a7e93
Finish main's rename: a consumer of the removed ArtifactIdentity was …
Aug 12, 2026
a5702fd
Build ordinary loaded closure from accepted bindings
Aug 13, 2026
fc71f2c
Take the basename out of the artifact identity: the dag/ root is repr…
Aug 13, 2026
d07bc0f
Run the closure on the real tree, and locate the refusal it produces
Aug 13, 2026
6c2f5e9
Make the candidate universe total, and stop reporting refusal as success
Aug 13, 2026
2e86259
Count the declarations behind an unbound name: the filter is dropping…
Aug 13, 2026
0130dad
Render every failing projection's class: my two-declarer defect did n…
Aug 13, 2026
9cb0a9d
Exposure is a fact about the declaration, not the role its file plays
Aug 13, 2026
6fd876a
Merge remote-tracking branch 'origin/main' into session/calm-ram-435-…
Aug 13, 2026
af9963c
Regenerate ci.yml and ROADMAP.md from their authorities after the mai…
Aug 13, 2026
b460341
Module values are module members, and the exposure witnesses lost the…
Aug 13, 2026
fe719b6
Bind the head of an expression path, so a module reference admits its…
Aug 14, 2026
d72aba6
A constructor is a module member wherever it is nested
Aug 14, 2026
a4f6bbd
Re-measure the namespace frontier, and name the head-only widen as a …
Aug 14, 2026
b4f16ae
A projection whose member does not exist may not produce a dependency
Aug 14, 2026
43dec44
Admit the match-arm binder witness as structurally red, at exact grain
Aug 14, 2026
b9b4794
Merge remote-tracking branch 'origin/main' into session/calm-ram-435-…
Aug 14, 2026
f6b63fa
Regenerate .gitattributes and ci.yml from their authorities after the…
Aug 14, 2026
7176a95
Merge remote-tracking branch 'origin/main' into session/calm-ram-435-…
Aug 14, 2026
d1979f0
ci_spec: add the positional clamp row the known-red probe batch enrol…
Aug 14, 2026
0468909
floor plan: give the known-red probe batch its three missing enrollme…
Aug 14, 2026
e2d6bb3
Merge remote-tracking branch 'origin/main' into session/calm-ram-435-…
Aug 14, 2026
ccb9d22
Commit A, first half: the ReferencePath carrier and its two-spelling …
Aug 14, 2026
fa205f3
roadmap: correct the namespace frontier and name the match-arm prereq…
Aug 14, 2026
a7231be
Commit A, second half: resolve a ReferencePath, and regen the seed th…
Aug 14, 2026
abf75f1
Merge remote-tracking branch 'origin/main' into session/calm-ram-435-…
Aug 15, 2026
4d78be3
Commit A controls: ambiguity at both grains, and a third state for or…
Aug 15, 2026
d35b4fe
Finish ReferencePath: longest module prefix, multi-segment descent, a…
Aug 15, 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
5 changes: 5 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,7 @@ src/v1/stage0/src/std_pareto.rs merge=generated-artifact
src/v1/stage0/src/std_process_termination.rs merge=generated-artifact
src/v1/stage0/src/std_realization_schedule.rs merge=generated-artifact
src/v1/stage0/src/std_reference_binding_observation.rs merge=generated-artifact
src/v1/stage0/src/std_reference_derived_closure.rs merge=generated-artifact
src/v1/stage0/src/std_roster_frontier.rs merge=generated-artifact
src/v1/stage0/src/std_serialization.rs merge=generated-artifact
src/v1/stage0/src/std_source_annotation.rs merge=generated-artifact
Expand Down Expand Up @@ -205,11 +206,15 @@ src/v1/stage0/src/v1_std_core.rs merge=generated-artifact
src/v1/stage0/src/v1_test_non_ascii_perf_fixture.rs merge=generated-artifact
src/v1/stage0/src/v1_tests_claim_caret_parse_smoke_test.rs merge=generated-artifact
src/v1/stage0/src/v1_tests_claim_dag_parse_continuation_operator_witness_test.rs merge=generated-artifact
src/v1/stage0/src/v1_tests_claim_import_deletion_bridge_witness.rs merge=generated-artifact
src/v1/stage0/src/v1_tests_claim_namespace_reference_derived_closure_production_admissions_witness_test.rs merge=generated-artifact
src/v1/stage0/src/v1_tests_claim_occurrence_binding_parser_walk_witness_test.rs merge=generated-artifact
src/v1/stage0/src/v1_tests_claim_occurrence_identity_debt_receipt_test.rs merge=generated-artifact
src/v1/stage0/src/v1_tests_claim_ordinary_frontend_observation_test.rs merge=generated-artifact
src/v1/stage0/src/v1_tests_claim_parser_declaration_category_matrix_witness_test.rs merge=generated-artifact
src/v1/stage0/src/v1_tests_claim_parser_declaration_matrix_support.rs merge=generated-artifact
src/v1/stage0/src/v1_tests_claim_pattern_binder_declaration_node_test.rs merge=generated-artifact
src/v1/stage0/src/v1_tests_claim_reference_derived_closure_witness_test.rs merge=generated-artifact
src/v1/stage0/src/v1_tests_claim_required_expr_newline_continuation_test.rs merge=generated-artifact
src/v1/stage0/src/v1_tests_claim_v1_annotation_binding_test.rs merge=generated-artifact
src/v1/stage0/src/v1_tests_claim_v1_annotation_capture_test.rs merge=generated-artifact
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml

Large diffs are not rendered by default.

14 changes: 13 additions & 1 deletion ROADMAP.md

Large diffs are not rendered by default.

23 changes: 22 additions & 1 deletion dag/gunbc/ci_layer_roots.dag

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions dag/gunbc/ci_spec.dag
Original file line number Diff line number Diff line change
Expand Up @@ -258,8 +258,11 @@ data gunbc_ci_floor_batch_clamp_params: List<RunnableBatchClamp> = [
gunbc_ci_floor_positional_clamp(overhead_seconds: 540, per_unit_ms: 0),
gunbc_ci_floor_positional_clamp(overhead_seconds: 120, per_unit_ms: 0),
gunbc_ci_floor_positional_clamp(overhead_seconds: 125, per_unit_ms: 0),
gunbc_ci_floor_positional_clamp(overhead_seconds: 240, per_unit_ms: 1000),
]

data gunbc_ci_v1_envelope_known_red_probe_clamp_basis_note: String = "V1-ENVELOPE KNOWN-RED PROBE ROW (the last positional row, added 2026-08-14 on PR #8115): enrolling a row in gunbc.explicit_witness_admission known_red_probe_v1_envelope_roster makes v1_claim_scoped_known_red_probe_batch_enrolled true, which appends one RunnableDiscoveryBatch to the schedule. It is a discovery batch, not a RunnableScopedWitnessBatch, so it carries no scoped clamp of its own and falls to the positional table — the ENROLLMENT COUPLING clause in v2.workflow.ci_floor_plan v1_claim_scoped_known_red_probe_batch_note names exactly this obligation, and it is a fail-closed refusal at arm time rather than a mis-clamp. THE ENROLLMENT THAT GREW THE SCHEDULE, named because this family's template asks for it: src/v1/tests/claim/occurrence_binding_parser_walk_witness_test.dag :: parser_sibling_match_arm_pattern_binder_holds, admitted QuarantineProbeExpectRed because a match-arm pattern binder is stamped ParsedOccurrenceDeclaration with the arm's own ancestors, making the binder a SIBLING of the arm body — structurally red from authored source, not a defect this PR introduced. BASIS, and its honesty class: 95.6s measured wall for the enrolled single row (claim_batch --source-root dag --source-root src/v1 on that entry and function, local x86, cold process). That is NOT a fleet observation — the family's constants are denominated on the arm64 srv host class, and this host is not it — so the 240s overhead is deliberately ~2.5x the local measurement rather than the family's usual 1.6x spread factor, funding the unmeasured host-class difference explicitly instead of pretending the local number is a fleet number. It sits well under v1_claim_scoped_witness_batch's 480s, which shares the dag plus src/v1 envelope over a larger roster, so the ordering between the two rows stays sensible. WHAT THE MEASUREMENT ACTUALLY SPENT: 25.4s of the 95.6 is load_bare_edge_index on one pool entry — the whole-tree bare-reference edge index, a corpus-denominated fixed cost this batch pays like every other resolve, owned by the assembly-decomposition lane and not by this row. per_unit_ms is the signed family witness coefficient 1000, not 0, because the roster is a list that grows: a fixed overhead would silently absorb the second and third enrolled probe. DISSOLVE-ON: the roster empties (the note it enrolls under retires when closure-independent binding makes the dag plus src/v1 envelope unnecessary), at which point the batch unenrolls and this row is deleted with it."

data gunbc_ci_compile_clean_clamp_note: String = "COMPILE-CLEAN LEG CLAMP (prelude coverage, first slice): discharges the compile-clean portion of gunbc_ci_floor_batch_clamp_note FOLLOW-UP ROW (a) — the eager compile-clean install ran OUTSIDE every batch budget and could only red at the step cap, which is how a 15m32s green gate grew past 49 minutes across #7398/#7438 with nothing naming the growth (typecheck-perf investigation, PR #7490). Same shape as the batch clamps: clamp_ms = overhead_seconds*1000 + closure_units * per_unit_ms, where closure_units is the compiled closure's MODULE COUNT — a runtime fact of the scope disposition (whole-tree ~2725 today, affected-set proportional to the diff), so the clamp re-denominates with scope exactly as batch clamps re-denominate with the affected set. Over-clamp is FLOOR-COMPILE-CLEAN-OVER-BUDGET: a typed, located walk refusal (admission grain — the compile receipt's ok is untouched, per the signed admission/verdict split in gunbc_ci_floor_batch_wall_budget_note); never a rerun, never a widen. RED-control hook GUNBC_FLOOR_COMPILE_CLEAN_BUDGET_TIGHTEN_MS lowers the computed clamp (min), never raises. GROWTH DETECTION at row grain is NOT this clamp's job (the family margin ruling, 2026-07-25): per-row 2x drift against dated basis rows rides gunbc.witness_row_cost's comparator over dag/gunbc/compile_clean_cost_basis.tsv — the pass + module_typecheck rows of target/floor-compile-clean-cost-receipt.tsv, basis rows citing arm64 fleet run ids only, BasisAbsent counted until seeded from a cited run's own receipt FILE (the #7475 seeding pattern; an empty basis must count loudly, never read as no-drift). SEEDING SOURCE CORRECTED: this clause used to name the [compile-clean-cost] log lines, because the receipt file had no way off the runner and every row was mirrored into the step log to compensate — ~1,690 lines per floor run, and the same shape cost 8,614 more on the disclosure receipt. The ci job now uploads the receipts as the floor-receipts artifact (gunbc.ci_workflow ci_floor_receipts_upload_step), so seeding downloads the TSV instead of scraping a log, and the writers no longer mirror their bodies. The log lines are GONE, not merely deprecated: a seeding attempt that greps a run log for them will find nothing, which is why this clause is corrected rather than left to rot. BASIS OF THE CONSTANTS (worker-sized, 2026-07-31, from run 30602520347 @ 0ecb898, host srv1-01 arm64, post-#7490 fixes): whole-tree pass 258s over the ~1648-unit whole-tree entry closure (units = the leg's compiled closure module count, receipted by the first [compile-clean-cost] execution — NOT the ~2725-file module index, which overcounts by pool files outside every entry closure) = ~157ms/unit observed; per_unit_ms 320 is ~2x that rate, funding a full 2x fleet-spread host on top of the observed wall (the family margin ruling: a breach means content grew, never which host answered; pre-fix completing runs spread ~1.8x across hosts) — the batch family's 1000ms coefficient carries 1.4-1.7x the same way; overhead 60s covers the closure-size-independent tail (census fill parse ~13s fleet + governor arm). Whole-tree clamp = 60s + 1648*320ms = ~587s (~2.3x the observed 258s fleet wall). MECHANISM RECEIPTS (local x86, logic-not-cost host): green e2e via gunbc_ci_plan_artifact_plan — pass 310127ms/1648 units, WithinBudget, 1204 module rows, drift basis_absent=1205 counted, exit 0 (run at the pre-resize 200ms sizing; the arm proof is arithmetic-independent and the formula is witness-pinned at the final constants); RED control via GUNBC_FLOOR_COMPILE_CLEAN_BUDGET_TIGHTEN_MS=1 receipted beside it. DISPATCH: operator direction this session ('can we add the budget gating ... i suggest we share that model' — briansrls, 2026-07-31). OPERATOR SIGNATURE (briansrls, 2026-07-31): the worker-sized constants are affirmed as proposed — overhead_seconds 60, per_unit_ms 320 ('the clamp constants you chose are fine, please proceed') — so the refusal arm is signed-live per the family raise discipline; TIGHTENING may still land by ordinary receipt note, and the first fleet observations should tighten per_unit_ms toward the measured rate."

data gunbc_ci_compile_clean_clamp: RunnableBatchClamp = RunnableBatchClamp {
Expand Down
8 changes: 8 additions & 0 deletions dag/gunbc/explicit_witness_admission.dag
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,14 @@ data explicit_witness_admissions: List<ExplicitWitnessAdmission> = [
reason: "the english-language emit-ingest round trip returns false undiagnosed. Owner: the S2 emit family / behavioral-closure lane.",
dissolution: unbound_dissolution(description: "the S2 behavioral-closure lane greens it locally, then this row deletes")
),
known_red_probe(
entry: "src/v1/tests/claim/occurrence_binding_parser_walk_witness_test.dag",
f: "parser_sibling_match_arm_pattern_binder_holds",
kind: CorpusWitnessKind,
budget: FastLaneEvalBudget,
reason: "STRUCTURALLY RED FROM AUTHORED SOURCE, and the parser is the reason rather than the witness. v1.compiler.parse stamps a match-arm pattern binder with the ARM's ancestors, so the binder is a SIBLING of the arm body rather than an ancestor of it; the binder's containment-derived LexicalExposure therefore has an exposing scope that does not contain the arm-body reference, and the isolation this witness asserts -- each arm's reference binding its own binder and refusing the other arm's -- cannot hold from authored source however the exposure authority is written. The file's own parser_sibling_match_arm_pattern_binder_holds_note has said so since the B1 rollup; what it lacked was an admission row, so the function stayed an ordinary green-required test that happened to be selected only when something in its import closure changed. It was newly selected by gunbc#8115's dag/std/occurrence_binding_resolve change and read as that PR's regression; it is not, and two bisect cycles on the wrong subject were the cost of the missing row. The equivalent property IS discharged, on a hand-built transport where the arm body nests under the binder occurrence, by occurrence_binding_candidates_witness -- so this row loses no coverage, it stops a known-structural red from being rediscovered as a new one.",
dissolution: unbound_dissolution(description: "the parser nests arm-body references under pattern-binder occurrences, or an equivalent exposure derivation lands that does not require that nesting; then this witness greens from authored source, this row deletes, and the function re-enrolls in namespace_reference_derived_closure_parser_integration_holds as its own note directs")
),
known_red_probe(
entry: "dag/test/claim/legacy_test_behavior_disposition_acceptance_test.dag",
f: "legacy_test_behavior_unclassified_frontier_is_zero",
Expand Down
Loading
Loading