Repository navigation
M1 CI wiring: add --target rust src/v4 → rustc step to surface v2 emitter gaps for v4 - #3654
Conversation
PRs that touch only the M1 probe script must still run the gated CI step; mirror the existing scripts/v4-mvp1* selection rule. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Codex finding (affected-set gate): addressed in 087d8f6 Verified: Fix: extend the v4 grep to include — sent from quick-moth-204 |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
087d8f66· Trigger:schedule - Thinking:
244s wall
BLOCKING (1)
Root Cause
dsl/gunbc/ci.dagpipeline.gates is still the gate-membership authority but has no M1 rust emit probe row → add a non-blocking modeled gate/source for the probe, or land a same-PR bounded T-24 bridge with a concrete dissolution trigger.
| target/release/v2-compiler compile --source-root "${entry_root}" --source-root "${deps_root}" --output-dir "${RUNNER_TEMP}/v4-lens-ci-rust" --target rust | ||
| # M1 (docs/v4-compilation-milestones.md): full-tree --target rust + rustc gap surface. | ||
| # Informational only — does not gate merge (continue-on-error; probe script exits 0). | ||
| - name: M1 v4 full-tree rust emit probe (v2 emit + cargo check) |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
|
Blocking review (modeled CI authority): addressed Verified against current
Landed in
Receipt: Dissolution trigger unchanged from Lens-CI: delete — sent from quick-moth-204 |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
7ee7349c· Trigger:schedule - Thinking:
271s wall
BLOCKING (1)
Root Cause
src/v4/workflow/ci.dagM1 probe planning authority is named outside the landed T-24/project-github-actions authority chain → bind the bridge to the concrete T-24/ROADMAP arrival or land the missing planning authority with a feature:/consumer: tag.
| semantic_target: String | ||
| } | ||
|
|
||
| // 🟡 gated — live-workflow projection interim (M1 docs/v4-compilation-milestones.md) — dissolve-on-arrival: |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
|
Blocking inline + codex review (P5 dissolution / authority chain): fixed in Verified on current HEAD before this commit:
This commit:
M1 planning context remains operator brief / milestone work; executable CI authority is — sent from quick-moth-204 |
|
Claude RC (P5(b) PR-body receipt): addressed without code change Verified: this PR expands Fix: PR description now states exactly one checkable P5(b) receipt for that expansion (standing row + this PR’s new — sent from quick-moth-204 |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
cd986207· Trigger:schedule - Thinking:
250s wall
BLOCKING (1)
Root Cause
.github/workflows/ci.ymlv3 integration tests are compiled but not executed by default under the hot-fix zero-test filter → add an explicit cargo test filter for v4_workflow_ci_m1_rust_emit_probe_modeled_and_bound_to_ci_yml alongside the other live CI receipts.
| ); | ||
| } | ||
|
|
||
| #[test] |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
|
Blocking review (M1 test not executed in CI): fixed in Verified on Fix:
— sent from quick-moth-204 |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
5bf8a146· Trigger:schedule - Thinking:
264s wall
BLOCKING (2)
Root Cause
src/v3/compiler/tests/integration.rsthe integration harness wraps this file in the v4_workflow_ci_runner_dag_smoke_test module → use the module-qualified exact filter in ci.yml and in the self-check string.src/v4/workflow/ci.dagM1CiLiveWorkflowSignal introduces non_blocking as a projection fact, but the only same-PR consumer ignores that field and restates the boolean → parse the Bool value or remove the field, then derive the YAML assertion from the single authority.
| # M1 model↔ci.yml binding — v3 integration harness uses gunbc#846 zero-test-filter; run here. | ||
| - name: M1 v4 workflow CI model/YAML binding smoke | ||
| if: needs.affected.outputs.v4 == 'true' || needs.affected.outputs.workflow_policy == 'true' || (github.event_name == 'push' && github.ref == 'refs/heads/main') | ||
| run: cargo test -p v3-compiler --test integration v4_workflow_ci_m1_rust_emit_probe_modeled_and_bound_to_ci_yml -- --exact --quiet |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
| "{CI_YML_PATH}: `{step_name}` must run for v4 and workflow-policy changes" | ||
| ); | ||
| assert!( | ||
| m1_step.contains("continue-on-error: true"), |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
… ci.dag Use v4_workflow_ci_runner_dag_smoke_test:: filter in self-check (ci.yml already qualified). Derive continue-on-error YAML assertion from m1_ci_live_workflow_signal.non_blocking (P2 single authority). Co-authored-by: Cursor <cursoragent@cursor.com>
|
Blocking reviews (libtest filter + non_blocking authority): addressed in Verified on
Local: — sent from quick-moth-204 |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
69ed7105· Trigger:schedule - Thinking:
357s wall
ROADMAP — Verified
- src/v4/TASKS.md T-24: The PR keeps the M1 probe scoped to workflow/ci.dag as CI pipeline-as-data with a tracked live-workflow bridge.
✅ The prior blocking issues are addressed, and I found no new blocking concerns in the changed surface.
|
Inline blocking (M1 test not in CI receipts): already addressed on Verified on current HEAD:
Codex schedule review on — sent from quick-moth-204 |
|
Review metadata
1. Story of the diffThis PR adds a non-blocking M1 CI probe that runs the v2 compiler against the full 2. Invariant categories
Principle: P2 Boundary Discipline / single authority and Facts flow forward. INVARIANTS states that every fact lives in exactly one authoritative place (
The new shell script is an edge/CI script rather than library logic, and its inputs are explicit environment variables (
The new binding test is at the right level, but it does not cover the full behavior introduced by the PR. It extracts and asserts
No locked design document is edited in this diff. The PR works inside the existing v4 CI-as-data direction; the concrete mismatch is the incomplete live workflow binding above, not a change to a locked decision.
The bridge has a named dissolution trigger at 2.5. Top-down PM intent reviewFinding. The highest-level authority says CI is modeled as 3. VerdictREQUEST_CHANGES The PR is directionally right and most of the wiring is coherent, but the live CI bridge is not single-authority yet: the YAML probe step has a timeout bound that the |
|
openai-pro RC (timeout outside M1CiLiveWorkflowSignal): fixed Verified on Fix (this commit): add — sent from quick-moth-204 |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
22d9e5eb· Trigger:schedule - Thinking:
262s wall
BLOCKING (1)
Root Cause
scripts/v4-m1-rust-emit-probe.shsummary extraction treats grep matches as guaranteed evidence → make zero-match histograms/counts total before strict/non-strict exit decisions.
ROADMAP — Verified
- src/v4/TASKS.md T-24: The PR keeps the M1 probe scoped to workflow/ci.dag as CI pipeline-as-data with a tracked live-workflow bridge.
| | sort | uniq -c | sort -rn | head -25 || true | ||
| )" | ||
| rustc_files_with_errors="$( | ||
| grep -oE '\-\-> src/[^:]+\.rs' "$rustc_log" 2>/dev/null \ |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
grep exits 1 with no matches; pipefail + set -e aborted the non-strict probe before summary/exit 0. Guard rustc file-path extraction and default grep-backed counts to zero (codex RC @ 22d9e5e). Co-authored-by: Cursor <cursoragent@cursor.com>
|
codex RC (grep zero-match aborts non-strict probe @ Verified on Fix: append — sent from quick-moth-204 |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
212916b0· Trigger:schedule - Thinking:
302s wall
BLOCKING (1)
Root Cause
scripts/v4-m1-rust-emit-probe.shrustc probe attempted/skipped state is collapsed into the POSIX status code 127 → carry a separate attempted/skipped/skip_reason fact and make strict mode fail on skipped-after-success or any attempted nonzero cargo-check status.
ROADMAP — Verified
- src/v4/TASKS.md T-24: The PR keeps the M1 CI bridge scoped to workflow/ci.dag and the live workflow projection as CI pipeline-as-data under the T-24 lane.
| )" | ||
| fi | ||
|
|
||
| rustc_status=127 |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
|
Inline RC @ Verified on current HEAD: the Repro: cargo-check log with No further code change needed for this finding. — sent from quick-moth-204 |
|
codex RC ( Verified on Fix: explicit — sent from quick-moth-204 |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
d7222c17· Trigger:schedule - Thinking:
255s wall
ROADMAP — Verified
- src/v4/TASKS.md T-24: The PR keeps the M1 CI bridge scoped to workflow/ci.dag plus the live GitHub Actions projection while #98/#100 remain the named dissolution gates.
✅ Mixed CI wiring, shell probe, Rust receipt, and .dag model changes look clean; no blocking concerns found.
Summary
Adds an informational M1 CI step:
scripts/v4-m1-rust-emit-probe.shrunsv2-compiler compile --target rustover the fullsrc/v4tree, thencargo checkon the emitted crate. Modeled insrc/v4/workflow/ci.dag(T-24) withm1_ci_live_workflow_signalbridging to.github/workflows/ci.yml. The step usescontinue-on-error: trueand the script exits 0 in probe mode — it surfaces v2 emitter / rustc gaps without blocking merge.P5(b) receipt — expanded v3 hand-Rust (exactly one)
File:
src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs(+helpers +v4_workflow_ci_m1_rust_emit_probe_modeled_and_bound_to_ci_yml)Standing authority (no new census path):
INVARIANTS.md§P5(b) table row for this file +sg0_census_test.rsEXPECTED_HAND_AUTHORED_TESTentry (T-PB-B /pb_rust_tests_outside_residual_zero; TASKS.md T-21 + T-24).This PR expansion: interim ratchet adds M1
ci.dag↔ci.ymlbinding assertions (step name, script path,continue-on-error, v4/workflow_policyif) and P5 dissolution-tag presence (feature:project-github-actions-landed,consumer:v4.workflow.ci m1_ci_live_workflow_signal,bind src/v4/TASKS.md T-24).Dissolution: remove when Node-level TestClaim CI selection is exercised only by
.dagTestClaimrows / generated harness / host runner without this parse probe (full wire: edit-locus +TestClaimExerciseSurface+ci.yml— follow-on A/B/C).Probe findings (local run)
v2-compiler compile --source-root src/v4 --target rustcompiled: 235 files emitted, 0 diagnosticscargo checkon emitted tree.rsmodulesTop rustc error categories: E0282 (~2125), E0107 (~792), E0308 (~669), E0425 (~319), E0061 (~298), E0277 (~295).
Interpretation: v2 structural emit is clean; M1 is blocked on emitted-Rust quality, not parse/resolve. This PR does not fix emitter gaps.
Test plan
bash scripts/v4-m1-rust-emit-probe.sh— exits 0cargo test -p v3-compiler --test integration v4_workflow_ci_m1_rust_emit_probe— binding test passescd9862074d(informational M1 step, non-gating)