You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .github/workflows/ci.yml
+9Lines changed: 9 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -36,6 +36,15 @@ jobs:
36
36
env:
37
37
SOURCE_DATE_EPOCH: "1704067200"
38
38
run: go test ./...
39
+
- name: W2 unset-epoch eval stability
40
+
# Must not inherit the pinned SOURCE_DATE_EPOCH from the prior step.
41
+
# Proves canonical evaluation bytes stay stable when the epoch is unset.
42
+
if: runner.os != 'Windows'
43
+
env:
44
+
SOURCE_DATE_EPOCH: ""
45
+
run: |
46
+
unset SOURCE_DATE_EPOCH || true
47
+
go test ./internal/clock/ ./internal/ir/ ./internal/validate/ -count=1 -run 'TestRejectInvalidSourceDateEpoch|TestCanonicalEvaluationStableWithoutEpoch|TestCanonicalEvaluationStableAcrossHOME|TestValidateRejectsInvalidSourceDateEpoch|TestLegacyEvaluationAdapterRoundTrip|TestMarshalCanonicalStable|TestRFC3339ForEvidenceStableWithoutEpoch'
Copy file name to clipboardExpand all lines: CHANGELOG.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,8 @@
2
2
3
3
## Unreleased (on `main`, not yet pinned — Action pin stays `@v0.5.2`)
4
4
5
+
-**W2 eval/receipt (minimal)** — reject invalid `SOURCE_DATE_EPOCH` (no silent wall-clock fallback); split canonical `curbpack-evaluation:1` from `curbpack-run-receipt:1`; write `latest_evaluation.json` / `latest_receipt.json`; keep legacy `latest_failure.json` / `latest_result.json` via adapter; omit synthetic SLSA `buildFinishedOn`; canonical evaluation stable across HOME when epoch unset; CI leg runs unset-epoch stability tests without inheriting the pinned epoch. Explicit `as_of` binding and content-addressed digest store remain open. Pin stays `@v0.5.2`. Not certification.
6
+
5
7
## v0.5.5
6
8
7
9
High-trust launch readiness — containment, FG closures in the advertised binary, installer version-tag validation. Action pin stayed `@v0.5.2`.
Copy file name to clipboardExpand all lines: docs/launch-status.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -69,7 +69,7 @@ These are not closed by compiling binaries or by the passing regression tests.
69
69
70
70
| Gate | Remaining work | Source |
71
71
|---|---|---|
72
-
| Canonical evaluation and receipt |Separate wall-clock, agent and pathway metadata from canonical evaluation; bind complete rule/input bytes and explicit `as_of`; freeze the versioned format |[SDD W2 and W5](software-design-document.md#12-sequential-work-packages), [current payload](../internal/ir/gatefailure.go)|
72
+
| Canonical evaluation and receipt |**Partial (this slice):** invalid `SOURCE_DATE_EPOCH` rejected (no silent wall-clock fallback); canonical `latest_evaluation.json` omits timestamp/agent; `latest_receipt.json` holds ops metadata; legacy `latest_failure.json` / `latest_result.json` via adapter; SLSA sidecar omits synthetic `buildFinishedOn`; canonical bytes stable across HOME when epoch unset. **Still open:**explicit pack `as_of` binding, content-addressed digest store beyond `latest_*`, TMPDIR/locale axes, full schema freeze (W5) |[SDD W2](software-design-document.md#12-sequential-work-packages), [evaluation IR](../internal/ir/evaluation.go), [eval receipt tests](../internal/validate/eval_receipt_test.go)|
73
73
| Transactional persistence and hostile concurrency | Cache files are individually replaced, but three aliases are not one transaction. Descriptor-based containment and concurrent directory replacement remain outside the path-check guarantee |[cache writer](../internal/validate/cache_write.go), [path jail](../internal/pathjail/pathjail.go)|
74
74
| Resource and command guarantees | Evaluator-wide byte/file/subprocess budgets, interruption recovery, command effects, and consistent typed operational errors across every command |[SDD requirements](software-design-document.md#2-constitutional-invariants), [command implementation](../internal/cli/cli.go)|
75
75
| Independent trust assessment | Typed authenticity/integrity/completeness results, full evidence recomputation, and outside review of trust/digest changes |[SDD W4](software-design-document.md#12-sequential-work-packages), [bind resolution](../internal/attest/bind.go)|
@@ -91,8 +91,8 @@ needs fresh verification and human review; invitations still require A2 and A3.
91
91
|---|---|---|
92
92
| 1 | CUR-01: explicit release/advertisement evidence; declared resource checks including samples; complete static homepage CSS | Corrections on this branch; run `python3 scripts/test_public_assets.py` and `python3 scripts/check-public-assets.py --verify-release`|
93
93
| 2 | Action execution: reject consumer-controlled source builds; treat inputs as shell/JavaScript data | In progress on Action P1 — [resolver](../scripts/action-resolve-bin.sh); consumer path = checksum-pinned download only; dogfood source only via explicit RI-SE env |
94
-
| 3 | Contained, staged output writes; exclusive writers and interruption recovery; Windows path cases |Open — default `review-pack` symlink escape reproduced in [release writer](../internal/release/release.go); pull concurrency/path work forward|
95
-
| 4 | W2 canonical evaluation/receipt split, explicit `as_of`, complete identity, versioned cache; producer and reader determinism |Open — the three-site CUR-CLOCK substitution alone is insufficient; [SDD](software-design-document.md#12-sequential-work-packages)|
94
+
| 3 | Contained, staged output writes; exclusive writers and interruption recovery; Windows path cases |Closed structurally on tip after [#55](https://github.com/RI-SE/curbpack/pull/55) (`de116cd`); three-alias cache still not one transaction ([outwrite](../internal/outwrite/outwrite.go))|
| 5 | Explicit redaction context; failed/evaluated/skipped counts; comparable trends; `conformity_claim: none`; schemas and compatibility | Open — preserve custom-home leak detection and historical machine contracts |
97
97
| 6 | Extend existing offline bundle review with schema/integrity validation and separate trust results | Open — share the existing review engine rather than introducing an independent verifier |
0 commit comments