Install typediagram in the corpus workflow so the accuracy gate can build - #353
Open
Wamwea wants to merge 3 commits into
Open
Install typediagram in the corpus workflow so the accuracy gate can build#353Wamwea wants to merge 3 commits into
Wamwea wants to merge 3 commits into
Conversation
…uild The corpus accuracy gate failed all three of its scheduled runs at compile time because corpus.yml never installed the typediagram CLI that deslop-core's build.rs shells out to. Adds the install step (pinned to the same 0.11.0 as ci.yml and make setup), aligns checkout/setup-node/cache action versions with ci.yml, and pins the invariant with a YAML-parsing E2E test: every workflow job that invokes cargo or make must install the Makefile-pinned typediagram before its first compiling step.
CI runs a newer stable rustfmt that joins three read/with_context chains onto single lines within the 100-column budget; the local 1.96 rustfmt accepted either form. Formatting only, no semantic change.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
TLDR
Installs the
typediagramCLI in the corpus workflow so the real-repository accuracy gate can compiledeslop-coreand actually run — it had failed all three of its scheduled runs at build time, before scanning a single repository — and pins the invariant with a workflow-conformance E2E test. Closes #347.Details
.github/workflows/corpus.yml([CORPUS-CI]): newInstall typediagramstep (npm install -g typediagram@0.11.0, matchingci.ymlandmake setup), placed aftersetup-nodeand before anything that compiles.deslop-core'sbuild.rsshells out totypediagramto generate the IPC wire models, so every scheduled run died withspawnSync typediagram ENOENT~70s in. Also aligns action pins withci.yml:actions/checkoutandactions/setup-nodev4→v7 (clears the Node 20 deprecation warnings noted in Corpus accuracy gate has never run: corpus.yml omits the typediagram install, so build.rs fails before any repository is scanned #347), plusactions/cachev4→v6 (a drift the issue missed).crates/deslop/tests/issue_347_workflow_typediagram_install.rs([CORPUS-CI]): parses every.github/workflows/*.ymlas YAML — no text pattern-matching — and asserts that every job invokingcargoormakeinstallstypediagrambefore its first compiling step, pinned to the single version the Makefilesetuptarget installs. This enforces the CLAUDE.md dependency-sync rule acrossci.yml(4 jobs),corpus.yml, andrelease.ymlin one place.yaml-rust2 = "=0.11.0", exact-pinned in the workspace table per convention;Cargo.lockchange is purely additive (51 insertions, 0 deletions).make test-corpus-ci(the exact command the workflow runs) completed for the scheduled slice and produced the harness's first-ever measurements — tokio: 758 files / 168,480 LOC / 1,713 clusters / 20.0% / 12.5s / 1,274 MB; nest: 1,726 files / 115,848 LOC / 1,220 clusters / 29.9% / 18.8s / 866 MB. Thenest/determinismbaseline (duplication_percent is nondeterministic across runs on an unchanged tree (0.191pp spread over 9 runs) — makes --fail-over CI gates flaky #301) reproduced exactly as recorded incorpus/known-failures.json([KNOWN], clusters 1226 vs 1222) — its first confirmation by a completed run. No[NEW], no[FIXED?].No public API, CLI flag, report format, or spec ID changes.
How Do The Automated Tests Prove It Works?
workflows_that_compile_the_workspace_install_pinned_typediagram_firstwas verified red against the pre-fix corpus.yml (install step temporarily removed): it fails withcorpus.yml job 'corpus' compiles the workspace but never installs typediagram— the exact Corpus accuracy gate has never run: corpus.yml omits the typediagram install, so build.rs fails before any repository is scanned #347 defect, not a setup error — and passes with the fix in place.corpusjob, at least fourci.ymljobs, and therelease.ymlbuild job, so a predicate regression fails loudly instead of passing vacuously.cargo/makestep (where the build would already have failed), and the version-shape assertion rejects non-exact pins such astypediagram@latest, which would satisfy version sync while abandoning pinning.make test-corpus-ciaborted insidebuild.rson any machine without a globaltypediagram; after it, the run completes and reports per-repository measurements (see Details).Local
make cinote: the shared working tree currently holds three untracked red-by-design accuracy tests from in-progress sessions (#298, #331, #342) plus the pre-existing timing-dependentcpu_throttle_knobfailure (filed as #352), so the fail-fast local suite stops red on those external causes. Evidence that this diff is clean: all 119 other test binaries pass when run individually, fullmake lintis green,cargo clippy --all-targetsis clean, and a Deslop self-scan reports zero duplication clusters involving the new test.