Skip to main content
- Phase 098 release pipeline rescue. Fixes three Phase 096 impl artifacts that broke the v1.5.2 release pipeline in production. (a)
cargo-publish-dry-run short-circuit consolidated into a single logical shell with ; \ continuations; previously the recipe was split across multiple @-prefixed Make lines, so the publish=false exit 0 only exited its own subshell while Make continued through staging and cargo publish. (b) Duplicate ls -1 .casca-cache/dist-npm/ line removed from npm-pack-all-prebuilt. (c) lint-plus-policy.yml on: push: block gains a branches: ['**'] filter (Forgejo-documented push.branches syntax) so the lint workflow fires on branch pushes only; release.yml retains exclusive ownership of tag-push coverage via preflight.
- Section G retroactive audit identified the same multi-
@-shell anti-pattern in license-check, npm-pack-all, and release-preflight-prebuilt. All four affected recipes consolidated into single logical shells.
- New structural gate: a multi-
@-shell anti-pattern detector flags any recipe containing exit inside if ... fi followed by a separate @-prefixed Make line (independent shell), with explicit PASS/FAIL output.
- New structural gate: a behavioral-gate meta-gate enforces four conditions on every shell behavioral gate in the design's Section J, H, M, namely strict mode (
set -euo pipefail) as the first non-comment line, trap ... EXIT registered, the trap body preserves the pre-trap exit status, and the success echo as the final executable line. Verified 8 gates against the post-fix design.
- Local validation gate:
make release-preflight measured at 15.53 seconds from warm bootstrap state, well within the under-5-minute binding.
- Phase 094, 095, 096 contracts preserved unchanged: no workflow dispatch or workflow run trigger substrings,
casca-build-state.tar producer + consumer + signature checks intact, cross-workflow bootstrap cache mechanism intact, prebuilt-target structure preserved, source-freeness BFS gate still PASSes, site-deploy job-level guard preserved, cargo-publish-dry-run pre-cargo ordering preserved.