Skip to content

Chore/ci security coverage hooks reproducible builds - #454

Merged
maugauwi-hash merged 4 commits into
ethos-protocol:mainfrom
james2177:chore/ci-security-coverage-hooks-reproducible-builds
Aug 31, 2026
Merged

Chore/ci security coverage hooks reproducible builds#454
maugauwi-hash merged 4 commits into
ethos-protocol:mainfrom
james2177:chore/ci-security-coverage-hooks-reproducible-builds

Conversation

@james2177

Copy link
Copy Markdown
Contributor
  • Security audit automation: wired clippy-based gates (no unwrap/panic, checked arithmetic, must-use token transfers, heuristic auth/pause scan) into a new security-lints CI job; annotated docs/security-audit-checklist.md with CI-gated/partial/manual-only status per item and a coverage summary table.
  • Coverage reporting: scripts/test.sh now supports COVERAGE=1 via cargo-llvm-cov, generating lcov + HTML reports with a 70% minimum threshold gate; added a coverage CI job that archives reports as artifacts; documented expectations in docs/best-practices.md.
  • Git hook install reliability: scripts/install-hooks.sh now verifies each hook post-install, prints an install summary, and repairs partial installs (e.g. stripped exec bit) on idempotent re-run; added scripts/test-install-hooks.sh validating install/re-run/repair from a clean clone.
  • Reproducible builds: scripts/build.sh pins rustc 1.96.1 and normalizes SOURCE_DATE_EPOCH/RUSTFLAGS/incremental settings, emitting WASM hash manifests; added .github/workflows/reproducible-build.yml that builds twice and fails CI if hashes diverge; documented the process in docs/deployment-guide.md.

Closes #420
Closes #421
Closes #422
Closes #423

Wire checklist items (no-unwrap/panic, checked arithmetic, must-use
token transfer results, heuristic auth/pause guard scan) into a new
`security-lints` required job in security.yml, and annotate
docs/security-audit-checklist.md with per-item automation status
(CI-gated / partial / manual-only) plus a coverage summary table.
scripts/test.sh now supports COVERAGE=1 to run cargo-llvm-cov, emitting
lcov + HTML reports and failing under a configurable MIN_COVERAGE floor
(default 70%). Add a coverage job to ci.yml that archives the report as
a build artifact on every run, and document coverage expectations for
new/changed files in docs/best-practices.md.
install-hooks.sh now records a per-hook install result, runs a
post-install verification pass (file exists + executable), prints a
clear summary of installed vs. failed hooks, and repairs partial
installs (e.g. stripped exec bit) on idempotent re-run instead of
silently no-op'ing. Add scripts/test-install-hooks.sh, which clones the
repo into a temp directory and validates install, idempotent re-run,
and partial-install repair from a clean checkout.
Pin scripts/build.sh to rustc 1.96.1 (matching CI), normalize
SOURCE_DATE_EPOCH/CARGO_INCREMENTAL/RUSTFLAGS remap-path-prefix so
identical source always yields identical bytes, and emit a
wasm-hashes.txt manifest after each build. Add
.github/workflows/reproducible-build.yml, which builds twice from the
same commit with isolated CARGO_HOME dirs and fails CI if the resulting
WASM hashes diverge. Document the reproducible build steps in
docs/deployment-guide.md.
@drips-wave

drips-wave Bot commented Aug 29, 2026

Copy link
Copy Markdown

@james2177 Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@maugauwi-hash
maugauwi-hash merged commit 08e0d02 into ethos-protocol:main Aug 31, 2026
2 of 7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants