Repository navigation
MachineShape construction wall: compile-gated single-constructor discipline - #6698
Conversation
|
Addressed: The finding was valid.
— sent from proud-fox-374 |
…port x #6663 field wall) Partial revert of 4a60303: src/v2/std/node.dag, materialize.dag, materialize_witness_test.dag, inert_carrier.dag, and the DESIGN Sec-3-thread note pair (carrier + generated doc together). Keeps #6686's orthogonal cli_run.rs nfr-roster backfill (reverting it would re-red the falsifier lane). Root cause (proven by execution): #6663's new MissingField presence check resolves a literal's expected type by unqualified name through the flat module type env; #6686's 'import std.types { ContentHash }' in v2.std.node pulls dag-root std.algebra into the typecheck closure of every v2 module importing v2.std.node (704 files), so dag-root Monoid/Semigroup/BooleanAlgebra/ OrderedRing/CommutativeMonoid/CommutativeSemiring/AbelianGroup shadow the v2.std.algebra declarations at 28 literal sites in src/v2/std/{diagnostic,logic,nat,integer}.dag -> ci_floor_plan resolve fails -> every main push red. Neither PR alone was red: zero file overlap, merged 31 minutes apart, and the squash union tree was never CI'd (the PR's only CI run began 8 minutes before #6686 landed). Receipt: on the 60286e0 tree with the same seed binary, reverting exactly this .dag surface takes the plan resolve from 28 missing-required-field errors to green with the floor executing witnesses (control: #6678/#6685 left in tree). Re-land trigger (dissolution): the wall's presence leg consults the resolver's binding (or fails closed on ambiguous names) instead of the flat-env name lookup; the follow-up re-lands these files with that fix, using this exact 28-error tree as the RED control. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
da58cdb to
cf6a57d
Compare
…poisoning surface) The floor's inert_carrier_no_unrostered_or_stale witness reds without it: the LocalAlias fixture it rosters landed in #6641, not #6686 — the roster line was a bundled orthogonal fix (same class as the kept cli_run.rs backfill), not part of the hash-grounding surface. Receipt: local floor on the revert tree, 300 PASS / 1 FAIL (this witness), FAIL clears with the line restored. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
cf6a57d to
5d99afc
Compare
|
CI fix pushed ( Root cause: pre-existing main-red from #6663 field wall × #6686 Floor job is running (resolve phase no longer failing at ~2m like prior runs). Proper wall fix (scope-correct binding lookup) remains operator-coordinated for main re-land. — sent from proud-fox-374 |
|
Review artifact Checked at
No code changes from this review. — sent from proud-fox-374 |
5d99afc to
3f29af2
Compare
|
Addressed All three findings were valid. The
The interim main-unbreak belongs on a separate PR (operator/ — sent from proud-fox-374 |
3f29af2 to
6bca004
Compare
…immune (rustfmt::skip) Batch-4 generated_artifact_drift_gate_passes red on this PR is the first run of that gate since main broke at 60286e0 -- #6677 landed its derived crate-layout artifact during the red window, so no tree ever executed batch 4 against it. Two writers disagreed on one artifact: the wet leg (stage0_crate_layout_emit.dag) emits plain multi-line arrays, while the committed bytes were rustfmt'd (trailing comma, collapsed one-liner). Committed bytes: fmt-clean, drift-red; emitter bytes: drift-clean, fmt-red -- no tree could satisfy both gates. Fix: the emitter stamps #[rustfmt::skip] on both consts, so its output is the fixed point of cargo fmt; artifact regenerated via main_wet. Receipts: wet regen leaves the tree clean, cargo fmt --check -p v1-compiler green, regen_stage0 --verify divergence 0. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
867545b to
002a20b
Compare
|
Addressed
Merge order: #6701 → rebase this onto — sent from proud-fox-374 |
Rebuilt from origin/main per operator recovery: three-file scope only (lens, compile enrollment, claim witnesses). Stacked on #6687 for std.machine_shape / extdeps.gpu.machine_shape subjects — no Phase 1 content copied. Removed unused std.algebra import that poisoned CI resolve. Co-authored-by: Cursor <cursoragent@cursor.com>
Replace is_empty + list_head/HeadAbsent absorb arm with Cons/Empty fold match — HeadAbsent silently accepted on invariant violation (§5). Co-authored-by: Cursor <cursoragent@cursor.com>
|
Review artifact 38618 (composer-2.5 APPROVE): verified — no code changes. Checked at
— sent from proud-fox-374 |
|
Review artifact 38619 (opus APPROVE): verified — no code changes. Checked at
— sent from proud-fox-374 |
002a20b to
49e1b5d
Compare
|
Review artifact 38634 (composer-2.5 APPROVE): verified — no action required. Checked at
— sent from proud-fox-374 |
|
Review artifact 38636 (opus APPROVE): verified — observation acknowledged, no code change. Checked at
On the non-blocking flag: agreed — when — sent from proud-fox-374 |
…-machine-shape-construction-walls
Main (#6698) added docs/plans/emitted-crate-partition-design.md without an inbound link; doc_graph_has_no_orphan_docs reded after merge. Co-authored-by: Cursor <cursoragent@cursor.com>
Main (#6698) added docs/plans/emitted-crate-partition-design.md without an inbound link. Add open-thread row in design_document.dag authority (not hand-edited DESIGN.md) so doc_graph and generated_artifact drift gates both pass. Co-authored-by: Cursor <cursoragent@cursor.com>
* Tier-2 homonym gate: split census ambiguity from reachability leg Census ABSENT must refuse the ambiguity leg (§5), not collapse to non-ambiguous; reachability invariants carry the gate until census coverage widens on main. Co-authored-by: Cursor <cursoragent@cursor.com> * Tier-2 census refusal: emit counted diagnostics and assert ABSENT RefusedAbsent arm now prints typed located refusals and reports 3/3 count; snapshot test asserts ABSENT as dissolve trigger when Co-authored-by: Cursor <cursoragent@cursor.com> #6640 widens census coverage. * Fix CI: link emitted-crate-partition-design into doc graph Main (#6698) added docs/plans/emitted-crate-partition-design.md without an inbound link. Add open-thread row in design_document.dag authority (not hand-edited DESIGN.md) so doc_graph and generated_artifact drift gates both pass. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Brian Searls <briansrls@gunb.ai> Co-authored-by: Cursor <cursoragent@cursor.com>
Summary
Compile-gated MachineShape single-constructor discipline — only sanctioned modules (
std.machine_shape,extdeps.gpu.machine_shapecatalog fill, test/claim witnesses) may materializeMachineShaperecord literals.This PR's diff (3 files, stacked on #6701):
src/v2/lens/machine_shape.dag— module-contextfold_node_topdowngate;Cons/Emptyfail-closed match (determinism precedent, notHeadAbsentabsorb)src/v2/compiler/00_compile.dag— enrolled inalways_required_root_lensesdag/test/claim/machine_shape_construction_wall_test.dag— synthetic RED/GREEN fixturesStacked on #6701 (not bundled)
Base branch:
session/vivid-owl-803(#6701). The interim main-unbreak (#6686hash-grounding revert + algebra import hygiene) lives exclusively in #6701 — this PR does not widen the fnv1a64 fork. Merge #6701 first, then rebase this ontomain.Also stacked on #6687 for
std.machine_shape/extdeps.gpu.machine_shapesubjects.Test plan
git diff --stat origin/session/vivid-owl-803shows only the 3 files above