Feat/heremetic build v0.3 - #373
Conversation
|
Thanks for the PR. Agreed on the general premise here. Just a couple of small fixes and a rebase and I think it should be good to go. Must-fix
Should-fix
Nits (LOW, non-blocking)
Positives worth calling out
|
7d821ae to
a3b178c
Compare
|
Hey @AadarshLN, friendly nudge -- this has been sitting for about a week since my review. Everything in that review is small and mostly mechanical:
Are you still able to pick this up? Happy to help however works best for you:
No pressure -- just want to make sure this doesn't fall off the radar. The core work (Witness attestation verification, 109 tests) is solid and I'd like to see it land. |
|
Hi @mlieberman85 |
…ticity Replace the CI-text grep for "witness run" with real verification: fetch Witness/runtime-trace attestation artifacts from the repo's latest successful CI run via gh, cryptographically verify the DSSE envelope against the repo's GitHub Actions OIDC identity via Sigstore, and only treat an empty verified network log as a strong PASS signal. A verified attestation that does record network activity is fed into the violation list. Add a verify_witness_attestations config toggle and distinguish gh-not-authenticated from no-artifacts-found in evidence. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…ake gating The Nix-flake strong-hermeticity signal in repro_hermetic_build_handler is gated on RE-01.02 (BuildEnvDeclared) having already PASSed, read via ctx.dependency_results. Without declaring depends_on, the orchestrator's topological sort doesn't guarantee RE-01.02 runs before RE-02.01 in a full audit, so the gate could silently never fire.
…ness_attestations Review feedback on RE-02.01 hermeticity: - _MAX_ARTIFACT_FILES=5 silently capped artifact discovery at 5 alphabetically-sorted candidates, risking a miss on repos with 6+ matched artifacts. Raise the cap to 20 and prioritize filenames matching known attestation-bundle suffixes ahead of generic *.json. - verify_witness_attestations was only documented in the Python docstring, invisible to a maintainer reading the TOML. Add a comment in the RE-02.01 pass section naming the option and its default.
darnit_reproducibility isn't in known-first-party (pyproject.toml), so ruff's isort treats it as third-party, needing a blank-line separation from the actual first-party darnit.* imports. Fixed via ruff --fix.
a3b178c to
3a9bff6
Compare
|
Hi, @mlieberman85 |
Summary
RE-02.01 (HermeticBuild) v0.2 treated any CI text mentioning witness run as a strong PASS signal — but that only proves the tool ran, not what it observed. This PR moves to v0.3: real, cryptographically verified attestation evidence.
Type of Change
Framework Changes Checklist
If this PR modifies the darnit framework (
packages/darnit/):docs/architecture/framework-design.md) if behavior changeduv run python scripts/validate_sync.py --verboseand it passesControl/TOML Changes Checklist
If this PR modifies controls or TOML configuration:
Testing
uv run pytest tests/ -v)uv run ruff check .)Additional Notes