CI validation (F5)
The MVP is now self-validating. Every push to main and every pull
request runs cargo fmt --check, cargo clippy --all-targets -- -D warnings, cargo test --all-targets, and cargo build --release
on both stable and beta toolchains.
CI runs
- Run #1 (commit
d5dbd53): 1m 3s — bothstableandbeta✅ - Run #2 (commit
1007398): 1m 4s — bothstableandbeta✅- Added
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=trueto opt into Node
24 early, before the 2026-06-16 forced default and 2026-09-16
removal. Runner is on Node 24 now;actions/checkout@v4works.
- Added
Workflow: https://github.com/LOUST-PRO/loust-llm-mempipe/actions/workflows/ci.yml
Workflow design
- Matrix:
stable+beta,fail-fast: false(so a beta breakage
is visible even if stable passes). - Cache:
Swatinem/rust-cache@v2(registry +target/). - Permissions:
contents: readonly. No secrets, no write tokens,
nopackages:scope. - Security: zero
${{ github.event.* }}interpolations inrun:
blocks. The only${{ }}reference ismatrix.rustwhich resolves
to static"stable"/"beta"values declared in the workflow
file, not external input. No command-injection vectors. - Supply chain: actions pinned by major tag (
@v4,@v2,
@masterfordtolnay/rust-toolchain).
What CI catches
- Formatting drift (
cargo fmt --check) - Lint regressions, even in tests (
cargo clippy --all-targets) - Test failures on either toolchain (catches features that stable
has but beta doesn't, or vice versa) - Release build breakages (the path
cargo installexercises)
Final MVP status
| Phase | Scope | Status |
|---|---|---|
| F0.1 | Pre-publish audit | ✅ done |
| F0.2 | Org hardening | ✅ done |
| F1 | Skeleton + contracts | ✅ v0.1.0 |
| F2 | ChatGPT adapter MVP | ✅ v0.2.0 |
| F3 | Pipeline core | ✅ v0.3.0 |
| F4 | CLI ergonomics | ✅ v0.4.0 |
| F5 | CI validation | ✅ v0.5.0 |
| F7 | ❌ cancelled |
cargo install loust-llm-mempipe ships you the working MVP.