Repository navigation
Consolidate the 8-line CI floor into one composed .dag run (collapse redundant resolves) - #5101
Conversation
…tes. Fold the four hand-enrolled Bool witnesses into claim_batch discovery (shared module index) and sequence the three effectful ProcessExit gates behind one ci_floor_gates.dag resolve, cutting the workflow from eight cargo-run lines to two while preserving the 202-witness corpus. Co-authored-by: Cursor <cursoragent@cursor.com>
Add a one-line SCAFFOLD comment in ci.yml pointing at enrolling the four hand-enrolled Bool witnesses as discoverable test fn rows under a scanned dsl root (DESIGN §6). Co-authored-by: Cursor <cursoragent@cursor.com>
…tch. Resolve ci.yml conflict by keeping the two-pass consolidated floor and enrolling main's new power_watt_witness as an explicit claim_batch row. Move SCAFFOLD dissolution comment out of the shell script (inline # broke line continuations and dropped --entry flags). Co-authored-by: Cursor <cursoragent@cursor.com>
4bbe501 to
fba77f3
Compare
|
Verified the claude-opus-4-7 APPROVE findings against
Merge readiness (this HEAD): CI green, — sent from fierce-raven-859 |
|
Verified the cursor/composer-2.5 APPROVE findings against
Merge readiness: ≥2 distinct approvals (claude + cursor), no REQUEST_CHANGES, — sent from fierce-raven-859 |
…batch.rs #5101 superseded this PR's ci.yml scan-dir removal and claim_batch.rs optional-scan-dir change (main now has the consolidated floor + the discovery-OR-explicit-entries guard). Took main's version of both files; this PR's remaining unique contribution is the extdeps witness test fn migration (+ the de-fused gcp witness resolution from the prior merge). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
#5101 reinstated --scan-dir src/v2/test and the extdeps scan-dir on the consolidated claim_batch line. Both are now vestigial: this PR migrated the extdeps witnesses to test fn (discovered via the src/v2 source-root walk), and src/v2/test has no unified_claim_* rows. claim_batch (main's version) allows discovery with no scan-dir when explicit --entry rows are present. Honors the operator request to remove --scan-dir src/v2/test. Verified by execution: claim_batch over src/v2+dsl, no scan-dir, +5 explicit entries -> 207 witnesses pass, 0 fail; all 5 extdeps witnesses discovered. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* WIP: ci transpor tpolicy * WIP: ci transpor tpolicy * Carry the #5092 main-fix into this branch (main-sync dragged in broken file) The dashboard synced main into this branch at 24f2571, before #5092 merged, so the #5077x#5082 breakage (emit_ingest_type_decl_round_trip_test.dag importing the deleted grammar_relation_field_tokens) is now in this tree and fails the CI floor claim_batch resolve. Apply the same approved fix as #5092 (drop the stale import, use ^grammar_relation_field_tokens caret form). When #5092 merges first, this becomes a no-op under squash-merge. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * WIP: ci transpor tpolicy * Resolve merge conflicts: union of test fn migration + main's de-fused gcp witness The auto-committed merge (e2c55aa) left conflict markers in 3 extdeps files. Resolution: keep this branch's representation migration (*_test.dag rename, test fn, no unified_claim row) AND main's post-#5059 semantics — the gcp OAuth2 fork was de-fused, so the corpus witness now asserts ABSENCE (corpus_gcp_oauth_defused_holds = !shows_fork) rather than presence. Receipt and gate rows updated to the new function name + _test.dag path. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Drop the two vestigial --scan-dir flags from the consolidated CI floor #5101 reinstated --scan-dir src/v2/test and the extdeps scan-dir on the consolidated claim_batch line. Both are now vestigial: this PR migrated the extdeps witnesses to test fn (discovered via the src/v2 source-root walk), and src/v2/test has no unified_claim_* rows. claim_batch (main's version) allows discovery with no scan-dir when explicit --entry rows are present. Honors the operator request to remove --scan-dir src/v2/test. Verified by execution: claim_batch over src/v2+dsl, no scan-dir, +5 explicit entries -> 207 witnesses pass, 0 fail; all 5 extdeps witnesses discovered. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Brian Searls <briansrls@gmail.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… landed claim (review #5129) cursor/composer-2.5 REQUEST_CHANGES: CiFloorSpec does not exist on main and dsl/extdeps/github/ci.dag still records ci.yml as hand-edited, so the 'Recently landed' line overstated. Now claims only the verifiable #5101 consolidation; ci.yml generation stays honestly under Next. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* docs: add a simple high-level gunbc ROADMAP task tracker A scannable in-flight task index for gunbc (the compiler/language). Explicitly NOT a second authority — DESIGN.md remains the source of truth for the why and each task's real state is its branch/PR + the marks on the substrate (§3). Product / ctrl features are tracked elsewhere. Records the confirmed root-cause of the cost-lens blind spot: the lens rates subject-program complexity, not the compiler's own pass cost — a self-hosting gap (§7), which is why the ~500x resolve blowup is invisible to it. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * docs(roadmap): correct the resolve-blowup framing — un-enrolled complexity violation, not a new lens The cost-lens 'blind spot' is not a new issue: complexity_lens is general and the budget roster is designed to enroll compiler-stage bodies (waves 2+). Fix is the planned enrollment, not a scaffold. Drops the interim step-count ratchet idea. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * docs(roadmap): correct overstated 'ci.yml generated from CiFloorSpec' landed claim (review #5129) cursor/composer-2.5 REQUEST_CHANGES: CiFloorSpec does not exist on main and dsl/extdeps/github/ci.dag still records ci.yml as hand-edited, so the 'Recently landed' line overstated. Now claims only the verifiable #5101 consolidation; ci.yml generation stays honestly under Next. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * WIP: 6/17 continuity (help me keep track of all the work thats happening/what * docs(roadmap): slim to one line per task with indented breakdown Per operator: each task one line for quick scanning; details go to indented sub-bullets. Promotes the lens-universalization + host-language-ban lane to Now (being dispatched). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Brian Searls <briansrls@gunb.ai> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…se (KeySource-keyed) (#5168) * docs: add a simple high-level gunbc ROADMAP task tracker A scannable in-flight task index for gunbc (the compiler/language). Explicitly NOT a second authority — DESIGN.md remains the source of truth for the why and each task's real state is its branch/PR + the marks on the substrate (§3). Product / ctrl features are tracked elsewhere. Records the confirmed root-cause of the cost-lens blind spot: the lens rates subject-program complexity, not the compiler's own pass cost — a self-hosting gap (§7), which is why the ~500x resolve blowup is invisible to it. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * docs(roadmap): correct the resolve-blowup framing — un-enrolled complexity violation, not a new lens The cost-lens 'blind spot' is not a new issue: complexity_lens is general and the budget roster is designed to enroll compiler-stage bodies (waves 2+). Fix is the planned enrollment, not a scaffold. Drops the interim step-count ratchet idea. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * docs(roadmap): correct overstated 'ci.yml generated from CiFloorSpec' landed claim (review #5129) cursor/composer-2.5 REQUEST_CHANGES: CiFloorSpec does not exist on main and dsl/extdeps/github/ci.dag still records ci.yml as hand-edited, so the 'Recently landed' line overstated. Now claims only the verifiable #5101 consolidation; ci.yml generation stays honestly under Next. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * WIP: 6/17 continuity (help me keep track of all the work thats happening/what * docs(roadmap): slim to one line per task with indented breakdown Per operator: each task one line for quick scanning; details go to indented sub-bullets. Promotes the lens-universalization + host-language-ban lane to Now (being dispatched). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * WIP: 6/17 continuity (help me keep track of all the work thats happening/what * WIP: 6/17 continuity (help me keep track of all the work thats happening/what * Remove resolution-coalescing design doc (review artifact; rationale moved to scope-a PR body) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * WIP: 6/17 continuity (help me keep track of all the work thats happening/what * increment 3: realization materialization arm — reconcile→Share collapse (KeySource-keyed) Re-introduce the trimmed Placement / Materialization (Recompute|Memoize|Share) / RealizedStep vocab in std.realization and add reconcile(steps), which collapses same-KeySource CreateIfAbsent steps into one Share via std.effects.create_double_init_collapsible (the single KeySource-keyed authority — reconcile consumes it, never re-derives KeySource equality). Not Route-C/content-hash gated; the step carries its source EffectShape so the collapse keys on KeySource identity (the ContentHash intent + licensed_by return in increment 4 with cross-tree content-hashing). Discriminating witness (reconcile_share_collapse_witnesses, green by execution): same-KeySource -> one Share; different-KeySource -> two un-Shared; PostAlways never collapses (fail-closed). Fix latent effects.dag arg-name mismatch: create_double_init_collapsible called key_source_eq(a:,b:) but the dsl def is (left:,right:). Latent until now (no dsl consumer); realization.dag is the first. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * fix(realization): dissolve undispositioned is_share predicate; refresh DESIGN.md CI section Two follow-ups on the increment-3 branch: (1) review #5168 (cursor/composer-2.5 REQUEST_CHANGES): std.realization's `is_share` was an undispositioned `is_*` predicate over the Materialization coproduct. reconcile sets `materialization: Share` directly and nothing in std/ reads it back, so its only consumer is the reconcile witness. Per the predicate-dissolution rule + §6 model-just- in-time, a predicate with zero std/ consumers does not belong in std/. Disposition = the reviewer's first option: delete from std/, move the Share match into the witness as a test-local fn. std.realization keeps only the fold-bearing reconcile arm. (2) DESIGN.md CI section refresh: the "two composed passes / claim_batch / ci_gates.dag" paragraph was stale. Replaced with the actual floor — one claim_executor plan pass (ci_floor_plan.gunbc_ci_floor_batches) with marker-driven tree-wide witness discovery (every *_test.dag test fn under both src/v2 and dsl, fail-closed filename hygiene) and a whole-tree dsl compile-clean gate. Verified by execution: dsl compile-clean (281 modules, 0 diagnostics) + reconcile_share_collapse_witnesses => true. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> --------- Co-authored-by: Brian Searls <briansrls@gunb.ai> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Summary
claim_batch --roster-from-discoveryto append explicit--entry/--functionBool witnesses (deduped), so the four hand-enrolled CI witnesses share one module index with the discovered corpus instead of four coldgunbc run --claim-runresolves.dsl/tools/ci_floor_gates.dagcomposing the three effectful ProcessExit gates (rust fmt/clippy selector, emit-host MVP smokes, layering-imports host scan + perturb receipts) behind onegunbc run..github/workflows/ci.ymlCI floor from eightcargo runlines to two composed passes.--entrywitness rows in ci.yml as SCAFFOLD with a named dissolution trigger (enroll as discoverabletest fnunder a scanned dsl root).RED proof receipt (discriminating perturbation)
Perturbations use absolute-path entry overlays (no committed breakage):
Bool witness path (
claim_batch) — keystone forcedfalse:Command:
claim_batch --source-root dsl --entry /tmp/.../rust_stage0_gates_witness.dag --function rust_stage0_gates_witnesses(perturbed copy withfalse &&prefix on keystone).ProcessExit gate path (
ci_floor_gates) — success branch replaced withexit_failure:Command:
gunbc run ... --entry /tmp/.../ci_floor_gates.dag --function main(perturbed copy).Test plan
cargo build -p v1-compiler --release --bin claim_batch --bin gunbccargo clippy -p v1-compiler --bin claim_batch -- -D warningsv2 claim corpus: 202 discriminating witness(es) passed)gunbc run --source-root dsl --source-root src/v2 --entry dsl/tools/ci_floor_gates.dag --function main→ExitSuccessclaim_batch --roster-from-discoverywith no scan-dir and no explicit rows exits 2